flutter/packages/unit/test/animation/scheduler_test.dart
Adam Barth db191e96bd Switch scheduler over to Duration
This patch prepares us to switch to using integers when handing off the
animation time from the engine to the framework.
2015-10-03 13:48:57 -07:00

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);
});
}