diff --git a/packages/integration_test/example/ios/RunnerTests/RunnerTests.m b/packages/integration_test/example/ios/RunnerTests/RunnerTests.m index 820497d405..4a896b3323 100644 --- a/packages/integration_test/example/ios/RunnerTests/RunnerTests.m +++ b/packages/integration_test/example/ios/RunnerTests/RunnerTests.m @@ -39,10 +39,6 @@ INTEGRATION_TEST_IOS_RUNNER(RunnerTests) @implementation FakeIntegrationTestPlugin @synthesize testResults; - -- (void)setupChannels:(id)binaryMessenger { -} - @end #pragma mark - Behavior tests diff --git a/packages/integration_test/ios/Classes/FLTIntegrationTestRunner.m b/packages/integration_test/ios/Classes/FLTIntegrationTestRunner.m index 286465c53c..a6c57dff78 100644 --- a/packages/integration_test/ios/Classes/FLTIntegrationTestRunner.m +++ b/packages/integration_test/ios/Classes/FLTIntegrationTestRunner.m @@ -26,13 +26,6 @@ - (void)testIntegrationTestWithResults:(NS_NOESCAPE FLTIntegrationTestResults)testResult { IntegrationTestPlugin *integrationTestPlugin = self.integrationTestPlugin; - UIViewController *rootViewController = UIApplication.sharedApplication.delegate.window.rootViewController; - if (![rootViewController isKindOfClass:[FlutterViewController class]]) { - testResult(NSSelectorFromString(@"testSetup"), NO, @"rootViewController was not expected FlutterViewController"); - } - FlutterViewController *flutterViewController = (FlutterViewController *)rootViewController; - [integrationTestPlugin setupChannels:flutterViewController.engine.binaryMessenger]; - // Spin the runloop. while (!integrationTestPlugin.testResults) { [NSRunLoop.currentRunLoop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1.0]]; diff --git a/packages/integration_test/ios/Classes/IntegrationTestPlugin.h b/packages/integration_test/ios/Classes/IntegrationTestPlugin.h index 4836339a5f..e9cbd663b8 100644 --- a/packages/integration_test/ios/Classes/IntegrationTestPlugin.h +++ b/packages/integration_test/ios/Classes/IntegrationTestPlugin.h @@ -22,9 +22,7 @@ NS_ASSUME_NONNULL_BEGIN @property (copy, readonly) NSDictionary *capturedScreenshotsByName; /** Fetches the singleton instance of the plugin. */ -+ (IntegrationTestPlugin *)instance; - -- (void)setupChannels:(id)binaryMessenger; ++ (instancetype)instance; - (instancetype)init NS_UNAVAILABLE; diff --git a/packages/integration_test/ios/Classes/IntegrationTestPlugin.m b/packages/integration_test/ios/Classes/IntegrationTestPlugin.m index fc2dc54246..b3ac58138f 100644 --- a/packages/integration_test/ios/Classes/IntegrationTestPlugin.m +++ b/packages/integration_test/ios/Classes/IntegrationTestPlugin.m @@ -25,7 +25,7 @@ static NSString *const kMethodRevertImage = @"revertFlutterImage"; NSMutableDictionary *_capturedScreenshotsByName; } -+ (IntegrationTestPlugin *)instance { ++ (instancetype)instance { static dispatch_once_t onceToken; static IntegrationTestPlugin *sInstance; dispatch_once(&onceToken, ^{ @@ -45,19 +45,9 @@ static NSString *const kMethodRevertImage = @"revertFlutterImage"; } + (void)registerWithRegistrar:(NSObject *)registrar { - // No initialization happens here because of the way XCTest loads the testing - // bundles. Setup on static variables can be disregarded when a new static - // instance of IntegrationTestPlugin is allocated when the bundle is reloaded. - // See also: https://github.com/flutter/plugins/pull/2465 -} - -- (void)setupChannels:(id)binaryMessenger { - FlutterMethodChannel *channel = - [FlutterMethodChannel methodChannelWithName:kIntegrationTestPluginChannel - binaryMessenger:binaryMessenger]; - [channel setMethodCallHandler:^(FlutterMethodCall *call, FlutterResult result) { - [self handleMethodCall:call result:result]; - }]; + FlutterMethodChannel *channel = [FlutterMethodChannel methodChannelWithName:kIntegrationTestPluginChannel + binaryMessenger:registrar.messenger]; + [registrar addMethodCallDelegate:[self instance] channel:channel]; } - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result {