mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

This patch prepares us to switch to using integers when handing off the animation time from the engine to the framework.
43 lines
1.1 KiB
Dart
43 lines
1.1 KiB
Dart
import 'package:sky/animation.dart';
|
|
import 'package:test/test.dart';
|
|
|
|
void main() {
|
|
test("Can cancel queued callback", () {
|
|
int secondId;
|
|
|
|
bool firstCallbackRan = false;
|
|
bool secondCallbackRan = false;
|
|
|
|
void firstCallback(Duration timeStamp) {
|
|
expect(firstCallbackRan, isFalse);
|
|
expect(secondCallbackRan, isFalse);
|
|
expect(timeStamp.inMilliseconds, equals(16));
|
|
firstCallbackRan = true;
|
|
scheduler.cancelAnimationFrame(secondId);
|
|
}
|
|
|
|
void secondCallback(Duration timeStamp) {
|
|
expect(firstCallbackRan, isTrue);
|
|
expect(secondCallbackRan, isFalse);
|
|
expect(timeStamp.inMilliseconds, equals(16));
|
|
secondCallbackRan = true;
|
|
}
|
|
|
|
scheduler.requestAnimationFrame(firstCallback);
|
|
secondId = scheduler.requestAnimationFrame(secondCallback);
|
|
|
|
scheduler.beginFrame(16.0);
|
|
|
|
expect(firstCallbackRan, isTrue);
|
|
expect(secondCallbackRan, isFalse);
|
|
|
|
firstCallbackRan = false;
|
|
secondCallbackRan = false;
|
|
|
|
scheduler.beginFrame(32.0);
|
|
|
|
expect(firstCallbackRan, isFalse);
|
|
expect(secondCallbackRan, isFalse);
|
|
});
|
|
}
|