
* Remove references to dart:ui.Window, and point usages to PlatformDispatcher or SingletonFlutterWindow, as appropriate * remove new test platform dispatchers * Amend documentation
34 lines
1.1 KiB
Dart
34 lines
1.1 KiB
Dart
// Copyright 2014 The Flutter 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 'dart:ui';
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:fake_async/fake_async.dart';
|
|
|
|
void main() {
|
|
test('Deferred frames will trigger the first frame callback', () {
|
|
FakeAsync().run((FakeAsync fakeAsync) {
|
|
final WidgetsBinding binding = WidgetsFlutterBinding.ensureInitialized();
|
|
binding.deferFirstFrame();
|
|
|
|
runApp(const Placeholder());
|
|
fakeAsync.flushTimers();
|
|
|
|
// Simulates the engine completing a frame render to trigger the
|
|
// appropriate callback setting [WidgetBinding.firstFrameRasterized].
|
|
binding.platformDispatcher.onReportTimings!(<FrameTiming>[]);
|
|
expect(binding.firstFrameRasterized, isFalse);
|
|
|
|
binding.allowFirstFrame();
|
|
fakeAsync.flushTimers();
|
|
|
|
// Simulates the engine again.
|
|
binding.platformDispatcher.onReportTimings!(<FrameTiming>[]);
|
|
expect(binding.firstFrameRasterized, isTrue);
|
|
});
|
|
});
|
|
}
|