blob: c2faca593bc604caba56368afb4e661da403bd6a [file] [log] [blame]
// 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:flutter/widgets.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 'fake_google_maps_flutter_platform.dart';
Widget _mapWithTileOverlays(Set<TileOverlay> tileOverlays) {
return Directionality(
textDirection: TextDirection.ltr,
child: GoogleMap(
initialCameraPosition: const CameraPosition(target: LatLng(10.0, 15.0)),
tileOverlays: tileOverlays,
),
);
}
void main() {
late FakeGoogleMapsFlutterPlatform platform;
setUp(() {
platform = FakeGoogleMapsFlutterPlatform();
GoogleMapsFlutterPlatform.instance = platform;
});
testWidgets('Initializing a tile overlay', (WidgetTester tester) async {
const TileOverlay t1 =
TileOverlay(tileOverlayId: TileOverlayId('tile_overlay_1'));
await tester.pumpWidget(_mapWithTileOverlays(<TileOverlay>{t1}));
final PlatformMapStateRecorder map = platform.lastCreatedMap;
expect(map.tileOverlaySets.last, equals(<TileOverlay>{t1}));
});
testWidgets('Adding a tile overlay', (WidgetTester tester) async {
const TileOverlay t1 =
TileOverlay(tileOverlayId: TileOverlayId('tile_overlay_1'));
const TileOverlay t2 =
TileOverlay(tileOverlayId: TileOverlayId('tile_overlay_2'));
await tester.pumpWidget(_mapWithTileOverlays(<TileOverlay>{t1}));
await tester.pumpWidget(_mapWithTileOverlays(<TileOverlay>{t1, t2}));
final PlatformMapStateRecorder map = platform.lastCreatedMap;
expect(map.tileOverlaySets.last, equals(<TileOverlay>{t1, t2}));
});
testWidgets('Removing a tile overlay', (WidgetTester tester) async {
const TileOverlay t1 =
TileOverlay(tileOverlayId: TileOverlayId('tile_overlay_1'));
await tester.pumpWidget(_mapWithTileOverlays(<TileOverlay>{t1}));
await tester.pumpWidget(_mapWithTileOverlays(<TileOverlay>{}));
final PlatformMapStateRecorder map = platform.lastCreatedMap;
expect(map.tileOverlaySets.last, equals(<TileOverlay>{}));
});
testWidgets('Updating a tile overlay', (WidgetTester tester) async {
const TileOverlay t1 =
TileOverlay(tileOverlayId: TileOverlayId('tile_overlay_1'));
const TileOverlay t2 =
TileOverlay(tileOverlayId: TileOverlayId('tile_overlay_1'), zIndex: 10);
await tester.pumpWidget(_mapWithTileOverlays(<TileOverlay>{t1}));
await tester.pumpWidget(_mapWithTileOverlays(<TileOverlay>{t2}));
final PlatformMapStateRecorder map = platform.lastCreatedMap;
expect(map.tileOverlaySets.last, equals(<TileOverlay>{t2}));
});
}