fix missing fonts.
This commit is contained in:
@@ -0,0 +1,43 @@
|
|||||||
|
// Loads Material fonts (Roboto + MaterialIcons) before any test runs so that
|
||||||
|
// golden/screenshot tests render real text instead of placeholder boxes.
|
||||||
|
//
|
||||||
|
// Flutter widget tests don't load fonts by default. This file is discovered
|
||||||
|
// automatically by `flutter test` for every test under test/.
|
||||||
|
|
||||||
|
import 'dart:async';
|
||||||
|
import 'dart:io';
|
||||||
|
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
|
|
||||||
|
Future<void> testExecutable(FutureOr<void> Function() testMain) async {
|
||||||
|
setUpAll(_loadMaterialFonts);
|
||||||
|
await testMain();
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _loadMaterialFonts() async {
|
||||||
|
// Locate Flutter's cached material fonts relative to the flutter_tester executable.
|
||||||
|
// Layout: <flutter-root>/bin/cache/artifacts/engine/linux-x64/flutter_tester
|
||||||
|
// <flutter-root>/bin/cache/artifacts/material_fonts/
|
||||||
|
final cacheDir =
|
||||||
|
File(Platform.resolvedExecutable).parent.parent.parent.parent;
|
||||||
|
final fontsDir = '${cacheDir.path}/artifacts/material_fonts';
|
||||||
|
|
||||||
|
Future<ByteData> load(String name) async {
|
||||||
|
final bytes = await File('$fontsDir/$name').readAsBytes();
|
||||||
|
return ByteData.view(bytes.buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
await (FontLoader('Roboto')
|
||||||
|
..addFont(load('Roboto-Regular.ttf'))
|
||||||
|
..addFont(load('Roboto-Medium.ttf'))
|
||||||
|
..addFont(load('Roboto-Bold.ttf'))
|
||||||
|
..addFont(load('Roboto-Italic.ttf'))
|
||||||
|
..addFont(load('Roboto-MediumItalic.ttf'))
|
||||||
|
..addFont(load('Roboto-BoldItalic.ttf')))
|
||||||
|
.load();
|
||||||
|
|
||||||
|
await (FontLoader('MaterialIcons')
|
||||||
|
..addFont(load('MaterialIcons-Regular.otf')))
|
||||||
|
.load();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user