blob: 1268aa12a6b9ade92a8d5f6dbef387093e4e8d3d [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);
// TODO(hterkelsen): https://github.com/flutter/flutter/issues/60040
}, skip: isIosSafari);
}
DomElement? findGlassPane() {
return domDocument.querySelector('flt-glass-pane');
}