@@ -54,11 +54,45 @@ - (UIAccessibilityContrast)accessibilityContrast;
5454#endif
5555
5656@interface FlutterViewController (Tests)
57+ - (void )surfaceUpdated : (BOOL )appeared ;
5758- (void )performOrientationUpdate : (UIInterfaceOrientationMask)new_preferences ;
5859@end
5960
6061@implementation FlutterViewControllerTest
6162
63+ - (void )testViewDidDisappearDoesntPauseEngine {
64+ id engine = OCMClassMock ([FlutterEngine class ]);
65+ id lifecycleChannel = OCMClassMock ([FlutterBasicMessageChannel class ]);
66+ OCMStub ([engine lifecycleChannel ]).andReturn (lifecycleChannel);
67+ FlutterViewController* viewControllerA = [[FlutterViewController alloc ] initWithEngine: engine
68+ nibName: nil
69+ bundle: nil ];
70+ FlutterViewController* viewControllerB = [[FlutterViewController alloc ] initWithEngine: engine
71+ nibName: nil
72+ bundle: nil ];
73+ id viewControllerMock = OCMPartialMock (viewControllerA);
74+ OCMStub ([viewControllerMock surfaceUpdated: NO ]);
75+ OCMStub ([engine viewController ]).andReturn (viewControllerB);
76+ [viewControllerA viewDidDisappear: NO ];
77+ OCMReject ([lifecycleChannel sendMessage: @" AppLifecycleState.paused" ]);
78+ OCMReject ([viewControllerMock surfaceUpdated: [OCMArg any ]]);
79+ }
80+
81+ - (void )testViewDidDisappearDoesPauseEngine {
82+ id engine = OCMClassMock ([FlutterEngine class ]);
83+ id lifecycleChannel = OCMClassMock ([FlutterBasicMessageChannel class ]);
84+ OCMStub ([engine lifecycleChannel ]).andReturn (lifecycleChannel);
85+ FlutterViewController* viewController = [[FlutterViewController alloc ] initWithEngine: engine
86+ nibName: nil
87+ bundle: nil ];
88+ id viewControllerMock = OCMPartialMock (viewController);
89+ OCMStub ([viewControllerMock surfaceUpdated: NO ]);
90+ OCMStub ([engine viewController ]).andReturn (viewController);
91+ [viewController viewDidDisappear: NO ];
92+ OCMVerify ([lifecycleChannel sendMessage: @" AppLifecycleState.paused" ]);
93+ OCMVerify ([viewControllerMock surfaceUpdated: NO ]);
94+ }
95+
6296- (void )testBinaryMessenger {
6397 id engine = OCMClassMock ([FlutterEngine class ]);
6498 FlutterViewController* vc = [[FlutterViewController alloc ] initWithEngine: engine
0 commit comments