scheduler_test.dart 1.06 KB
Newer Older
1
import 'package:sky/animation.dart';
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
import 'package:test/test.dart';

void main() {
  test("Can cancel queued callback", () {
    int secondId;

    bool firstCallbackRan = false;
    bool secondCallbackRan = false;

    void firstCallback(double timeStamp) {
      expect(firstCallbackRan, isFalse);
      expect(secondCallbackRan, isFalse);
      expect(timeStamp, equals(16.0));
      firstCallbackRan = true;
      scheduler.cancelAnimationFrame(secondId);
    }

    void secondCallback(double timeStamp) {
      expect(firstCallbackRan, isTrue);
      expect(secondCallbackRan, isFalse);
      expect(timeStamp, equals(16.0));
      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);
  });
}