diff --git a/.ci/flutter_master.version b/.ci/flutter_master.version index 7a8bc7849ee..9c1bdfcd718 100644 --- a/.ci/flutter_master.version +++ b/.ci/flutter_master.version @@ -1 +1 @@ -db6074ade4e4fde664e6258d671faf356e1b6e85 +0b657236cae4c8f1c63cb3025aa9b92cf2795f74 \ No newline at end of file diff --git a/packages/camera/camera_android/example/pubspec.yaml b/packages/camera/camera_android/example/pubspec.yaml index 39f40663d10..98aa4a6d4f2 100644 --- a/packages/camera/camera_android/example/pubspec.yaml +++ b/packages/camera/camera_android/example/pubspec.yaml @@ -32,8 +32,3 @@ dev_dependencies: flutter: uses-material-design: true - -# FOR TESTING ONLY. DO NOT MERGE. -dependency_overrides: - camera_android: - path: ../../../camera/camera_android diff --git a/packages/flutter_plugin_android_lifecycle/android/src/test/java/io/flutter/embedding/engine/plugins/lifecycle/FlutterLifecycleAdapterTest.java b/packages/flutter_plugin_android_lifecycle/android/src/test/java/io/flutter/embedding/engine/plugins/lifecycle/FlutterLifecycleAdapterTest.java index 9a6bfb7da5b..80bfc4ca562 100644 --- a/packages/flutter_plugin_android_lifecycle/android/src/test/java/io/flutter/embedding/engine/plugins/lifecycle/FlutterLifecycleAdapterTest.java +++ b/packages/flutter_plugin_android_lifecycle/android/src/test/java/io/flutter/embedding/engine/plugins/lifecycle/FlutterLifecycleAdapterTest.java @@ -5,12 +5,10 @@ package io.flutter.embedding.engine.plugins.lifecycle; import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.when; -import android.app.Activity; -import androidx.annotation.NonNull; import androidx.lifecycle.Lifecycle; import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; -import io.flutter.plugin.common.PluginRegistry; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -19,6 +17,7 @@ public class FlutterLifecycleAdapterTest { @Mock Lifecycle lifecycle; + @Mock ActivityPluginBinding mockActivityPluginBinding; AutoCloseable mockCloseable; @@ -34,66 +33,14 @@ public void tearDown() throws Exception { @Test public void getActivityLifecycle() { - TestActivityPluginBinding binding = new TestActivityPluginBinding(lifecycle); + when(mockActivityPluginBinding.getLifecycle()) + .thenReturn(new HiddenLifecycleReference(lifecycle)); - Lifecycle parsedLifecycle = FlutterLifecycleAdapter.getActivityLifecycle(binding); + when(mockActivityPluginBinding.getActivity()).thenReturn(null); - assertEquals(lifecycle, parsedLifecycle); - } - - private static final class TestActivityPluginBinding implements ActivityPluginBinding { - private final Lifecycle lifecycle; - - TestActivityPluginBinding(Lifecycle lifecycle) { - this.lifecycle = lifecycle; - } - - @NonNull - public Object getLifecycle() { - return new HiddenLifecycleReference(lifecycle); - } - - @Override - public Activity getActivity() { - return null; - } - - @Override - public void addRequestPermissionsResultListener( - @NonNull PluginRegistry.RequestPermissionsResultListener listener) {} - - @Override - public void removeRequestPermissionsResultListener( - @NonNull PluginRegistry.RequestPermissionsResultListener listener) {} + Lifecycle parsedLifecycle = + FlutterLifecycleAdapter.getActivityLifecycle(mockActivityPluginBinding); - @Override - public void addActivityResultListener( - @NonNull PluginRegistry.ActivityResultListener listener) {} - - @Override - public void removeActivityResultListener( - @NonNull PluginRegistry.ActivityResultListener listener) {} - - @Override - public void addOnNewIntentListener(@NonNull PluginRegistry.NewIntentListener listener) {} - - @Override - public void removeOnNewIntentListener(@NonNull PluginRegistry.NewIntentListener listener) {} - - @Override - public void addOnUserLeaveHintListener( - @NonNull PluginRegistry.UserLeaveHintListener listener) {} - - @Override - public void removeOnUserLeaveHintListener( - @NonNull PluginRegistry.UserLeaveHintListener listener) {} - - @Override - public void addOnSaveStateListener( - @NonNull ActivityPluginBinding.OnSaveInstanceStateListener listener) {} - - @Override - public void removeOnSaveStateListener( - @NonNull ActivityPluginBinding.OnSaveInstanceStateListener listener) {} + assertEquals(lifecycle, parsedLifecycle); } } diff --git a/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/billing_client_manager_test.dart b/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/billing_client_manager_test.dart index 1644885d78d..97f4640c7ee 100644 --- a/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/billing_client_manager_test.dart +++ b/packages/in_app_purchase/in_app_purchase_android/test/billing_client_wrappers/billing_client_manager_test.dart @@ -51,25 +51,29 @@ void main() { expect(stubPlatform.countPreviousCalls(startConnectionCall), equals(1)); }); - test('waits for connection before executing the operations', () { - bool called1 = false; - bool called2 = false; + test('waits for connection before executing the operations', () async { + final Completer calledCompleter1 = Completer(); + final Completer calledCompleter2 = Completer(); manager.runWithClient((BillingClient _) async { - called1 = true; + calledCompleter1.complete(); return const BillingResultWrapper(responseCode: BillingResponse.ok); }); manager.runWithClientNonRetryable( - (BillingClient _) async => called2 = true, + (BillingClient _) async => calledCompleter2.complete(), ); - expect(called1, equals(false)); - expect(called2, equals(false)); + expect(calledCompleter1.isCompleted, equals(false)); + expect(calledCompleter1.isCompleted, equals(false)); connectedCompleter.complete(); - expect(called1, equals(true)); - expect(called2, equals(true)); + await expectLater(calledCompleter1.future, completes); + await expectLater(calledCompleter2.future, completes); }); - test('re-connects when client sends onBillingServiceDisconnected', () { + test('re-connects when client sends onBillingServiceDisconnected', + () async { connectedCompleter.complete(); + // Ensures all asynchronous connected code finishes. + await manager.runWithClientNonRetryable((_) async {}); + manager.client.callHandler( const MethodCall(onBillingServiceDisconnectedCallback, {'handle': 0}),