Skip to content

[google_maps_flutter] Convert unit tests to Kotlin - #13072

Merged
auto-submit[bot] merged 14 commits into
flutter:mainfrom
stuartmorgan-g:maps-kotlin-tests
Sep 30, 2026
Merged

auto-submit[bot] merged 14 commits into
flutter:mainfrom
stuartmorgan-g:maps-kotlin-tests

Conversation

@stuartmorgan-g

Copy link
Copy Markdown
Collaborator

Converts google_maps_flutter_android native unit tests from Java to Kotlin.

Similar to my other conversions, the process was:

  • Use the Android Studio deterministic auto-conversion.
  • Do a bunch of manual cleanup, as separate commits by topic.
    • This included adopting mockito-kotlin to make the mocking much less verbose and complex
  • Do a local Gemini review for where the code could be improved as Kotlin code, and address most of that feedback.

This includes a few notable changes that aren't just mockito-kotlin adoption or style/idiom improvement:

  • The test-only builders for some Pigeon objects that I introduced when converting the Pigeon generation to Kotlin in an earlier PR have been removed. They were a temporary shim to deal with the fact that Java tests didn't have access to Kotlin features that made builders unnecessary: named parameters, default parameter values, and copy(...) with sparse arguments.
  • controller_AddMarkerThrowsErrorIfMarkerIdIsNull was removed because marker ID is non-nullable, so this hasn't been possible since the conversion to Kotlin Pigeon. That was masked by the shim builder previously.
  • getBitmapFromBytesThrowsErrorIfInvalidImageData was reworked to do static mocking of BitmapFactory, because it turned out that the Java test was never correct. It was structured as a test-method-level @Test(expected = IllegalArgumentException::class), and the first thing it did was attempt to create the data to trigger the codepath in the plugin by calling Base64.decode with a string that wasn't base 64... which throws an IllegalArgumentException, causing the test to pass before even getting to the intended test code. Fixing that broke the test because it turns out the JUnit environment returns dummy bitmaps for invalid data by default. Mocking the factory allows explicitly forcing the preconditions we need for the test.

Does not include any changes to production code.

Part of flutter/flutter#188630

Pre-Review Checklist

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩ ↩2

@stuartmorgan-g stuartmorgan-g added override: no versioning needed Override the check requiring version bumps for most changes override: no changelog needed Override the check requiring CHANGELOG updates for most changes labels Sep 30, 2026
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Sep 30, 2026
@stuartmorgan-g

Copy link
Copy Markdown
Collaborator Author

@reidbaker FYI I'm sending this to you because you're still listed as the Android owner in SUGGESTED_REVIEWERS.md; I'm not sure if that's intentional or not.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request migrates the Android unit tests for the google_maps_flutter_android package from Java to Kotlin. The changes include deleting the Java test files and adding their Kotlin equivalents, as well as adding mockito-kotlin and kotlinx-coroutines-test as test dependencies in build.gradle.kts. There are no review comments, and I have no feedback to provide.

@reidbaker

Copy link
Copy Markdown
Contributor

@reidbaker FYI I'm sending this to you because you're still listed as the Android owner in SUGGESTED_REVIEWERS.md; I'm not sure if that's intentional or not.

Yeah I can review. I think there is a plan to move ownership but until then I am happy to review

@stuartmorgan-g stuartmorgan-g added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 30, 2026
@auto-submit
auto-submit Bot merged commit ff3771f into flutter:main Sep 30, 2026
12 checks passed
jesswrd pushed a commit to jesswrd/flutter that referenced this pull request Oct 1, 2026
…er#193641)

flutter/packages@0ba9a82...d5ec6db

2026-10-01 faheemabbas766@gmail.com [tool] Enforce README package table
order (flutter/packages#12316)
2026-09-30 jessiewong401@gmail.com [various] Allow plugin example apps
to build and test on JDK 25 (flutter/packages#13031)
2026-09-30 149176071+m1roxx@users.noreply.github.com [go_router] Expose
Navigator clipBehavior on ShellRoute and StatefulShellBranch
(flutter/packages#12646)
2026-09-30 stuartmorgan@google.com [google_maps_flutter] Convert unit
tests to Kotlin (flutter/packages#13072)
2026-09-30 36861262+QuncCccccc@users.noreply.github.com [material_ui]
Migrate M3 ListTile template to use new gen_defaults
(flutter/packages#13056)
2026-09-30 15619084+vashworth@users.noreply.github.com Allow tests to
use macOS 15.7 or macOS 26.6 (flutter/packages#13007)
2026-09-30 43054281+camsim99@users.noreply.github.com
[camera_android_camerax] Fix exposure offset setting error thrown when
canceled by a new request (flutter/packages#12582)
2026-09-30 engine-flutter-autoroll@skia.org Roll Flutter from
55b8f88 to d649d2b (27 revisions) (flutter/packages#13080)
2026-09-30 36861262+QuncCccccc@users.noreply.github.com [material_ui]
Migrate M3 InputDecorator template to use new gen_defaults
(flutter/packages#13024)
2026-09-30 tarrinneal@gmail.com [pigeon] Fix JNI/FFI typed data memory
lifetime bugs and update docs (flutter/packages#13061)
2026-09-30 43054281+camsim99@users.noreply.github.com
[camera_android_camerax] Correct `pre-push` skill version validation
logic (flutter/packages#12371)

If this roll has caused a breakage, revert this CL and set the roller
to dry run mode using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com on the revert to ensure that a
human
is aware of the problem.

To file a bug in Flutter:
https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autosubmit Merge PR when tree becomes green via auto submit App CICD Run CI/CD override: no changelog needed Override the check requiring CHANGELOG updates for most changes override: no versioning needed Override the check requiring version bumps for most changes p: google_maps_flutter platform-android

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants