diff --git a/packages/camera/camera_android/test/method_channel_mock.dart b/packages/camera/camera_android/test/method_channel_mock.dart index 413c10633cc1..f26d12a3688a 100644 --- a/packages/camera/camera_android/test/method_channel_mock.dart +++ b/packages/camera/camera_android/test/method_channel_mock.dart @@ -11,7 +11,9 @@ class MethodChannelMock { this.delay, required this.methods, }) : methodChannel = MethodChannel(channelName) { - methodChannel.setMockMethodCallHandler(_handler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, _handler); } final Duration? delay; @@ -37,3 +39,9 @@ class MethodChannelMock { }); } } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/camera/camera_avfoundation/test/method_channel_mock.dart b/packages/camera/camera_avfoundation/test/method_channel_mock.dart index 413c10633cc1..f26d12a3688a 100644 --- a/packages/camera/camera_avfoundation/test/method_channel_mock.dart +++ b/packages/camera/camera_avfoundation/test/method_channel_mock.dart @@ -11,7 +11,9 @@ class MethodChannelMock { this.delay, required this.methods, }) : methodChannel = MethodChannel(channelName) { - methodChannel.setMockMethodCallHandler(_handler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, _handler); } final Duration? delay; @@ -37,3 +39,9 @@ class MethodChannelMock { }); } } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/camera/camera_platform_interface/test/utils/method_channel_mock.dart b/packages/camera/camera_platform_interface/test/utils/method_channel_mock.dart index 413c10633cc1..f26d12a3688a 100644 --- a/packages/camera/camera_platform_interface/test/utils/method_channel_mock.dart +++ b/packages/camera/camera_platform_interface/test/utils/method_channel_mock.dart @@ -11,7 +11,9 @@ class MethodChannelMock { this.delay, required this.methods, }) : methodChannel = MethodChannel(channelName) { - methodChannel.setMockMethodCallHandler(_handler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, _handler); } final Duration? delay; @@ -37,3 +39,9 @@ class MethodChannelMock { }); } } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/camera/camera_windows/test/utils/method_channel_mock.dart b/packages/camera/camera_windows/test/utils/method_channel_mock.dart index 22f7ecead589..559f60662844 100644 --- a/packages/camera/camera_windows/test/utils/method_channel_mock.dart +++ b/packages/camera/camera_windows/test/utils/method_channel_mock.dart @@ -17,7 +17,9 @@ class MethodChannelMock { this.delay, required this.methods, }) : methodChannel = MethodChannel(channelName) { - methodChannel.setMockMethodCallHandler(_handler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, _handler); } final Duration? delay; @@ -43,3 +45,9 @@ class MethodChannelMock { }); } } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/file_selector/file_selector_linux/test/file_selector_linux_test.dart b/packages/file_selector/file_selector_linux/test/file_selector_linux_test.dart index 4eae078def0c..53a549da3d4a 100644 --- a/packages/file_selector/file_selector_linux/test/file_selector_linux_test.dart +++ b/packages/file_selector/file_selector_linux/test/file_selector_linux_test.dart @@ -16,10 +16,15 @@ void main() { setUp(() { plugin = FileSelectorLinux(); log = []; - plugin.channel.setMockMethodCallHandler((MethodCall methodCall) async { - log.add(methodCall); - return null; - }); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + plugin.channel, + (MethodCall methodCall) async { + log.add(methodCall); + return null; + }, + ); }); test('registers instance', () { @@ -424,3 +429,9 @@ void expectMethodCall( }) { expect(log, [isMethodCall(methodName, arguments: arguments)]); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/file_selector/file_selector_platform_interface/test/method_channel_file_selector_test.dart b/packages/file_selector/file_selector_platform_interface/test/method_channel_file_selector_test.dart index 9caa76c02bcb..c5438f7ecbc2 100644 --- a/packages/file_selector/file_selector_platform_interface/test/method_channel_file_selector_test.dart +++ b/packages/file_selector/file_selector_platform_interface/test/method_channel_file_selector_test.dart @@ -16,10 +16,15 @@ void main() { final List log = []; setUp(() { - plugin.channel.setMockMethodCallHandler((MethodCall methodCall) async { - log.add(methodCall); - return null; - }); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + plugin.channel, + (MethodCall methodCall) async { + log.add(methodCall); + return null; + }, + ); log.clear(); }); @@ -274,3 +279,9 @@ void expectMethodCall( }) { expect(log, [isMethodCall(methodName, arguments: arguments)]); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/google_maps_flutter/google_maps_flutter/test/circle_updates_test.dart b/packages/google_maps_flutter/google_maps_flutter/test/circle_updates_test.dart index c6e71137903b..459e16b60c42 100644 --- a/packages/google_maps_flutter/google_maps_flutter/test/circle_updates_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter/test/circle_updates_test.dart @@ -26,8 +26,12 @@ void main() { FakePlatformViewsController(); setUpAll(() { - SystemChannels.platform_views.setMockMethodCallHandler( - fakePlatformViewsController.fakePlatformViewsMethodHandler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform_views, + fakePlatformViewsController.fakePlatformViewsMethodHandler, + ); }); setUp(() { @@ -194,3 +198,9 @@ void main() { expect(platformGoogleMap.circlesToAdd.isEmpty, true); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/google_maps_flutter/google_maps_flutter/test/fake_maps_controllers.dart b/packages/google_maps_flutter/google_maps_flutter/test/fake_maps_controllers.dart index b2747c9cb5fe..2c6aba1bb0ba 100644 --- a/packages/google_maps_flutter/google_maps_flutter/test/fake_maps_controllers.dart +++ b/packages/google_maps_flutter/google_maps_flutter/test/fake_maps_controllers.dart @@ -13,7 +13,9 @@ class FakePlatformGoogleMap { : cameraPosition = CameraPosition.fromMap(params['initialCameraPosition']), channel = MethodChannel('plugins.flutter.io/google_maps_$id') { - channel.setMockMethodCallHandler(onMethodCall); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, onMethodCall); updateOptions(params['options'] as Map); updateMarkers(params); updatePolygons(params); @@ -478,3 +480,9 @@ Map? _decodeParams(Uint8List paramsMessage) { return const StandardMessageCodec().decodeMessage(messageBytes) as Map?; } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/google_maps_flutter/google_maps_flutter/test/google_map_test.dart b/packages/google_maps_flutter/google_maps_flutter/test/google_map_test.dart index 0fc5e7723df5..99b12988f3b4 100644 --- a/packages/google_maps_flutter/google_maps_flutter/test/google_map_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter/test/google_map_test.dart @@ -16,8 +16,12 @@ void main() { FakePlatformViewsController(); setUpAll(() { - SystemChannels.platform_views.setMockMethodCallHandler( - fakePlatformViewsController.fakePlatformViewsMethodHandler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform_views, + fakePlatformViewsController.fakePlatformViewsMethodHandler, + ); }); setUp(() { @@ -576,3 +580,9 @@ void main() { expect(platformGoogleMap.buildingsEnabled, true); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/google_maps_flutter/google_maps_flutter/test/marker_updates_test.dart b/packages/google_maps_flutter/google_maps_flutter/test/marker_updates_test.dart index 0acde97e8d9a..75a153e0eaa2 100644 --- a/packages/google_maps_flutter/google_maps_flutter/test/marker_updates_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter/test/marker_updates_test.dart @@ -26,8 +26,12 @@ void main() { FakePlatformViewsController(); setUpAll(() { - SystemChannels.platform_views.setMockMethodCallHandler( - fakePlatformViewsController.fakePlatformViewsMethodHandler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform_views, + fakePlatformViewsController.fakePlatformViewsMethodHandler, + ); }); setUp(() { @@ -200,3 +204,9 @@ void main() { expect(platformGoogleMap.markersToAdd.isEmpty, true); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/google_maps_flutter/google_maps_flutter/test/polygon_updates_test.dart b/packages/google_maps_flutter/google_maps_flutter/test/polygon_updates_test.dart index 1e5ea84a0422..152cbddfc34a 100644 --- a/packages/google_maps_flutter/google_maps_flutter/test/polygon_updates_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter/test/polygon_updates_test.dart @@ -49,8 +49,12 @@ void main() { FakePlatformViewsController(); setUpAll(() { - SystemChannels.platform_views.setMockMethodCallHandler( - fakePlatformViewsController.fakePlatformViewsMethodHandler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform_views, + fakePlatformViewsController.fakePlatformViewsMethodHandler, + ); }); setUp(() { @@ -403,3 +407,9 @@ void main() { expect(platformGoogleMap.polygonsToAdd.isEmpty, true); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/google_maps_flutter/google_maps_flutter/test/polyline_updates_test.dart b/packages/google_maps_flutter/google_maps_flutter/test/polyline_updates_test.dart index 4c68a71542d5..03b6c620190a 100644 --- a/packages/google_maps_flutter/google_maps_flutter/test/polyline_updates_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter/test/polyline_updates_test.dart @@ -26,8 +26,12 @@ void main() { FakePlatformViewsController(); setUpAll(() { - SystemChannels.platform_views.setMockMethodCallHandler( - fakePlatformViewsController.fakePlatformViewsMethodHandler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform_views, + fakePlatformViewsController.fakePlatformViewsMethodHandler, + ); }); setUp(() { @@ -216,3 +220,9 @@ void main() { expect(platformGoogleMap.polylinesToAdd.isEmpty, true); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/google_maps_flutter/google_maps_flutter/test/tile_overlay_updates_test.dart b/packages/google_maps_flutter/google_maps_flutter/test/tile_overlay_updates_test.dart index b4586f743296..e4e4514dd501 100644 --- a/packages/google_maps_flutter/google_maps_flutter/test/tile_overlay_updates_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter/test/tile_overlay_updates_test.dart @@ -24,8 +24,12 @@ void main() { FakePlatformViewsController(); setUpAll(() { - SystemChannels.platform_views.setMockMethodCallHandler( - fakePlatformViewsController.fakePlatformViewsMethodHandler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform_views, + fakePlatformViewsController.fakePlatformViewsMethodHandler, + ); }); setUp(() { @@ -198,3 +202,9 @@ void main() { expect(platformGoogleMap.tileOverlaysToAdd.isEmpty, true); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/google_maps_flutter/google_maps_flutter_android/test/google_maps_flutter_android_test.dart b/packages/google_maps_flutter/google_maps_flutter_android/test/google_maps_flutter_android_test.dart index 6f9edad9cb71..29c02c836a85 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/test/google_maps_flutter_android_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter_android/test/google_maps_flutter_android_test.dart @@ -25,12 +25,16 @@ void main() { required int mapId, required Future? Function(MethodCall call) handler, }) { - maps - .ensureChannelInitialized(mapId) - .setMockMethodCallHandler((MethodCall methodCall) { - log.add(methodCall.method); - return handler(methodCall); - }); + final MethodChannel channel = maps.ensureChannelInitialized(mapId); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + channel, + (MethodCall methodCall) { + log.add(methodCall.method); + return handler(methodCall); + }, + ); } Future sendPlatformMessage( diff --git a/packages/google_maps_flutter/google_maps_flutter_ios/test/google_maps_flutter_ios_test.dart b/packages/google_maps_flutter/google_maps_flutter_ios/test/google_maps_flutter_ios_test.dart index fb23ab24aaeb..a5d376da1684 100644 --- a/packages/google_maps_flutter/google_maps_flutter_ios/test/google_maps_flutter_ios_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter_ios/test/google_maps_flutter_ios_test.dart @@ -24,12 +24,16 @@ void main() { required int mapId, required Future? Function(MethodCall call) handler, }) { - maps - .ensureChannelInitialized(mapId) - .setMockMethodCallHandler((MethodCall methodCall) { - log.add(methodCall.method); - return handler(methodCall); - }); + final MethodChannel channel = maps.ensureChannelInitialized(mapId); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + channel, + (MethodCall methodCall) { + log.add(methodCall.method); + return handler(methodCall); + }, + ); } Future sendPlatformMessage( diff --git a/packages/google_maps_flutter/google_maps_flutter_platform_interface/test/method_channel/method_channel_google_maps_flutter_test.dart b/packages/google_maps_flutter/google_maps_flutter_platform_interface/test/method_channel/method_channel_google_maps_flutter_test.dart index 18743dd1f00e..ef37c2f221fa 100644 --- a/packages/google_maps_flutter/google_maps_flutter_platform_interface/test/method_channel/method_channel_google_maps_flutter_test.dart +++ b/packages/google_maps_flutter/google_maps_flutter_platform_interface/test/method_channel/method_channel_google_maps_flutter_test.dart @@ -24,12 +24,16 @@ void main() { required int mapId, required Future? Function(MethodCall call) handler, }) { - maps - .ensureChannelInitialized(mapId) - .setMockMethodCallHandler((MethodCall methodCall) { - log.add(methodCall.method); - return handler(methodCall); - }); + final MethodChannel channel = maps.ensureChannelInitialized(mapId); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + channel, + (MethodCall methodCall) { + log.add(methodCall.method); + return handler(methodCall); + }, + ); } Future sendPlatformMessage( diff --git a/packages/google_sign_in/google_sign_in_android/test/google_sign_in_android_test.dart b/packages/google_sign_in/google_sign_in_android/test/google_sign_in_android_test.dart index 2565836f51aa..b70d2e7bffa6 100644 --- a/packages/google_sign_in/google_sign_in_android/test/google_sign_in_android_test.dart +++ b/packages/google_sign_in/google_sign_in_android/test/google_sign_in_android_test.dart @@ -50,14 +50,19 @@ void main() { setUp(() { responses = Map.from(kDefaultResponses); - channel.setMockMethodCallHandler((MethodCall methodCall) { - log.add(methodCall); - final dynamic response = responses[methodCall.method]; - if (response != null && response is Exception) { - return Future.error('$response'); - } - return Future.value(response); - }); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + channel, + (MethodCall methodCall) { + log.add(methodCall); + final dynamic response = responses[methodCall.method]; + if (response != null && response is Exception) { + return Future.error('$response'); + } + return Future.value(response); + }, + ); log.clear(); }); @@ -159,3 +164,9 @@ void main() { expect(log, tests.values); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/google_sign_in/google_sign_in_ios/test/google_sign_in_ios_test.dart b/packages/google_sign_in/google_sign_in_ios/test/google_sign_in_ios_test.dart index 0fee1af66120..6adbdec39b74 100644 --- a/packages/google_sign_in/google_sign_in_ios/test/google_sign_in_ios_test.dart +++ b/packages/google_sign_in/google_sign_in_ios/test/google_sign_in_ios_test.dart @@ -51,14 +51,19 @@ void main() { setUp(() { responses = Map.from(kDefaultResponses); log = []; - channel.setMockMethodCallHandler((MethodCall methodCall) { - log.add(methodCall); - final dynamic response = responses[methodCall.method]; - if (response != null && response is Exception) { - return Future.error('$response'); - } - return Future.value(response); - }); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + channel, + (MethodCall methodCall) { + log.add(methodCall); + final dynamic response = responses[methodCall.method]; + if (response != null && response is Exception) { + return Future.error('$response'); + } + return Future.value(response); + }, + ); }); test('registered instance', () { @@ -162,3 +167,9 @@ void main() { expect(log, tests.values); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/google_sign_in/google_sign_in_platform_interface/test/method_channel_google_sign_in_test.dart b/packages/google_sign_in/google_sign_in_platform_interface/test/method_channel_google_sign_in_test.dart index 0972d0be4855..0837f6d5d02c 100644 --- a/packages/google_sign_in/google_sign_in_platform_interface/test/method_channel_google_sign_in_test.dart +++ b/packages/google_sign_in/google_sign_in_platform_interface/test/method_channel_google_sign_in_test.dart @@ -50,7 +50,9 @@ void main() { setUp(() { responses = Map.from(kDefaultResponses); - channel.setMockMethodCallHandler((MethodCall methodCall) { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) { log.add(methodCall); final dynamic response = responses[methodCall.method]; if (response != null && response is Exception) { @@ -160,3 +162,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/image_picker/image_picker_android/test/image_picker_android_test.dart b/packages/image_picker/image_picker_android/test/image_picker_android_test.dart index ee1eb79f1045..d6680ce44dd5 100644 --- a/packages/image_picker/image_picker_android/test/image_picker_android_test.dart +++ b/packages/image_picker/image_picker_android/test/image_picker_android_test.dart @@ -18,7 +18,10 @@ void main() { setUp(() { returnValue = ''; - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { log.add(methodCall); return returnValue; }); @@ -189,7 +192,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.pickImage(source: ImageSource.gallery), isNull); expect(await picker.pickImage(source: ImageSource.camera), isNull); @@ -347,7 +353,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.pickMultiImage(), isNull); expect(await picker.pickMultiImage(), isNull); @@ -418,7 +427,10 @@ void main() { }); test('handles a null video path response gracefully', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.pickVideo(source: ImageSource.gallery), isNull); expect(await picker.pickVideo(source: ImageSource.camera), isNull); @@ -460,7 +472,10 @@ void main() { group('#retrieveLostData', () { test('retrieveLostData get success response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'image', 'path': '/example/path', @@ -473,7 +488,10 @@ void main() { }); test('retrieveLostData get error response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'video', 'errorCode': 'test_error_code', @@ -488,14 +506,20 @@ void main() { }); test('retrieveLostData get null response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return null; }); expect((await picker.retrieveLostData()).isEmpty, true); }); test('retrieveLostData get both path and error should throw', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'video', 'errorCode': 'test_error_code', @@ -665,7 +689,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.getImage(source: ImageSource.gallery), isNull); expect(await picker.getImage(source: ImageSource.camera), isNull); @@ -823,7 +850,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.getMultiImage(), isNull); expect(await picker.getMultiImage(), isNull); @@ -894,7 +924,10 @@ void main() { }); test('handles a null video path response gracefully', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.getVideo(source: ImageSource.gallery), isNull); expect(await picker.getVideo(source: ImageSource.camera), isNull); @@ -936,7 +969,10 @@ void main() { group('#getLostData', () { test('getLostData get success response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'image', 'path': '/example/path', @@ -949,7 +985,10 @@ void main() { }); test('getLostData should successfully retrieve multiple files', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'image', 'path': '/example/path1', @@ -965,7 +1004,10 @@ void main() { }); test('getLostData get error response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'video', 'errorCode': 'test_error_code', @@ -980,14 +1022,20 @@ void main() { }); test('getLostData get null response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return null; }); expect((await picker.getLostData()).isEmpty, true); }); test('getLostData get both path and error should throw', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'video', 'errorCode': 'test_error_code', @@ -1183,7 +1231,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect( await picker.getImageFromSource(source: ImageSource.gallery), isNull); @@ -1254,3 +1305,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/image_picker/image_picker_platform_interface/test/new_method_channel_image_picker_test.dart b/packages/image_picker/image_picker_platform_interface/test/new_method_channel_image_picker_test.dart index 44980100742a..244af3982672 100644 --- a/packages/image_picker/image_picker_platform_interface/test/new_method_channel_image_picker_test.dart +++ b/packages/image_picker/image_picker_platform_interface/test/new_method_channel_image_picker_test.dart @@ -18,7 +18,10 @@ void main() { setUp(() { returnValue = ''; - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { log.add(methodCall); return returnValue; }); @@ -185,8 +188,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel - .setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.pickImage(source: ImageSource.gallery), isNull); expect(await picker.pickImage(source: ImageSource.camera), isNull); @@ -352,8 +357,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel - .setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.pickMultiImage(), isNull); expect(await picker.pickMultiImage(), isNull); @@ -424,8 +431,10 @@ void main() { }); test('handles a null video path response gracefully', () async { - picker.channel - .setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.pickVideo(source: ImageSource.gallery), isNull); expect(await picker.pickVideo(source: ImageSource.camera), isNull); @@ -467,7 +476,10 @@ void main() { group('#retrieveLostData', () { test('retrieveLostData get success response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'image', 'path': '/example/path', @@ -480,7 +492,10 @@ void main() { }); test('retrieveLostData get error response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'video', 'errorCode': 'test_error_code', @@ -495,14 +510,20 @@ void main() { }); test('retrieveLostData get null response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return null; }); expect((await picker.retrieveLostData()).isEmpty, true); }); test('retrieveLostData get both path and error should throw', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'video', 'errorCode': 'test_error_code', @@ -672,8 +693,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel - .setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.getImage(source: ImageSource.gallery), isNull); expect(await picker.getImage(source: ImageSource.camera), isNull); @@ -839,8 +862,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel - .setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.getMultiImage(), isNull); expect(await picker.getMultiImage(), isNull); @@ -911,8 +936,10 @@ void main() { }); test('handles a null video path response gracefully', () async { - picker.channel - .setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.getVideo(source: ImageSource.gallery), isNull); expect(await picker.getVideo(source: ImageSource.camera), isNull); @@ -954,7 +981,10 @@ void main() { group('#getLostData', () { test('getLostData get success response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'image', 'path': '/example/path', @@ -967,7 +997,10 @@ void main() { }); test('getLostData should successfully retrieve multiple files', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'image', 'path': '/example/path1', @@ -983,7 +1016,10 @@ void main() { }); test('getLostData get error response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'video', 'errorCode': 'test_error_code', @@ -998,14 +1034,20 @@ void main() { }); test('getLostData get null response', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return null; }); expect((await picker.getLostData()).isEmpty, true); }); test('getLostData get both path and error should throw', () async { - picker.channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(picker.channel, + (MethodCall methodCall) async { return { 'type': 'video', 'errorCode': 'test_error_code', @@ -1201,8 +1243,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel - .setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.getImageFromSource(source: ImageSource.gallery), isNull); @@ -1431,8 +1475,10 @@ void main() { }); test('handles a null image path response gracefully', () async { - picker.channel - .setMockMethodCallHandler((MethodCall methodCall) => null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + picker.channel, (MethodCall methodCall) => null); expect(await picker.getMultiImage(), isNull); expect(await picker.getMultiImage(), isNull); @@ -1478,3 +1524,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/billing_client_wrapper_test.dart b/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/billing_client_wrapper_test.dart index 4dae957e21eb..98219dc9d4e5 100644 --- a/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/billing_client_wrapper_test.dart +++ b/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/billing_client_wrapper_test.dart @@ -17,8 +17,9 @@ void main() { final StubInAppPurchasePlatform stubPlatform = StubInAppPurchasePlatform(); late BillingClient billingClient; - setUpAll(() => - channel.setMockMethodCallHandler(stubPlatform.fakeMethodCallHandler)); + setUpAll(() => _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, stubPlatform.fakeMethodCallHandler)); setUp(() { billingClient = BillingClient((PurchasesResultWrapper _) {}); @@ -651,3 +652,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/in_app_purchase/in_app_purchase_android/test/in_app_purchase_android_platform_addition_test.dart b/packages/in_app_purchase/in_app_purchase_android/test/in_app_purchase_android_platform_addition_test.dart index 9737282e27b7..a97c69608a3a 100644 --- a/packages/in_app_purchase/in_app_purchase_android/test/in_app_purchase_android_platform_addition_test.dart +++ b/packages/in_app_purchase/in_app_purchase_android/test/in_app_purchase_android_platform_addition_test.dart @@ -22,7 +22,9 @@ void main() { const String endConnectionCall = 'BillingClient#endConnection()'; setUpAll(() { - channel.setMockMethodCallHandler(stubPlatform.fakeMethodCallHandler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, stubPlatform.fakeMethodCallHandler); }); setUp(() { @@ -213,3 +215,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/in_app_purchase/in_app_purchase_android/test/in_app_purchase_android_platform_test.dart b/packages/in_app_purchase/in_app_purchase_android/test/in_app_purchase_android_platform_test.dart index 70e519ce9f6e..347bacde20b1 100644 --- a/packages/in_app_purchase/in_app_purchase_android/test/in_app_purchase_android_platform_test.dart +++ b/packages/in_app_purchase/in_app_purchase_android/test/in_app_purchase_android_platform_test.dart @@ -26,7 +26,9 @@ void main() { const String endConnectionCall = 'BillingClient#endConnection()'; setUpAll(() { - channel.setMockMethodCallHandler(stubPlatform.fakeMethodCallHandler); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, stubPlatform.fakeMethodCallHandler); }); setUp(() { @@ -786,3 +788,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/in_app_purchase/in_app_purchase_storekit/test/fakes/fake_storekit_platform.dart b/packages/in_app_purchase/in_app_purchase_storekit/test/fakes/fake_storekit_platform.dart index dfc715c86b4d..e6369161080f 100644 --- a/packages/in_app_purchase/in_app_purchase_storekit/test/fakes/fake_storekit_platform.dart +++ b/packages/in_app_purchase/in_app_purchase_storekit/test/fakes/fake_storekit_platform.dart @@ -14,7 +14,9 @@ import '../store_kit_wrappers/sk_test_stub_objects.dart'; class FakeStoreKitPlatform { FakeStoreKitPlatform() { - channel.setMockMethodCallHandler(onMethodCall); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, onMethodCall); } // pre-configured store information @@ -235,3 +237,9 @@ class FakeStoreKitPlatform { return (call.arguments as Map).cast(); } } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/in_app_purchase/in_app_purchase_storekit/test/in_app_purchase_storekit_platform_addtion_test.dart b/packages/in_app_purchase/in_app_purchase_storekit/test/in_app_purchase_storekit_platform_addtion_test.dart index dfdff5117091..2890e7542bbe 100644 --- a/packages/in_app_purchase/in_app_purchase_storekit/test/in_app_purchase_storekit_platform_addtion_test.dart +++ b/packages/in_app_purchase/in_app_purchase_storekit/test/in_app_purchase_storekit_platform_addtion_test.dart @@ -15,8 +15,10 @@ void main() { final FakeStoreKitPlatform fakeStoreKitPlatform = FakeStoreKitPlatform(); setUpAll(() { - SystemChannels.platform - .setMockMethodCallHandler(fakeStoreKitPlatform.onMethodCall); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform, fakeStoreKitPlatform.onMethodCall); }); group('present code redemption sheet', () { @@ -39,3 +41,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/in_app_purchase/in_app_purchase_storekit/test/in_app_purchase_storekit_platform_test.dart b/packages/in_app_purchase/in_app_purchase_storekit/test/in_app_purchase_storekit_platform_test.dart index 51ff2c229483..fbb37974a208 100644 --- a/packages/in_app_purchase/in_app_purchase_storekit/test/in_app_purchase_storekit_platform_test.dart +++ b/packages/in_app_purchase/in_app_purchase_storekit/test/in_app_purchase_storekit_platform_test.dart @@ -21,8 +21,10 @@ void main() { late InAppPurchaseStoreKitPlatform iapStoreKitPlatform; setUpAll(() { - SystemChannels.platform - .setMockMethodCallHandler(fakeStoreKitPlatform.onMethodCall); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform, fakeStoreKitPlatform.onMethodCall); }); setUp(() { @@ -571,3 +573,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/sk_methodchannel_apis_test.dart b/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/sk_methodchannel_apis_test.dart index 4936f62a911a..0cf01b0bbfd6 100644 --- a/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/sk_methodchannel_apis_test.dart +++ b/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/sk_methodchannel_apis_test.dart @@ -14,8 +14,10 @@ void main() { final FakeStoreKitPlatform fakeStoreKitPlatform = FakeStoreKitPlatform(); setUpAll(() { - SystemChannels.platform - .setMockMethodCallHandler(fakeStoreKitPlatform.onMethodCall); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform, fakeStoreKitPlatform.onMethodCall); }); setUp(() {}); @@ -185,7 +187,9 @@ void main() { class FakeStoreKitPlatform { FakeStoreKitPlatform() { - channel.setMockMethodCallHandler(onMethodCall); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, onMethodCall); } // get product request List startProductRequestParam = []; @@ -303,3 +307,9 @@ class TestPaymentTransactionObserver extends SKTransactionObserverWrapper { return true; } } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/sk_payment_queue_delegate_api_test.dart b/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/sk_payment_queue_delegate_api_test.dart index df76254aabf7..3d55fe27d7b0 100644 --- a/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/sk_payment_queue_delegate_api_test.dart +++ b/packages/in_app_purchase/in_app_purchase_storekit/test/store_kit_wrappers/sk_payment_queue_delegate_api_test.dart @@ -13,8 +13,10 @@ void main() { final FakeStoreKitPlatform fakeStoreKitPlatform = FakeStoreKitPlatform(); setUpAll(() { - SystemChannels.platform - .setMockMethodCallHandler(fakeStoreKitPlatform.onMethodCall); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform, fakeStoreKitPlatform.onMethodCall); }); test( @@ -148,7 +150,9 @@ class TestPaymentQueueDelegate extends SKPaymentQueueDelegateWrapper { class FakeStoreKitPlatform { FakeStoreKitPlatform() { - channel.setMockMethodCallHandler(onMethodCall); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, onMethodCall); } // indicate if the payment queue delegate is registered @@ -166,3 +170,9 @@ class FakeStoreKitPlatform { return Future.error('method not mocked'); } } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/ios_platform_images/test/ios_platform_images_test.dart b/packages/ios_platform_images/test/ios_platform_images_test.dart index 76b012002dfa..f42b78646038 100644 --- a/packages/ios_platform_images/test/ios_platform_images_test.dart +++ b/packages/ios_platform_images/test/ios_platform_images_test.dart @@ -13,16 +13,26 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); setUp(() { - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { return '42'; }); }); tearDown(() { - channel.setMockMethodCallHandler(null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); test('resolveURL', () async { expect(await IosPlatformImages.resolveURL('foobar'), '42'); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/local_auth/local_auth_android/test/local_auth_test.dart b/packages/local_auth/local_auth_android/test/local_auth_test.dart index 86e5713f4bd6..136613d48245 100644 --- a/packages/local_auth/local_auth_android/test/local_auth_test.dart +++ b/packages/local_auth/local_auth_android/test/local_auth_test.dart @@ -18,7 +18,9 @@ void main() { late LocalAuthAndroid localAuthentication; setUp(() { - channel.setMockMethodCallHandler((MethodCall methodCall) { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) { log.add(methodCall); switch (methodCall.method) { case 'getEnrolledBiometrics': @@ -174,3 +176,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/local_auth/local_auth_ios/test/local_auth_test.dart b/packages/local_auth/local_auth_ios/test/local_auth_test.dart index 0ad89e52f5ce..0d7f56d5da90 100644 --- a/packages/local_auth/local_auth_ios/test/local_auth_test.dart +++ b/packages/local_auth/local_auth_ios/test/local_auth_test.dart @@ -18,7 +18,9 @@ void main() { late LocalAuthIOS localAuthentication; setUp(() { - channel.setMockMethodCallHandler((MethodCall methodCall) { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) { log.add(methodCall); switch (methodCall.method) { case 'getEnrolledBiometrics': @@ -181,3 +183,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/local_auth/local_auth_platform_interface/test/default_method_channel_platform_test.dart b/packages/local_auth/local_auth_platform_interface/test/default_method_channel_platform_test.dart index 824597ab2953..c513b4473574 100644 --- a/packages/local_auth/local_auth_platform_interface/test/default_method_channel_platform_test.dart +++ b/packages/local_auth/local_auth_platform_interface/test/default_method_channel_platform_test.dart @@ -29,7 +29,9 @@ void main() { }); test('getAvailableBiometrics', () async { - channel.setMockMethodCallHandler((MethodCall methodCall) { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) { log.add(methodCall); return Future.value([]); }); @@ -49,7 +51,9 @@ void main() { // existing unendorsed implementations, used 'undefined' as a special // return value from `getAvailableBiometrics` to indicate that nothing was // enrolled, but that the hardware does support biometrics. - channel.setMockMethodCallHandler((MethodCall methodCall) { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) { log.add(methodCall); return Future.value(['undefined']); }); @@ -68,7 +72,9 @@ void main() { group('Boolean returning methods', () { setUp(() { - channel.setMockMethodCallHandler((MethodCall methodCall) { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) { log.add(methodCall); return Future.value(true); }); @@ -198,3 +204,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/path_provider/path_provider_platform_interface/test/method_channel_path_provider_test.dart b/packages/path_provider/path_provider_platform_interface/test/method_channel_path_provider_test.dart index 69c9b2b01f19..035e7becb9ff 100644 --- a/packages/path_provider/path_provider_platform_interface/test/method_channel_path_provider_test.dart +++ b/packages/path_provider/path_provider_platform_interface/test/method_channel_path_provider_test.dart @@ -25,8 +25,10 @@ void main() { setUp(() async { methodChannelPathProvider = MethodChannelPathProvider(); - methodChannelPathProvider.methodChannel - .setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(methodChannelPathProvider.methodChannel, + (MethodCall methodCall) async { log.add(methodCall); switch (methodCall.method) { case 'getTemporaryDirectory': @@ -204,3 +206,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/quick_actions/quick_actions_android/test/quick_actions_android_test.dart b/packages/quick_actions/quick_actions_android/test/quick_actions_android_test.dart index 40cfe458615d..0a98f5d4e55b 100644 --- a/packages/quick_actions/quick_actions_android/test/quick_actions_android_test.dart +++ b/packages/quick_actions/quick_actions_android/test/quick_actions_android_test.dart @@ -21,8 +21,10 @@ void main() { QuickActionsAndroid buildQuickActionsPlugin() { final QuickActionsAndroid quickActions = QuickActionsAndroid(); - quickActions.channel - .setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(quickActions.channel, + (MethodCall methodCall) async { log.add(methodCall); return ''; }); @@ -162,3 +164,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/quick_actions/quick_actions_ios/test/quick_actions_ios_test.dart b/packages/quick_actions/quick_actions_ios/test/quick_actions_ios_test.dart index 36827a5c6d8c..d2b062fff223 100644 --- a/packages/quick_actions/quick_actions_ios/test/quick_actions_ios_test.dart +++ b/packages/quick_actions/quick_actions_ios/test/quick_actions_ios_test.dart @@ -21,8 +21,10 @@ void main() { QuickActionsIos buildQuickActionsPlugin() { final QuickActionsIos quickActions = QuickActionsIos(); - quickActions.channel - .setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(quickActions.channel, + (MethodCall methodCall) async { log.add(methodCall); return ''; }); @@ -162,3 +164,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/quick_actions/quick_actions_platform_interface/test/method_channel_quick_actions_test.dart b/packages/quick_actions/quick_actions_platform_interface/test/method_channel_quick_actions_test.dart index 240f11bd8037..c1a508fbfb92 100644 --- a/packages/quick_actions/quick_actions_platform_interface/test/method_channel_quick_actions_test.dart +++ b/packages/quick_actions/quick_actions_platform_interface/test/method_channel_quick_actions_test.dart @@ -18,8 +18,10 @@ void main() { final List log = []; setUp(() { - quickActions.channel - .setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(quickActions.channel, + (MethodCall methodCall) async { log.add(methodCall); return ''; }); @@ -148,3 +150,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/shared_preferences/shared_preferences_android/test/shared_preferences_android_test.dart b/packages/shared_preferences/shared_preferences_android/test/shared_preferences_android_test.dart index fb6764893651..f1043daac1a4 100644 --- a/packages/shared_preferences/shared_preferences_android/test/shared_preferences_android_test.dart +++ b/packages/shared_preferences/shared_preferences_android/test/shared_preferences_android_test.dart @@ -38,7 +38,9 @@ void main() { .cast(); } - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); if (methodCall.method == 'getAll') { return testData.getAll(); @@ -124,3 +126,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/shared_preferences/shared_preferences_platform_interface/test/method_channel_shared_preferences_test.dart b/packages/shared_preferences/shared_preferences_platform_interface/test/method_channel_shared_preferences_test.dart index da333cf7f234..296592e70bb0 100644 --- a/packages/shared_preferences/shared_preferences_platform_interface/test/method_channel_shared_preferences_test.dart +++ b/packages/shared_preferences/shared_preferences_platform_interface/test/method_channel_shared_preferences_test.dart @@ -36,7 +36,9 @@ void main() { .cast(); } - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); if (methodCall.method == 'getAll') { return testData.getAll(); @@ -117,3 +119,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/url_launcher/url_launcher_android/test/url_launcher_android_test.dart b/packages/url_launcher/url_launcher_android/test/url_launcher_android_test.dart index b8ccc2cbbee7..18db61e0b9fa 100644 --- a/packages/url_launcher/url_launcher_android/test/url_launcher_android_test.dart +++ b/packages/url_launcher/url_launcher_android/test/url_launcher_android_test.dart @@ -16,7 +16,9 @@ void main() { setUp(() { log = []; - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); // Return null explicitly instead of relying on the implicit null @@ -32,7 +34,9 @@ void main() { group('canLaunch', () { test('calls through', () async { - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return true; }); @@ -59,7 +63,9 @@ void main() { test('checks a generic URL if an http URL returns false', () async { const String specificUrl = 'http://example.com/'; const String genericUrl = 'http://flutter.dev'; - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return (methodCall.arguments as Map)['url'] != specificUrl; @@ -76,7 +82,9 @@ void main() { test('checks a generic URL if an https URL returns false', () async { const String specificUrl = 'https://example.com/'; const String genericUrl = 'https://flutter.dev'; - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return (methodCall.arguments as Map)['url'] != specificUrl; @@ -91,7 +99,9 @@ void main() { }); test('does not a generic URL if a non-web URL returns false', () async { - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return false; }); @@ -288,3 +298,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/url_launcher/url_launcher_ios/test/url_launcher_ios_test.dart b/packages/url_launcher/url_launcher_ios/test/url_launcher_ios_test.dart index 8fad5807bddb..34dac1c4f925 100644 --- a/packages/url_launcher/url_launcher_ios/test/url_launcher_ios_test.dart +++ b/packages/url_launcher/url_launcher_ios/test/url_launcher_ios_test.dart @@ -14,7 +14,9 @@ void main() { const MethodChannel channel = MethodChannel('plugins.flutter.io/url_launcher_ios'); final List log = []; - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); // Return null explicitly instead of relying on the implicit null @@ -206,3 +208,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/url_launcher/url_launcher_linux/test/url_launcher_linux_test.dart b/packages/url_launcher/url_launcher_linux/test/url_launcher_linux_test.dart index 7a4399dd4e6c..4e62cc446199 100644 --- a/packages/url_launcher/url_launcher_linux/test/url_launcher_linux_test.dart +++ b/packages/url_launcher/url_launcher_linux/test/url_launcher_linux_test.dart @@ -14,7 +14,9 @@ void main() { const MethodChannel channel = MethodChannel('plugins.flutter.io/url_launcher_linux'); final List log = []; - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); // Return null explicitly instead of relying on the implicit null @@ -142,3 +144,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/url_launcher/url_launcher_macos/test/url_launcher_macos_test.dart b/packages/url_launcher/url_launcher_macos/test/url_launcher_macos_test.dart index 0a28aea678c3..26011fa6779a 100644 --- a/packages/url_launcher/url_launcher_macos/test/url_launcher_macos_test.dart +++ b/packages/url_launcher/url_launcher_macos/test/url_launcher_macos_test.dart @@ -14,7 +14,9 @@ void main() { const MethodChannel channel = MethodChannel('plugins.flutter.io/url_launcher_macos'); final List log = []; - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); // Return null explicitly instead of relying on the implicit null @@ -142,3 +144,9 @@ void main() { }); }); } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/url_launcher/url_launcher_platform_interface/test/method_channel_url_launcher_test.dart b/packages/url_launcher/url_launcher_platform_interface/test/method_channel_url_launcher_test.dart index c8ec08c53095..9ccdd84ae890 100644 --- a/packages/url_launcher/url_launcher_platform_interface/test/method_channel_url_launcher_test.dart +++ b/packages/url_launcher/url_launcher_platform_interface/test/method_channel_url_launcher_test.dart @@ -48,7 +48,9 @@ void main() { const MethodChannel channel = MethodChannel('plugins.flutter.io/url_launcher'); final List log = []; - channel.setMockMethodCallHandler((MethodCall methodCall) async { + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); // Return null explicitly instead of relying on the implicit null @@ -323,3 +325,9 @@ class ExtendsUrlLauncherPlatform extends UrlLauncherPlatform { @override final LinkDelegate? linkDelegate = null; } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value; diff --git a/packages/video_player/video_player_android/test/android_video_player_test.dart b/packages/video_player/video_player_android/test/android_video_player_test.dart index fa7ca7aa7f7a..6aa24e5c1808 100644 --- a/packages/video_player/video_player_android/test/android_video_player_test.dart +++ b/packages/video_player/video_player_android/test/android_video_player_test.dart @@ -234,16 +234,16 @@ void main() { }); test('videoEventsFor', () async { - _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .setMockMessageHandler( 'flutter.io/videoPlayer/videoEvents123', (ByteData? message) async { final MethodCall methodCall = const StandardMethodCodec().decodeMethodCall(message); if (methodCall.method == 'listen') { - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() @@ -255,8 +255,8 @@ void main() { }), (ByteData? data) {}); - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() @@ -269,8 +269,8 @@ void main() { }), (ByteData? data) {}); - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() @@ -279,8 +279,8 @@ void main() { }), (ByteData? data) {}); - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() @@ -293,8 +293,8 @@ void main() { }), (ByteData? data) {}); - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() @@ -303,8 +303,8 @@ void main() { }), (ByteData? data) {}); - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() diff --git a/packages/video_player/video_player_avfoundation/test/avfoundation_video_player_test.dart b/packages/video_player/video_player_avfoundation/test/avfoundation_video_player_test.dart index e7c3b5ba4ff3..c01373f05424 100644 --- a/packages/video_player/video_player_avfoundation/test/avfoundation_video_player_test.dart +++ b/packages/video_player/video_player_avfoundation/test/avfoundation_video_player_test.dart @@ -234,16 +234,16 @@ void main() { }); test('videoEventsFor', () async { - _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .setMockMessageHandler( 'flutter.io/videoPlayer/videoEvents123', (ByteData? message) async { final MethodCall methodCall = const StandardMethodCodec().decodeMethodCall(message); if (methodCall.method == 'listen') { - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() @@ -255,8 +255,8 @@ void main() { }), (ByteData? data) {}); - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() @@ -265,8 +265,8 @@ void main() { }), (ByteData? data) {}); - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() @@ -279,8 +279,8 @@ void main() { }), (ByteData? data) {}); - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() @@ -289,8 +289,8 @@ void main() { }), (ByteData? data) {}); - await _ambiguate(ServicesBinding.instance) - ?.defaultBinaryMessenger + await _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger .handlePlatformMessage( 'flutter.io/videoPlayer/videoEvents123', const StandardMethodCodec() diff --git a/packages/webview_flutter/webview_flutter_android/test/legacy/surface_android_test.dart b/packages/webview_flutter/webview_flutter_android/test/legacy/surface_android_test.dart index 196e7cc27093..d022ab282c92 100644 --- a/packages/webview_flutter/webview_flutter_android/test/legacy/surface_android_test.dart +++ b/packages/webview_flutter/webview_flutter_android/test/legacy/surface_android_test.dart @@ -17,7 +17,10 @@ void main() { late List log; setUpAll(() { - SystemChannels.platform_views.setMockMethodCallHandler( + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler( + SystemChannels.platform_views, (MethodCall call) async { log.add(call); if (call.method == 'resize') { @@ -29,12 +32,15 @@ void main() { 'height': arguments['height'], }; } + return null; }, ); }); tearDownAll(() { - SystemChannels.platform_views.setMockMethodCallHandler(null); + _ambiguate(TestDefaultBinaryMessengerBinding.instance)! + .defaultBinaryMessenger + .setMockMethodCallHandler(SystemChannels.platform_views, null); }); setUp(() { @@ -116,3 +122,9 @@ class TestWebViewPlatformCallbacksHandler @override void onWebResourceError(WebResourceError error) {} } + +/// This allows a value of type T or T? to be treated as a value of type T?. +/// +/// We use this so that APIs that have become non-nullable can still be used +/// with `!` and `?` on the stable branch. +T? _ambiguate(T? value) => value;