@@ -174,14 +174,22 @@ - (void)tearDown {
174
174
self.messageSent = nil ;
175
175
}
176
176
177
- - (id )testScreen {
178
- return UIScreen.mainScreen ;
177
+ - (id )setupMockScreen {
178
+ UIScreen* mockScreen = OCMClassMock ([UIScreen class ]);
179
+ // iPhone 14 pixels
180
+ CGRect screenBounds = CGRectMake (0 , 0 , 1170 , 2532 );
181
+ OCMStub ([mockScreen bounds ]).andReturn (screenBounds);
182
+ CGFloat screenScale = 1 ;
183
+ OCMStub ([mockScreen scale ]).andReturn (screenScale);
184
+
185
+ return mockScreen;
179
186
}
180
187
181
- - (id )setupMockMainScreenAndView : (FlutterViewController*)viewControllerMock
182
- viewFrame : (CGRect)viewFrame
183
- convertedFrame : (CGRect)convertedFrame {
184
- OCMStub ([viewControllerMock screenIfViewLoaded ]).andReturn ([self testScreen ]);
188
+ - (id )setupMockView : (FlutterViewController*)viewControllerMock
189
+ screen : (UIScreen*)screen
190
+ viewFrame : (CGRect)viewFrame
191
+ convertedFrame : (CGRect)convertedFrame {
192
+ OCMStub ([viewControllerMock screenIfViewLoaded ]).andReturn (screen);
185
193
id mockView = OCMClassMock ([UIView class ]);
186
194
OCMStub ([mockView frame ]).andReturn (viewFrame);
187
195
OCMStub ([mockView convertRect: viewFrame toCoordinateSpace: [OCMArg any ]])
@@ -226,9 +234,12 @@ - (void)testSetupKeyboardSpringAnimationIfNeeded {
226
234
nibName: nil
227
235
bundle: nil ];
228
236
FlutterViewController* viewControllerMock = OCMPartialMock (viewController);
229
- UIScreen* screen = [self testScreen ];
237
+ UIScreen* screen = [self setupMockScreen ];
230
238
CGRect viewFrame = screen.bounds ;
231
- [self setupMockMainScreenAndView: viewControllerMock viewFrame: viewFrame convertedFrame: viewFrame];
239
+ [self setupMockView: viewControllerMock
240
+ screen: screen
241
+ viewFrame: viewFrame
242
+ convertedFrame: viewFrame];
232
243
233
244
// Null check.
234
245
[viewControllerMock setupKeyboardSpringAnimationIfNeeded: nil ];
@@ -266,9 +277,12 @@ - (void)testKeyboardAnimationIsShowingAndCompounding {
266
277
nibName: nil
267
278
bundle: nil ];
268
279
FlutterViewController* viewControllerMock = OCMPartialMock (viewController);
269
- UIScreen* screen = [self testScreen ];
280
+ UIScreen* screen = [self setupMockScreen ];
270
281
CGRect viewFrame = screen.bounds ;
271
- [self setupMockMainScreenAndView: viewControllerMock viewFrame: viewFrame convertedFrame: viewFrame];
282
+ [self setupMockView: viewControllerMock
283
+ screen: screen
284
+ viewFrame: viewFrame
285
+ convertedFrame: viewFrame];
272
286
273
287
BOOL isLocal = YES ;
274
288
CGFloat screenHeight = screen.bounds .size .height ;
@@ -353,9 +367,12 @@ - (void)testShouldIgnoreKeyboardNotification {
353
367
nibName: nil
354
368
bundle: nil ];
355
369
FlutterViewController* viewControllerMock = OCMPartialMock (viewController);
356
- UIScreen* screen = [self testScreen ];
370
+ UIScreen* screen = [self setupMockScreen ];
357
371
CGRect viewFrame = screen.bounds ;
358
- [self setupMockMainScreenAndView: viewControllerMock viewFrame: viewFrame convertedFrame: viewFrame];
372
+ [self setupMockView: viewControllerMock
373
+ screen: screen
374
+ viewFrame: viewFrame
375
+ convertedFrame: viewFrame];
359
376
360
377
CGFloat screenWidth = screen.bounds .size .width ;
361
378
CGFloat screenHeight = screen.bounds .size .height ;
@@ -494,9 +511,12 @@ - (void)testCalculateKeyboardAttachMode {
494
511
bundle: nil ];
495
512
496
513
FlutterViewController* viewControllerMock = OCMPartialMock (viewController);
497
- UIScreen* screen = [self testScreen ];
514
+ UIScreen* screen = [self setupMockScreen ];
498
515
CGRect viewFrame = screen.bounds ;
499
- [self setupMockMainScreenAndView: viewControllerMock viewFrame: viewFrame convertedFrame: viewFrame];
516
+ [self setupMockView: viewControllerMock
517
+ screen: screen
518
+ viewFrame: viewFrame
519
+ convertedFrame: viewFrame];
500
520
501
521
CGFloat screenWidth = screen.bounds .size .width ;
502
522
CGFloat screenHeight = screen.bounds .size .height ;
@@ -620,16 +640,17 @@ - (void)testCalculateMultitaskingAdjustment {
620
640
bundle: nil ];
621
641
FlutterViewController* viewControllerMock = OCMPartialMock (viewController);
622
642
623
- UIScreen* screen = [self testScreen ];
643
+ UIScreen* screen = [self setupMockScreen ];
624
644
CGFloat screenWidth = screen.bounds .size .width ;
625
645
CGFloat screenHeight = screen.bounds .size .height ;
626
646
CGRect screenRect = screen.bounds ;
627
647
CGRect viewOrigFrame = CGRectMake (0 , 0 , 320 , screenHeight - 40 );
628
648
CGRect convertedViewFrame = CGRectMake (20 , 20 , 320 , screenHeight - 40 );
629
649
CGRect keyboardFrame = CGRectMake (20 , screenHeight - 320 , screenWidth, 300 );
630
- id mockView = [self setupMockMainScreenAndView: viewControllerMock
631
- viewFrame: viewOrigFrame
632
- convertedFrame: convertedViewFrame];
650
+ id mockView = [self setupMockView: viewControllerMock
651
+ screen: screen
652
+ viewFrame: viewOrigFrame
653
+ convertedFrame: convertedViewFrame];
633
654
id mockTraitCollection = OCMClassMock ([UITraitCollection class ]);
634
655
OCMStub ([mockTraitCollection userInterfaceIdiom ]).andReturn (UIUserInterfaceIdiomPad);
635
656
OCMStub ([mockTraitCollection horizontalSizeClass ]).andReturn (UIUserInterfaceSizeClassCompact);
@@ -648,7 +669,7 @@ - (void)testCalculateKeyboardInset {
648
669
nibName: nil
649
670
bundle: nil ];
650
671
FlutterViewController* viewControllerMock = OCMPartialMock (viewController);
651
- UIScreen* screen = [self testScreen ];
672
+ UIScreen* screen = [self setupMockScreen ];
652
673
OCMStub ([viewControllerMock screenIfViewLoaded ]).andReturn (screen);
653
674
654
675
CGFloat screenWidth = screen.bounds .size .width ;
@@ -657,9 +678,10 @@ - (void)testCalculateKeyboardInset {
657
678
CGRect convertedViewFrame = CGRectMake (20 , 20 , 320 , screenHeight - 40 );
658
679
CGRect keyboardFrame = CGRectMake (20 , screenHeight - 320 , screenWidth, 300 );
659
680
660
- [self setupMockMainScreenAndView: viewControllerMock
661
- viewFrame: viewOrigFrame
662
- convertedFrame: convertedViewFrame];
681
+ [self setupMockView: viewControllerMock
682
+ screen: screen
683
+ viewFrame: viewOrigFrame
684
+ convertedFrame: convertedViewFrame];
663
685
664
686
CGFloat inset = [viewControllerMock calculateKeyboardInset: keyboardFrame
665
687
keyboardMode: FlutterKeyboardModeDocked];
@@ -673,7 +695,7 @@ - (void)testHandleKeyboardNotification {
673
695
nibName: nil
674
696
bundle: nil ];
675
697
// keyboard is empty
676
- UIScreen* screen = [self testScreen ];
698
+ UIScreen* screen = [self setupMockScreen ];
677
699
CGFloat screenWidth = screen.bounds .size .width ;
678
700
CGFloat screenHeight = screen.bounds .size .height ;
679
701
CGRect keyboardFrame = CGRectMake (0 , screenHeight - 320 , screenWidth, 320 );
@@ -688,7 +710,10 @@ - (void)testHandleKeyboardNotification {
688
710
@" UIKeyboardIsLocalUserInfoKey" : @(isLocal)
689
711
}];
690
712
FlutterViewController* viewControllerMock = OCMPartialMock (viewController);
691
- [self setupMockMainScreenAndView: viewControllerMock viewFrame: viewFrame convertedFrame: viewFrame];
713
+ [self setupMockView: viewControllerMock
714
+ screen: screen
715
+ viewFrame: viewFrame
716
+ convertedFrame: viewFrame];
692
717
viewControllerMock.targetViewInsetBottom = 0 ;
693
718
XCTestExpectation* expectation = [self expectationWithDescription: @" update viewport" ];
694
719
OCMStub ([viewControllerMock updateViewportMetricsIfNeeded ]).andDo (^(NSInvocation * invocation) {
@@ -907,7 +932,7 @@ - (void)testUpdateViewportMetricsIfNeeded_DoesNotInvokeEngineWhenShouldBeIgnored
907
932
nibName: nil
908
933
bundle: nil ];
909
934
FlutterViewController* viewControllerMock = OCMPartialMock (viewController);
910
- UIScreen* screen = [self testScreen ];
935
+ UIScreen* screen = [self setupMockScreen ];
911
936
OCMStub ([viewControllerMock screenIfViewLoaded ]).andReturn (screen);
912
937
mockEngine.viewController = viewController;
913
938
@@ -929,7 +954,7 @@ - (void)testViewWillTransitionToSize_DoesDelayEngineCallIfNonZeroDuration {
929
954
nibName: nil
930
955
bundle: nil ];
931
956
FlutterViewController* viewControllerMock = OCMPartialMock (viewController);
932
- UIScreen* screen = [self testScreen ];
957
+ UIScreen* screen = [self setupMockScreen ];
933
958
OCMStub ([viewControllerMock screenIfViewLoaded ]).andReturn (screen);
934
959
mockEngine.viewController = viewController;
935
960
@@ -963,7 +988,7 @@ - (void)testViewWillTransitionToSize_DoesNotDelayEngineCallIfZeroDuration {
963
988
nibName: nil
964
989
bundle: nil ];
965
990
FlutterViewController* viewControllerMock = OCMPartialMock (viewController);
966
- UIScreen* screen = [self testScreen ];
991
+ UIScreen* screen = [self setupMockScreen ];
967
992
OCMStub ([viewControllerMock screenIfViewLoaded ]).andReturn (screen);
968
993
mockEngine.viewController = viewController;
969
994
0 commit comments