blob: a7714f02307740fb1bb3ec0613db37b9d5393a3f [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/test.dart';
import 'package:ui/src/engine.dart' as engine;
import 'package:ui/ui.dart' as ui;
import 'package:ui/ui_web/src/ui_web.dart' as ui_web;
import 'fake_asset_manager.dart';
void setUpUnitTests({
bool emulateTesterEnvironment = true,
bool setUpTestViewDimensions = true,
}) {
late final FakeAssetScope debugFontsScope;
setUpAll(() async {
if (emulateTesterEnvironment) {
ui_web.debugEmulateFlutterTesterEnvironment = true;
}
debugFontsScope = configureDebugFontsAssetScope(fakeAssetManager);
await engine.initializeEngine(assetManager: fakeAssetManager);
engine.renderer.fontCollection.fontFallbackManager?.downloadQueue.fallbackFontUrlPrefixOverride = 'assets/fallback_fonts/';
if (setUpTestViewDimensions) {
// Force-initialize FlutterViewEmbedder so it doesn't overwrite test pixel ratio.
engine.ensureFlutterViewEmbedderInitialized();
// The following parameters are hard-coded in Flutter's test embedder. Since
// we don't have an embedder yet this is the lowest-most layer we can put
// this stuff in.
const double devicePixelRatio = 3.0;
engine.window.debugOverrideDevicePixelRatio(devicePixelRatio);
engine.window.debugPhysicalSizeOverride =
const ui.Size(800 * devicePixelRatio, 600 * devicePixelRatio);
engine.scheduleFrameCallback = () {};
}
});
tearDownAll(() async {
fakeAssetManager.popAssetScope(debugFontsScope);
});
}