forked from firka/flutter
@@ -222,10 +222,15 @@ class WidgetTester extends WidgetController implements HitTestDispatcher, Ticker
|
||||
do {
|
||||
await binding.pump(duration, phase);
|
||||
count += 1;
|
||||
} while (binding.transientCallbackCount > 0);
|
||||
} while (hasRunningAnimations);
|
||||
}).then<int>((Null _) => count);
|
||||
}
|
||||
|
||||
/// Whether ther are any any transient callbacks scheduled.
|
||||
///
|
||||
/// This essentially checks whether all animations have completed.
|
||||
bool get hasRunningAnimations => binding.transientCallbackCount > 0;
|
||||
|
||||
@override
|
||||
HitTestResult hitTestOnBinding(Point location) {
|
||||
location = binding.localToGlobal(location);
|
||||
|
||||
@@ -185,4 +185,20 @@ void main() {
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
testWidgets('hasRunningAnimations control test', (WidgetTester tester) async {
|
||||
final AnimationController controller = new AnimationController(
|
||||
duration: const Duration(seconds: 1),
|
||||
vsync: const TestVSync()
|
||||
);
|
||||
expect(tester.hasRunningAnimations, isFalse);
|
||||
controller.forward();
|
||||
expect(tester.hasRunningAnimations, isTrue);
|
||||
controller.stop();
|
||||
expect(tester.hasRunningAnimations, isFalse);
|
||||
controller.forward();
|
||||
expect(tester.hasRunningAnimations, isTrue);
|
||||
await tester.pumpAndSettle();
|
||||
expect(tester.hasRunningAnimations, isFalse);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user