blob: 31820129fb49b46a28d876ebc0f358ac00c9b40a [file] [log] [blame]
// Copyright 2013 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 'package:test/bootstrap/browser.dart';
import 'package:test/test.dart';
import 'package:ui/src/engine.dart';
void main() {
internalBootstrapBrowserTest(() => testMain);
}
void testMain() {
test('services are initalized separately from UI', () async {
expect(scheduleFrameCallback, isNull);
expect(windowFlutterCanvasKit, isNull);
expect(findGlassPane(), isNull);
expect(Keyboard.instance, isNull);
expect(MouseCursor.instance, isNull);
expect(KeyboardBinding.instance, isNull);
expect(PointerBinding.instance, isNull);
// After initializing services the UI should remain intact.
await initializeEngineServices();
expect(scheduleFrameCallback, isNotNull);
expect(windowFlutterCanvasKit, isNotNull);
expect(findGlassPane(), isNull);
expect(Keyboard.instance, isNull);
expect(MouseCursor.instance, isNull);
expect(KeyboardBinding.instance, isNull);
expect(PointerBinding.instance, isNull);
// Now UI should be taken over by Flutter.
await initializeEngineUi();
expect(findGlassPane(), isNotNull);
expect(Keyboard.instance, isNotNull);
expect(MouseCursor.instance, isNotNull);
expect(KeyboardBinding.instance, isNotNull);
expect(PointerBinding.instance, isNotNull);
});
}
DomElement? findGlassPane() {
return domDocument.querySelector('flt-glass-pane');
}