From 75beb20ae2d9d67abdc2692bd1202ecf1548b4fb Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 15 Jul 2022 16:46:38 -0400 Subject: [PATCH 1/7] Initial interface --- ...oogle_maps_flutter_platform_interface.dart | 1 + .../google_maps_flutter_platform.dart | 8 ++ .../google_maps_inspector_platform.dart | 117 ++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/platform_interface/google_maps_inspector_platform.dart diff --git a/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/google_maps_flutter_platform_interface.dart b/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/google_maps_flutter_platform_interface.dart index b83eaf4fdfc7..6484ae6b573d 100644 --- a/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/google_maps_flutter_platform_interface.dart +++ b/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/google_maps_flutter_platform_interface.dart @@ -6,4 +6,5 @@ export 'src/events/map_event.dart'; export 'src/method_channel/method_channel_google_maps_flutter.dart' show MethodChannelGoogleMapsFlutter; export 'src/platform_interface/google_maps_flutter_platform.dart'; +export 'src/platform_interface/google_maps_inspector_platform.dart'; export 'src/types/types.dart'; diff --git a/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/platform_interface/google_maps_flutter_platform.dart b/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/platform_interface/google_maps_flutter_platform.dart index b6b95018d0c4..d4621a70c249 100644 --- a/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/platform_interface/google_maps_flutter_platform.dart +++ b/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/platform_interface/google_maps_flutter_platform.dart @@ -443,4 +443,12 @@ abstract class GoogleMapsFlutterPlatform extends PlatformInterface { mapOptions: jsonForMapConfiguration(mapConfiguration), ); } + + /// Populates [GoogleMapsFlutterInspectorPlatform.instance] to allow + /// inspecting the platform map state. + @visibleForTesting + void enableDebugInspection() { + throw UnimplementedError( + 'enableDebugInspection() has not been implemented.'); + } } diff --git a/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/platform_interface/google_maps_inspector_platform.dart b/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/platform_interface/google_maps_inspector_platform.dart new file mode 100644 index 000000000000..70e332907939 --- /dev/null +++ b/packages/google_maps_flutter/google_maps_flutter_platform_interface/lib/src/platform_interface/google_maps_inspector_platform.dart @@ -0,0 +1,117 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart'; +import 'package:plugin_platform_interface/plugin_platform_interface.dart'; + +/// The interface that platform-specific implementations of +/// `google_maps_flutter` can extend to support state inpsection in tests. +/// +/// Avoid `implements` of this interface. Using `implements` makes adding any +/// new methods here a breaking change for end users of your platform! +/// +/// Do `extends GoogleMapsInspectorPlatform` instead, so new methods +/// added here are inherited in your code with the default implementation (that +/// throws at runtime), rather than breaking your users at compile time. +abstract class GoogleMapsInspectorPlatform extends PlatformInterface { + /// Constructs a GoogleMapsFlutterPlatform. + GoogleMapsInspectorPlatform() : super(token: _token); + + static final Object _token = Object(); + + static GoogleMapsInspectorPlatform? _instance; + + /// The instance of [GoogleMapsInspectorPlatform], if any. + /// + /// This is usually populated by calling + /// [GoogleMapsFlutterPlatform.enableDebugInspection]. + static GoogleMapsInspectorPlatform? get instance => _instance; + + /// Platform-specific plugins should set this with their own platform-specific + /// class that extends [GoogleMapsInspectorPlatform] in their + /// implementation of [GoogleMapsFlutterPlatform.enableDebugInspection]. + static set instance(GoogleMapsInspectorPlatform? instance) { + if (instance != null) { + PlatformInterface.verify(instance, _token); + } + _instance = instance; + } + + /// Returns the minimum and maxmimum zoom level settings. + Future getMinMaxZoomLevels({required int mapId}) { + throw UnimplementedError('getMinMaxZoomLevels() has not been implemented.'); + } + + /// Returns true if the compass is enabled. + Future isCompassEnabled({required int mapId}) { + throw UnimplementedError('isCompassEnabled() has not been implemented.'); + } + + /// Returns true if lite mode is enabled. + Future isLiteModeEnabled({required int mapId}) { + throw UnimplementedError('isLiteModeEnabled() has not been implemented.'); + } + + /// Returns true if the map toolbar is enabled. + Future isMapToolbarEnabled({required int mapId}) { + throw UnimplementedError('isMapToolbarEnabled() has not been implemented.'); + } + + /// Returns true if the "my location" button is enabled. + Future isMyLocationButtonEnabled({required int mapId}) { + throw UnimplementedError( + 'isMyLocationButtonEnabled() has not been implemented.'); + } + + /// Returns true if the traffic overlay is enabled. + Future isTrafficEnabled({required int mapId}) { + throw UnimplementedError('isTrafficEnabled() has not been implemented.'); + } + + /// Returns true if the building layer is enabled. + Future areBuildingsEnabled({required int mapId}) { + throw UnimplementedError('areBuildingsEnabled() has not been implemented.'); + } + + /// Returns true if rotate gestures are enabled. + Future areRotateGesturesEnabled({required int mapId}) { + throw UnimplementedError( + 'areRotateGesturesEnabled() has not been implemented.'); + } + + /// Returns true if scroll gestures are enabled. + Future areScrollGesturesEnabled({required int mapId}) { + throw UnimplementedError( + 'areScrollGesturesEnabled() has not been implemented.'); + } + + /// Returns true if tilt gestures are enabled. + Future areTiltGesturesEnabled({required int mapId}) { + throw UnimplementedError( + 'areTiltGesturesEnabled() has not been implemented.'); + } + + /// Returns true if zoom controls are enabled. + Future areZoomControlsEnabled({required int mapId}) { + throw UnimplementedError( + 'areZoomControlsEnabled() has not been implemented.'); + } + + /// Returns true if zoom gestures are enabled. + Future areZoomGesturesEnabled({required int mapId}) { + throw UnimplementedError( + 'areZoomGesturesEnabled() has not been implemented.'); + } + + /// Returns information about the tile overlay with the given ID. + /// + /// The returned object will be synthesized from platform data, so will not + /// be the same Dart object as the original [TileOverlay] provided to the + /// platform interface with that ID, and not all fields (e.g., + /// [TileOverlay.tileProvider]) will be populated. + Future getTileOverlayInfo(TileOverlayId tileOverlayId, + {required int mapId}) { + throw UnimplementedError('getTileOverlayInfo() has not been implemented.'); + } +} From c82129cfcebce2767df8611a9a27bd3150b6836f Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 18 Jul 2022 12:28:42 -0400 Subject: [PATCH 2/7] Temp path-based dependencies --- .../google_maps_flutter/google_maps_flutter/pubspec.yaml | 6 ++++++ .../google_maps_flutter_web/pubspec.yaml | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml index 1a0dd4ebfc6f..1eaf93dee5ee 100644 --- a/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml @@ -30,3 +30,9 @@ dev_dependencies: pedantic: ^1.10.0 plugin_platform_interface: ^2.0.0 stream_transform: ^2.0.0 + + +# FOR TESTING ONLY. DO NOT MERGE. +dependency_overrides: + google_maps_flutter_platform_interface: + path: ../../google_maps_flutter/google_maps_flutter_platform_interface diff --git a/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml index 9670e0f28e2e..95253f2cc769 100644 --- a/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml @@ -33,3 +33,9 @@ dev_dependencies: # The example deliberately includes limited-use secrets. false_secrets: - /example/web/index.html + + +# FOR TESTING ONLY. DO NOT MERGE. +dependency_overrides: + google_maps_flutter_platform_interface: + path: ../../google_maps_flutter/google_maps_flutter_platform_interface From 26e5ce612a17fb12f7c5c71bcd8c831185217e20 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 18 Jul 2022 14:16:06 -0400 Subject: [PATCH 3/7] Rewrite inspector implementation, and update tests --- .../google_map_inspector.dart | 154 +++++--- .../integration_test/google_maps_test.dart | 354 +++++++++--------- .../google_maps_flutter/example/pubspec.yaml | 6 + .../lib/src/controller.dart | 14 - 4 files changed, 271 insertions(+), 257 deletions(-) diff --git a/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_map_inspector.dart b/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_map_inspector.dart index fe3461b9142f..95ca969a51e2 100644 --- a/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_map_inspector.dart +++ b/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_map_inspector.dart @@ -2,87 +2,125 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// TODO(a14n): remove this import once Flutter 3.1 or later reaches stable (including flutter/flutter#106316) -// ignore: unnecessary_import -import 'dart:typed_data'; -import 'package:flutter/services.dart'; -import 'package:google_maps_flutter/google_maps_flutter.dart'; - -/// Inspect Google Maps state using the platform SDK. -/// -/// This class is primarily used for testing. The methods on this -/// class should call "getters" on the GoogleMap object or equivalent -/// on the platform side. -class GoogleMapInspector { - GoogleMapInspector(this._channel); - - final MethodChannel _channel; - - Future isCompassEnabled() async { - return await _channel.invokeMethod('map#isCompassEnabled'); +import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart'; + +/// A method-channel-based implementation of [GoogleMapsInspectorPlatform], for +/// use in tests in conjunction with [MethodChannelGoogleMapsFlutter]. +// TODO(stuartmorgan): Move this into the platform implementations when +// federating the mobile implementations. +class MethodChannelGoogleMapsInspector extends GoogleMapsInspectorPlatform { + /// Creates a method-channel-based inspector instance that gets the channel + /// for a given map ID from [mapsPlatform]. + MethodChannelGoogleMapsInspector(MethodChannelGoogleMapsFlutter mapsPlatform) + : _mapsPlatform = mapsPlatform; + + final MethodChannelGoogleMapsFlutter _mapsPlatform; + + @override + Future areBuildingsEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isBuildingsEnabled'))!; } - Future isMapToolbarEnabled() async { - return await _channel.invokeMethod('map#isMapToolbarEnabled'); + @override + Future areRotateGesturesEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isRotateGesturesEnabled'))!; } - Future getMinMaxZoomLevels() async { - final List zoomLevels = - (await _channel.invokeMethod>('map#getMinMaxZoomLevels'))! - .cast(); - return MinMaxZoomPreference(zoomLevels[0], zoomLevels[1]); - } - - Future getZoomLevel() async { - final double? zoomLevel = - await _channel.invokeMethod('map#getZoomLevel'); - return zoomLevel; - } - - Future isZoomGesturesEnabled() async { - return await _channel.invokeMethod('map#isZoomGesturesEnabled'); + @override + Future areScrollGesturesEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isScrollGesturesEnabled'))!; } - Future isZoomControlsEnabled() async { - return await _channel.invokeMethod('map#isZoomControlsEnabled'); + @override + Future areTiltGesturesEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isTiltGesturesEnabled'))!; } - Future isLiteModeEnabled() async { - return await _channel.invokeMethod('map#isLiteModeEnabled'); + @override + Future areZoomControlsEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isZoomControlsEnabled'))!; } - Future isRotateGesturesEnabled() async { - return await _channel.invokeMethod('map#isRotateGesturesEnabled'); + @override + Future areZoomGesturesEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isZoomGesturesEnabled'))!; } - Future isTiltGesturesEnabled() async { - return await _channel.invokeMethod('map#isTiltGesturesEnabled'); + @override + Future getMinMaxZoomLevels({required int mapId}) async { + final List zoomLevels = (await _mapsPlatform + .channel(mapId) + .invokeMethod>('map#getMinMaxZoomLevels'))! + .cast(); + return MinMaxZoomPreference(zoomLevels[0], zoomLevels[1]); } - Future isScrollGesturesEnabled() async { - return await _channel.invokeMethod('map#isScrollGesturesEnabled'); + @override + Future getTileOverlayInfo(TileOverlayId tileOverlayId, + {required int mapId}) async { + final Map? tileInfo = await _mapsPlatform + .channel(mapId) + .invokeMapMethod( + 'map#getTileOverlayInfo', { + 'tileOverlayId': tileOverlayId.value, + }); + if (tileInfo == null) { + return null; + } + return TileOverlay( + tileOverlayId: tileOverlayId, + fadeIn: tileInfo['fadeIn']! as bool, + transparency: tileInfo['transparency']! as double, + visible: tileInfo['visible']! as bool, + // Android and iOS return different types. + zIndex: (tileInfo['zIndex']! as num).toInt(), + ); } - Future isMyLocationButtonEnabled() async { - return await _channel.invokeMethod('map#isMyLocationButtonEnabled'); + @override + Future isCompassEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isCompassEnabled'))!; } - Future isTrafficEnabled() async { - return await _channel.invokeMethod('map#isTrafficEnabled'); + @override + Future isLiteModeEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isLiteModeEnabled'))!; } - Future isBuildingsEnabled() async { - return await _channel.invokeMethod('map#isBuildingsEnabled'); + @override + Future isMapToolbarEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isMapToolbarEnabled'))!; } - Future takeSnapshot() async { - return await _channel.invokeMethod('map#takeSnapshot'); + @override + Future isMyLocationButtonEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isMyLocationButtonEnabled'))!; } - Future?> getTileOverlayInfo(String id) async { - return await _channel.invokeMapMethod( - 'map#getTileOverlayInfo', { - 'tileOverlayId': id, - }); + @override + Future isTrafficEnabled({required int mapId}) async { + return (await _mapsPlatform + .channel(mapId) + .invokeMethod('map#isTrafficEnabled'))!; } } diff --git a/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_maps_test.dart b/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_maps_test.dart index 8742ff31af42..d82a58227d8a 100644 --- a/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_maps_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter/example/integration_test/google_maps_test.dart @@ -10,6 +10,7 @@ import 'dart:ui' as ui; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; +import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart'; import 'package:integration_test/integration_test.dart'; import 'google_map_inspector.dart'; @@ -22,10 +23,19 @@ const CameraPosition _kInitialCameraPosition = void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + // TODO(stuartmorgan): Remove this once mobile implementations are federated + // and registering their own inpector implementations, and just call + // enableDebugInspection. + if (GoogleMapsFlutterPlatform.instance is MethodChannelGoogleMapsFlutter) { + GoogleMapsInspectorPlatform.instance = MethodChannelGoogleMapsInspector( + GoogleMapsFlutterPlatform.instance as MethodChannelGoogleMapsFlutter); + } else { + GoogleMapsFlutterPlatform.instance.enableDebugInspection(); + } + testWidgets('testCompassToggle', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, child: GoogleMap( @@ -33,16 +43,15 @@ void main() { initialCameraPosition: _kInitialCameraPosition, compassEnabled: false, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - bool? compassEnabled = await inspector.isCompassEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + bool compassEnabled = await inspector.isCompassEnabled(mapId: mapId); expect(compassEnabled, false); await tester.pumpWidget(Directionality( @@ -57,14 +66,13 @@ void main() { ), )); - compassEnabled = await inspector.isCompassEnabled(); + compassEnabled = await inspector.isCompassEnabled(mapId: mapId); expect(compassEnabled, true); }); testWidgets('testMapToolbarToggle', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -73,16 +81,15 @@ void main() { initialCameraPosition: _kInitialCameraPosition, mapToolbarEnabled: false, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - bool? mapToolbarEnabled = await inspector.isMapToolbarEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + bool mapToolbarEnabled = await inspector.isMapToolbarEnabled(mapId: mapId); expect(mapToolbarEnabled, false); await tester.pumpWidget(Directionality( @@ -97,7 +104,7 @@ void main() { ), )); - mapToolbarEnabled = await inspector.isMapToolbarEnabled(); + mapToolbarEnabled = await inspector.isMapToolbarEnabled(mapId: mapId); expect(mapToolbarEnabled, Platform.isAndroid); }); @@ -113,9 +120,8 @@ void main() { // // Thus we test iOS and Android a little differently here. final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); - late GoogleMapController controller; + final Completer controllerCompleter = + Completer(); const MinMaxZoomPreference initialZoomLevel = MinMaxZoomPreference(4, 8); const MinMaxZoomPreference finalZoomLevel = MinMaxZoomPreference(6, 10); @@ -127,30 +133,28 @@ void main() { initialCameraPosition: _kInitialCameraPosition, minMaxZoomPreference: initialZoomLevel, onMapCreated: (GoogleMapController c) async { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(c.channel!); - controller = c; - inspectorCompleter.complete(inspector); + controllerCompleter.complete(c); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; + final GoogleMapController controller = await controllerCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; if (Platform.isIOS) { final MinMaxZoomPreference zoomLevel = - await inspector.getMinMaxZoomLevels(); + await inspector.getMinMaxZoomLevels(mapId: controller.mapId); expect(zoomLevel, equals(initialZoomLevel)); } else if (Platform.isAndroid) { await controller.moveCamera(CameraUpdate.zoomTo(15)); await tester.pumpAndSettle(); - double? zoomLevel = await inspector.getZoomLevel(); + double? zoomLevel = await controller.getZoomLevel(); expect(zoomLevel, equals(initialZoomLevel.maxZoom)); await controller.moveCamera(CameraUpdate.zoomTo(1)); await tester.pumpAndSettle(); - zoomLevel = await inspector.getZoomLevel(); + zoomLevel = await controller.getZoomLevel(); expect(zoomLevel, equals(initialZoomLevel.minZoom)); } @@ -168,25 +172,24 @@ void main() { if (Platform.isIOS) { final MinMaxZoomPreference zoomLevel = - await inspector.getMinMaxZoomLevels(); + await inspector.getMinMaxZoomLevels(mapId: controller.mapId); expect(zoomLevel, equals(finalZoomLevel)); } else { await controller.moveCamera(CameraUpdate.zoomTo(15)); await tester.pumpAndSettle(); - double? zoomLevel = await inspector.getZoomLevel(); + double? zoomLevel = await controller.getZoomLevel(); expect(zoomLevel, equals(finalZoomLevel.maxZoom)); await controller.moveCamera(CameraUpdate.zoomTo(1)); await tester.pumpAndSettle(); - zoomLevel = await inspector.getZoomLevel(); + zoomLevel = await controller.getZoomLevel(); expect(zoomLevel, equals(finalZoomLevel.minZoom)); } }); testWidgets('testZoomGesturesEnabled', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -195,16 +198,16 @@ void main() { initialCameraPosition: _kInitialCameraPosition, zoomGesturesEnabled: false, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - bool? zoomGesturesEnabled = await inspector.isZoomGesturesEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + bool zoomGesturesEnabled = + await inspector.areZoomGesturesEnabled(mapId: mapId); expect(zoomGesturesEnabled, false); await tester.pumpWidget(Directionality( @@ -219,14 +222,13 @@ void main() { ), )); - zoomGesturesEnabled = await inspector.isZoomGesturesEnabled(); + zoomGesturesEnabled = await inspector.areZoomGesturesEnabled(mapId: mapId); expect(zoomGesturesEnabled, true); }); testWidgets('testZoomControlsEnabled', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -234,16 +236,16 @@ void main() { key: key, initialCameraPosition: _kInitialCameraPosition, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - bool? zoomControlsEnabled = await inspector.isZoomControlsEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + bool zoomControlsEnabled = + await inspector.areZoomControlsEnabled(mapId: mapId); expect(zoomControlsEnabled, !Platform.isIOS); /// Zoom Controls functionality is not available on iOS at the moment. @@ -260,15 +262,15 @@ void main() { ), )); - zoomControlsEnabled = await inspector.isZoomControlsEnabled(); + zoomControlsEnabled = + await inspector.areZoomControlsEnabled(mapId: mapId); expect(zoomControlsEnabled, false); } }); testWidgets('testLiteModeEnabled', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -277,16 +279,15 @@ void main() { initialCameraPosition: _kInitialCameraPosition, liteModeEnabled: false, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - bool? liteModeEnabled = await inspector.isLiteModeEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + bool liteModeEnabled = await inspector.isLiteModeEnabled(mapId: mapId); expect(liteModeEnabled, false); await tester.pumpWidget(Directionality( @@ -301,14 +302,13 @@ void main() { ), )); - liteModeEnabled = await inspector.isLiteModeEnabled(); + liteModeEnabled = await inspector.isLiteModeEnabled(mapId: mapId); expect(liteModeEnabled, true); }, skip: !Platform.isAndroid); testWidgets('testRotateGesturesEnabled', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -317,16 +317,16 @@ void main() { initialCameraPosition: _kInitialCameraPosition, rotateGesturesEnabled: false, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - bool? rotateGesturesEnabled = await inspector.isRotateGesturesEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + bool rotateGesturesEnabled = + await inspector.areRotateGesturesEnabled(mapId: mapId); expect(rotateGesturesEnabled, false); await tester.pumpWidget(Directionality( @@ -341,14 +341,14 @@ void main() { ), )); - rotateGesturesEnabled = await inspector.isRotateGesturesEnabled(); + rotateGesturesEnabled = + await inspector.areRotateGesturesEnabled(mapId: mapId); expect(rotateGesturesEnabled, true); }); testWidgets('testTiltGesturesEnabled', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -357,16 +357,16 @@ void main() { initialCameraPosition: _kInitialCameraPosition, tiltGesturesEnabled: false, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - bool? tiltGesturesEnabled = await inspector.isTiltGesturesEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + bool tiltGesturesEnabled = + await inspector.areTiltGesturesEnabled(mapId: mapId); expect(tiltGesturesEnabled, false); await tester.pumpWidget(Directionality( @@ -381,14 +381,13 @@ void main() { ), )); - tiltGesturesEnabled = await inspector.isTiltGesturesEnabled(); + tiltGesturesEnabled = await inspector.areTiltGesturesEnabled(mapId: mapId); expect(tiltGesturesEnabled, true); }); testWidgets('testScrollGesturesEnabled', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -397,16 +396,16 @@ void main() { initialCameraPosition: _kInitialCameraPosition, scrollGesturesEnabled: false, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - bool? scrollGesturesEnabled = await inspector.isScrollGesturesEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + bool scrollGesturesEnabled = + await inspector.areScrollGesturesEnabled(mapId: mapId); expect(scrollGesturesEnabled, false); await tester.pumpWidget(Directionality( @@ -421,7 +420,8 @@ void main() { ), )); - scrollGesturesEnabled = await inspector.isScrollGesturesEnabled(); + scrollGesturesEnabled = + await inspector.areScrollGesturesEnabled(mapId: mapId); expect(scrollGesturesEnabled, true); }); @@ -547,8 +547,7 @@ void main() { testWidgets('testTraffic', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -557,16 +556,15 @@ void main() { initialCameraPosition: _kInitialCameraPosition, trafficEnabled: true, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - bool? isTrafficEnabled = await inspector.isTrafficEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + bool isTrafficEnabled = await inspector.isTrafficEnabled(mapId: mapId); expect(isTrafficEnabled, true); await tester.pumpWidget(Directionality( @@ -581,14 +579,13 @@ void main() { ), )); - isTrafficEnabled = await inspector.isTrafficEnabled(); + isTrafficEnabled = await inspector.isTrafficEnabled(mapId: mapId); expect(isTrafficEnabled, false); }); testWidgets('testBuildings', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -597,24 +594,23 @@ void main() { initialCameraPosition: _kInitialCameraPosition, buildingsEnabled: true, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - final bool? isBuildingsEnabled = await inspector.isBuildingsEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + final bool isBuildingsEnabled = + await inspector.areBuildingsEnabled(mapId: mapId); expect(isBuildingsEnabled, true); }); // Location button tests are skipped in Android because we don't have location permission to test. testWidgets('testMyLocationButtonToggle', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -624,16 +620,16 @@ void main() { myLocationButtonEnabled: true, myLocationEnabled: false, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - bool? myLocationButtonEnabled = await inspector.isMyLocationButtonEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + bool myLocationButtonEnabled = + await inspector.isMyLocationButtonEnabled(mapId: mapId); expect(myLocationButtonEnabled, true); await tester.pumpWidget(Directionality( @@ -649,15 +645,15 @@ void main() { ), )); - myLocationButtonEnabled = await inspector.isMyLocationButtonEnabled(); + myLocationButtonEnabled = + await inspector.isMyLocationButtonEnabled(mapId: mapId); expect(myLocationButtonEnabled, false); }, skip: Platform.isAndroid); testWidgets('testMyLocationButton initial value false', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -667,25 +663,23 @@ void main() { myLocationButtonEnabled: false, myLocationEnabled: false, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - final bool? myLocationButtonEnabled = - await inspector.isMyLocationButtonEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + final bool myLocationButtonEnabled = + await inspector.isMyLocationButtonEnabled(mapId: mapId); expect(myLocationButtonEnabled, false); }, skip: Platform.isAndroid); testWidgets('testMyLocationButton initial value true', (WidgetTester tester) async { final Key key = GlobalKey(); - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); await tester.pumpWidget(Directionality( textDirection: TextDirection.ltr, @@ -695,17 +689,16 @@ void main() { myLocationButtonEnabled: true, myLocationEnabled: false, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), )); - final GoogleMapInspector inspector = await inspectorCompleter.future; - final bool? myLocationButtonEnabled = - await inspector.isMyLocationButtonEnabled(); + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; + final bool myLocationButtonEnabled = + await inspector.isMyLocationButtonEnabled(mapId: mapId); expect(myLocationButtonEnabled, true); }, skip: Platform.isAndroid); @@ -962,8 +955,8 @@ void main() { }); testWidgets('testTakeSnapshot', (WidgetTester tester) async { - final Completer inspectorCompleter = - Completer(); + final Completer controllerCompleter = + Completer(); await tester.pumpWidget( Directionality( @@ -971,10 +964,7 @@ void main() { child: GoogleMap( initialCameraPosition: _kInitialCameraPosition, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + controllerCompleter.complete(controller); }, ), ), @@ -982,8 +972,8 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 3)); - final GoogleMapInspector inspector = await inspectorCompleter.future; - final Uint8List? bytes = await inspector.takeSnapshot(); + final GoogleMapController controller = await controllerCompleter.future; + final Uint8List? bytes = await controller.takeSnapshot(); expect(bytes?.isNotEmpty, true); }, // TODO(cyanglaz): un-skip the test when we can test this on CI with API key enabled. @@ -993,8 +983,7 @@ void main() { testWidgets( 'set tileOverlay correctly', (WidgetTester tester) async { - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); final TileOverlay tileOverlay1 = TileOverlay( tileOverlayId: const TileOverlayId('tile_overlay_1'), tileProvider: _DebugTileProvider(), @@ -1019,42 +1008,40 @@ void main() { initialCameraPosition: _kInitialCameraPosition, tileOverlays: {tileOverlay1, tileOverlay2}, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), ), ); await tester.pumpAndSettle(const Duration(seconds: 3)); - final GoogleMapInspector inspector = await inspectorCompleter.future; + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; - final Map tileOverlayInfo1 = - (await inspector.getTileOverlayInfo('tile_overlay_1'))!; - final Map tileOverlayInfo2 = - (await inspector.getTileOverlayInfo('tile_overlay_2'))!; + final TileOverlay tileOverlayInfo1 = (await inspector + .getTileOverlayInfo(tileOverlay1.mapsId, mapId: mapId))!; + final TileOverlay tileOverlayInfo2 = (await inspector + .getTileOverlayInfo(tileOverlay2.mapsId, mapId: mapId))!; - expect(tileOverlayInfo1['visible'], isTrue); - expect(tileOverlayInfo1['fadeIn'], isTrue); - expect(tileOverlayInfo1['transparency'], - moreOrLessEquals(0.2, epsilon: 0.001)); - expect(tileOverlayInfo1['zIndex'], 2); + expect(tileOverlayInfo1.visible, isTrue); + expect(tileOverlayInfo1.fadeIn, isTrue); + expect( + tileOverlayInfo1.transparency, moreOrLessEquals(0.2, epsilon: 0.001)); + expect(tileOverlayInfo1.zIndex, 2); - expect(tileOverlayInfo2['visible'], isFalse); - expect(tileOverlayInfo2['fadeIn'], isFalse); - expect(tileOverlayInfo2['transparency'], - moreOrLessEquals(0.3, epsilon: 0.001)); - expect(tileOverlayInfo2['zIndex'], 1); + expect(tileOverlayInfo2.visible, isFalse); + expect(tileOverlayInfo2.fadeIn, isFalse); + expect( + tileOverlayInfo2.transparency, moreOrLessEquals(0.3, epsilon: 0.001)); + expect(tileOverlayInfo2.zIndex, 1); }, ); testWidgets( 'update tileOverlays correctly', (WidgetTester tester) async { - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); final Key key = GlobalKey(); final TileOverlay tileOverlay1 = TileOverlay( tileOverlayId: const TileOverlayId('tile_overlay_1'), @@ -1081,16 +1068,15 @@ void main() { initialCameraPosition: _kInitialCameraPosition, tileOverlays: {tileOverlay1, tileOverlay2}, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), ), ); - final GoogleMapInspector inspector = await inspectorCompleter.future; + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; final TileOverlay tileOverlay1New = TileOverlay( tileOverlayId: const TileOverlayId('tile_overlay_1'), @@ -1117,16 +1103,16 @@ void main() { await tester.pumpAndSettle(const Duration(seconds: 3)); - final Map tileOverlayInfo1 = - (await inspector.getTileOverlayInfo('tile_overlay_1'))!; - final Map? tileOverlayInfo2 = - await inspector.getTileOverlayInfo('tile_overlay_2'); + final TileOverlay tileOverlayInfo1 = (await inspector + .getTileOverlayInfo(tileOverlay1.mapsId, mapId: mapId))!; + final TileOverlay? tileOverlayInfo2 = + await inspector.getTileOverlayInfo(tileOverlay2.mapsId, mapId: mapId); - expect(tileOverlayInfo1['visible'], isFalse); - expect(tileOverlayInfo1['fadeIn'], isFalse); - expect(tileOverlayInfo1['transparency'], - moreOrLessEquals(0.3, epsilon: 0.001)); - expect(tileOverlayInfo1['zIndex'], 1); + expect(tileOverlayInfo1.visible, isFalse); + expect(tileOverlayInfo1.fadeIn, isFalse); + expect( + tileOverlayInfo1.transparency, moreOrLessEquals(0.3, epsilon: 0.001)); + expect(tileOverlayInfo1.zIndex, 1); expect(tileOverlayInfo2, isNull); }, @@ -1135,8 +1121,7 @@ void main() { testWidgets( 'remove tileOverlays correctly', (WidgetTester tester) async { - final Completer inspectorCompleter = - Completer(); + final Completer mapIdCompleter = Completer(); final Key key = GlobalKey(); final TileOverlay tileOverlay1 = TileOverlay( tileOverlayId: const TileOverlayId('tile_overlay_1'), @@ -1155,16 +1140,15 @@ void main() { initialCameraPosition: _kInitialCameraPosition, tileOverlays: {tileOverlay1}, onMapCreated: (GoogleMapController controller) { - final GoogleMapInspector inspector = - // ignore: invalid_use_of_visible_for_testing_member - GoogleMapInspector(controller.channel!); - inspectorCompleter.complete(inspector); + mapIdCompleter.complete(controller.mapId); }, ), ), ); - final GoogleMapInspector inspector = await inspectorCompleter.future; + final int mapId = await mapIdCompleter.future; + final GoogleMapsInspectorPlatform inspector = + GoogleMapsInspectorPlatform.instance!; await tester.pumpWidget( Directionality( @@ -1180,8 +1164,8 @@ void main() { ); await tester.pumpAndSettle(const Duration(seconds: 3)); - final Map? tileOverlayInfo1 = - await inspector.getTileOverlayInfo('tile_overlay_1'); + final TileOverlay? tileOverlayInfo1 = + await inspector.getTileOverlayInfo(tileOverlay1.mapsId, mapId: mapId); expect(tileOverlayInfo1, isNull); }, diff --git a/packages/google_maps_flutter/google_maps_flutter/example/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter/example/pubspec.yaml index 196f054e1fc0..aab2ba540126 100644 --- a/packages/google_maps_flutter/google_maps_flutter/example/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter/example/pubspec.yaml @@ -30,3 +30,9 @@ flutter: uses-material-design: true assets: - assets/ + + +# FOR TESTING ONLY. DO NOT MERGE. +dependency_overrides: + google_maps_flutter_platform_interface: + path: ../../../google_maps_flutter/google_maps_flutter_platform_interface diff --git a/packages/google_maps_flutter/google_maps_flutter/lib/src/controller.dart b/packages/google_maps_flutter/google_maps_flutter/lib/src/controller.dart index 71b1434eb293..cd3d0781e471 100644 --- a/packages/google_maps_flutter/google_maps_flutter/lib/src/controller.dart +++ b/packages/google_maps_flutter/google_maps_flutter/lib/src/controller.dart @@ -35,20 +35,6 @@ class GoogleMapController { ); } - /// Used to communicate with the native platform. - /// - /// Accessible only for testing. - // TODO(dit): Remove this getter, https://github.com/flutter/flutter/issues/55504. - @visibleForTesting - MethodChannel? get channel { - if (GoogleMapsFlutterPlatform.instance is MethodChannelGoogleMapsFlutter) { - return (GoogleMapsFlutterPlatform.instance - as MethodChannelGoogleMapsFlutter) - .channel(mapId); - } - return null; - } - final _GoogleMapState _googleMapState; void _connectStreams(int mapId) { From b7be7967b85d72a60aa2ad81278dd38a0341be06 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 18 Jul 2022 14:24:58 -0400 Subject: [PATCH 4/7] override oops --- .../google_maps_flutter_web/pubspec.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml index 95253f2cc769..9670e0f28e2e 100644 --- a/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter_web/pubspec.yaml @@ -33,9 +33,3 @@ dev_dependencies: # The example deliberately includes limited-use secrets. false_secrets: - /example/web/index.html - - -# FOR TESTING ONLY. DO NOT MERGE. -dependency_overrides: - google_maps_flutter_platform_interface: - path: ../../google_maps_flutter/google_maps_flutter_platform_interface From a7790ab2b8e130b4df56058bfac7bfda65313b47 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Mon, 18 Jul 2022 14:26:57 -0400 Subject: [PATCH 5/7] Add version bumps --- packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md | 4 +++- packages/google_maps_flutter/google_maps_flutter/pubspec.yaml | 2 +- .../google_maps_flutter_platform_interface/CHANGELOG.md | 4 ++++ .../google_maps_flutter_platform_interface/pubspec.yaml | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md b/packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md index 84f7867905ff..bf7a705556ed 100644 --- a/packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md +++ b/packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md @@ -1,5 +1,7 @@ -## NEXT +## 2.1.9 +* Updates integration tests to use the new inspector interface. +* Removes obsolete test-only method for accessing a map controller's method channel. * Ignores unnecessary import warnings in preparation for [upcoming Flutter changes](https://github.com/flutter/flutter/pull/106316). ## 2.1.8 diff --git a/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml index 1eaf93dee5ee..57c99b408e98 100644 --- a/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml @@ -2,7 +2,7 @@ name: google_maps_flutter description: A Flutter plugin for integrating Google Maps in iOS and Android applications. repository: https://github.com/flutter/plugins/tree/main/packages/google_maps_flutter/google_maps_flutter issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22 -version: 2.1.8 +version: 2.1.9 environment: sdk: ">=2.14.0 <3.0.0" diff --git a/packages/google_maps_flutter/google_maps_flutter_platform_interface/CHANGELOG.md b/packages/google_maps_flutter/google_maps_flutter_platform_interface/CHANGELOG.md index c1a7c95abfdb..e8da5f3aba99 100644 --- a/packages/google_maps_flutter/google_maps_flutter_platform_interface/CHANGELOG.md +++ b/packages/google_maps_flutter/google_maps_flutter_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.2.1 + +* Adds a new interface for inspecting the platform map state in tests. + ## 2.2.0 * Adds new versions of `buildView` and `updateOptions` that take a new option diff --git a/packages/google_maps_flutter/google_maps_flutter_platform_interface/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter_platform_interface/pubspec.yaml index 2b01e6244210..c421d13c6e64 100644 --- a/packages/google_maps_flutter/google_maps_flutter_platform_interface/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter_platform_interface/pubspec.yaml @@ -4,7 +4,7 @@ repository: https://github.com/flutter/plugins/tree/main/packages/google_maps_fl issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22 # NOTE: We strongly prefer non-breaking changes, even at the expense of a # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes -version: 2.2.0 +version: 2.2.1 environment: sdk: '>=2.12.0 <3.0.0' From 776f981a08ddec3d60c5981edcceb7c81fb5e5a4 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 22 Jul 2022 14:49:30 -0400 Subject: [PATCH 6/7] Remove overrides --- .../google_maps_flutter/example/pubspec.yaml | 6 ------ .../google_maps_flutter/google_maps_flutter/pubspec.yaml | 8 +------- 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/packages/google_maps_flutter/google_maps_flutter/example/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter/example/pubspec.yaml index aab2ba540126..196f054e1fc0 100644 --- a/packages/google_maps_flutter/google_maps_flutter/example/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter/example/pubspec.yaml @@ -30,9 +30,3 @@ flutter: uses-material-design: true assets: - assets/ - - -# FOR TESTING ONLY. DO NOT MERGE. -dependency_overrides: - google_maps_flutter_platform_interface: - path: ../../../google_maps_flutter/google_maps_flutter_platform_interface diff --git a/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml b/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml index 57c99b408e98..f546c8af151a 100644 --- a/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml +++ b/packages/google_maps_flutter/google_maps_flutter/pubspec.yaml @@ -21,7 +21,7 @@ dependencies: flutter: sdk: flutter flutter_plugin_android_lifecycle: ^2.0.1 - google_maps_flutter_platform_interface: ^2.2.0 + google_maps_flutter_platform_interface: ^2.2.1 dev_dependencies: flutter_test: @@ -30,9 +30,3 @@ dev_dependencies: pedantic: ^1.10.0 plugin_platform_interface: ^2.0.0 stream_transform: ^2.0.0 - - -# FOR TESTING ONLY. DO NOT MERGE. -dependency_overrides: - google_maps_flutter_platform_interface: - path: ../../google_maps_flutter/google_maps_flutter_platform_interface From bc34a74c39ff3bba7cbb65ca550d60da43539d76 Mon Sep 17 00:00:00 2001 From: Stuart Morgan Date: Fri, 22 Jul 2022 15:41:38 -0400 Subject: [PATCH 7/7] Analyzer fix --- .../google_maps_flutter/lib/google_maps_flutter.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/google_maps_flutter/google_maps_flutter/lib/google_maps_flutter.dart b/packages/google_maps_flutter/google_maps_flutter/lib/google_maps_flutter.dart index 4eeb8572413c..751930aece67 100644 --- a/packages/google_maps_flutter/google_maps_flutter/lib/google_maps_flutter.dart +++ b/packages/google_maps_flutter/google_maps_flutter/lib/google_maps_flutter.dart @@ -13,7 +13,6 @@ import 'dart:typed_data'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart'; export 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart'