5#import <OCMock/OCMock.h>
6#import <XCTest/XCTest.h>
8#import "flutter/shell/platform/darwin/common/framework/Headers/FlutterMacros.h"
9#import "flutter/shell/platform/darwin/ios/framework/Headers/FlutterPluginAppLifeCycleDelegate.h"
20 XCTAssertNotNil(delegate);
23#if not APPLICATION_EXTENSION_API_ONLY
25 XCTNSNotificationExpectation* expectation = [[XCTNSNotificationExpectation alloc]
26 initWithName:UIApplicationDidEnterBackgroundNotification];
28 id plugin = OCMProtocolMock(
@protocol(FlutterPlugin));
30 [[NSNotificationCenter defaultCenter]
31 postNotificationName:UIApplicationDidEnterBackgroundNotification
34 [
self waitForExpectations:@[ expectation ] timeout:5.0];
35 OCMVerify([plugin applicationDidEnterBackground:[UIApplication sharedApplication]]);
39 XCTNSNotificationExpectation* expectation = [[XCTNSNotificationExpectation alloc]
40 initWithName:UIApplicationWillEnterForegroundNotification];
43 id plugin = OCMProtocolMock(
@protocol(FlutterPlugin));
45 [[NSNotificationCenter defaultCenter]
46 postNotificationName:UIApplicationWillEnterForegroundNotification
48 [
self waitForExpectations:@[ expectation ] timeout:5.0];
49 OCMVerify([plugin applicationWillEnterForeground:[UIApplication sharedApplication]]);
53 XCTNSNotificationExpectation* expectation =
54 [[XCTNSNotificationExpectation alloc] initWithName:UIApplicationWillResignActiveNotification];
57 id plugin = OCMProtocolMock(
@protocol(FlutterPlugin));
59 [[NSNotificationCenter defaultCenter]
60 postNotificationName:UIApplicationWillResignActiveNotification
62 [
self waitForExpectations:@[ expectation ] timeout:5.0];
63 OCMVerify([plugin applicationWillResignActive:[UIApplication sharedApplication]]);
67 XCTNSNotificationExpectation* expectation =
68 [[XCTNSNotificationExpectation alloc] initWithName:UIApplicationDidBecomeActiveNotification];
71 id plugin = OCMProtocolMock(
@protocol(FlutterPlugin));
73 [[NSNotificationCenter defaultCenter]
74 postNotificationName:UIApplicationDidBecomeActiveNotification
76 [
self waitForExpectations:@[ expectation ] timeout:5.0];
77 OCMVerify([plugin applicationDidBecomeActive:[UIApplication sharedApplication]]);
81 XCTNSNotificationExpectation* expectation =
82 [[XCTNSNotificationExpectation alloc] initWithName:UIApplicationWillTerminateNotification];
85 id plugin = OCMProtocolMock(
@protocol(FlutterPlugin));
87 [[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationWillTerminateNotification
89 [
self waitForExpectations:@[ expectation ] timeout:5.0];
90 OCMVerify([plugin applicationWillTerminate:[UIApplication sharedApplication]]);
void testDidEnterBackground()
void testDidBecomeActive()
void testWillEnterForeground()
void testWillResignActive()
void addDelegate:(NSObject< FlutterApplicationLifeCycleDelegate > *delegate)