// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/foundation.dart'; import 'package:flutter/scheduler.dart'; import 'package:test/test.dart'; import 'scheduler_tester.dart'; class TestSchedulerBinding extends BindingBase with SchedulerBinding { } void main() { final SchedulerBinding scheduler = new TestSchedulerBinding(); test("Check for a time dilation being in effect", () { expect(timeDilation, equals(1.0)); }); 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(0)); firstCallbackRan = true; scheduler.cancelFrameCallbackWithId(secondId); } void secondCallback(Duration timeStamp) { expect(firstCallbackRan, isTrue); expect(secondCallbackRan, isFalse); expect(timeStamp.inMilliseconds, equals(0)); secondCallbackRan = true; } scheduler.scheduleFrameCallback(firstCallback); secondId = scheduler.scheduleFrameCallback(secondCallback); tick(const Duration(milliseconds: 16)); expect(firstCallbackRan, isTrue); expect(secondCallbackRan, isFalse); firstCallbackRan = false; secondCallbackRan = false; tick(const Duration(milliseconds: 32)); expect(firstCallbackRan, isFalse); expect(secondCallbackRan, isFalse); }); }