@@ -59,6 +59,14 @@ class TestWindow implements ui.SingletonFlutterWindow {
59
59
}) : _window = window,
60
60
platformDispatcher = TestPlatformDispatcher (platformDispatcher: window.platformDispatcher);
61
61
62
+
63
+ int _frameNumber = 0 ;
64
+ /// Indicates that the test binding has pumped a frame.
65
+ void incrementFrameNumber () {
66
+ _frameNumber += 1 ;
67
+ platformDispatcher.frameData = _TestFrameData (_frameNumber);
68
+ }
69
+
62
70
/// The [dart:ui.SingletonFlutterWindow] that is wrapped by this [TestWindow] .
63
71
final ui.SingletonFlutterWindow _window;
64
72
@@ -491,6 +499,9 @@ class TestWindow implements ui.SingletonFlutterWindow {
491
499
platformDispatcher.onPlatformMessage = callback;
492
500
}
493
501
502
+ @override
503
+ ui.FrameData get frameData => platformDispatcher.frameData;
504
+
494
505
/// Delete any test value properties that have been set on this [TestWindow]
495
506
/// as well as its [platformDispatcher] .
496
507
///
@@ -505,6 +516,7 @@ class TestWindow implements ui.SingletonFlutterWindow {
505
516
clearDisplayFeaturesTestValue ();
506
517
clearPhysicalSizeTestValue ();
507
518
clearViewInsetsTestValue ();
519
+ _frameNumber = 0 ;
508
520
platformDispatcher.clearAllTestValues ();
509
521
}
510
522
@@ -882,6 +894,7 @@ class TestPlatformDispatcher implements ui.PlatformDispatcher {
882
894
clearLocalesTestValue ();
883
895
clearSemanticsEnabledTestValue ();
884
896
clearTextScaleFactorTestValue ();
897
+ frameData = const _TestFrameData (0 );
885
898
}
886
899
887
900
@override
@@ -914,7 +927,7 @@ class TestPlatformDispatcher implements ui.PlatformDispatcher {
914
927
ui.PlatformConfiguration get configuration => _platformDispatcher.configuration;
915
928
916
929
@override
917
- ui.FrameData get frameData => _platformDispatcher.frameData ;
930
+ ui.FrameData frameData = const _TestFrameData ( 0 ) ;
918
931
919
932
@override
920
933
ByteData ? getPersistentIsolateData () => _platformDispatcher.getPersistentIsolateData ();
@@ -930,3 +943,10 @@ class TestPlatformDispatcher implements ui.PlatformDispatcher {
930
943
return null ;
931
944
}
932
945
}
946
+
947
+ class _TestFrameData implements ui.FrameData {
948
+ const _TestFrameData (this .frameNumber);
949
+
950
+ @override
951
+ final int frameNumber;
952
+ }
0 commit comments