|
|
@@ -306,4 +306,80 @@ void main() {
|
|
|
expect(output.join(), 'abc');
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
+ group(
|
|
|
+ 'TerminalView.textScaleFactor',
|
|
|
+ () {
|
|
|
+ testWidgets(
|
|
|
+ 'works',
|
|
|
+ (WidgetTester tester) async {
|
|
|
+ final terminal = Terminal();
|
|
|
+
|
|
|
+ final textScaleFactor = ValueNotifier(1.0);
|
|
|
+
|
|
|
+ await tester.pumpWidget(
|
|
|
+ MaterialApp(
|
|
|
+ home: Scaffold(
|
|
|
+ body: ValueListenableBuilder<double>(
|
|
|
+ valueListenable: textScaleFactor,
|
|
|
+ builder: (context, textScaleFactor, child) {
|
|
|
+ return TerminalView(
|
|
|
+ terminal,
|
|
|
+ textScaleFactor: textScaleFactor,
|
|
|
+ );
|
|
|
+ },
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+
|
|
|
+ terminal.write('Hello World');
|
|
|
+ await tester.pump();
|
|
|
+
|
|
|
+ await expectLater(
|
|
|
+ find.byType(TerminalView),
|
|
|
+ matchesGoldenFile('_goldens/text_scale_factor@1x.png'),
|
|
|
+ );
|
|
|
+
|
|
|
+ textScaleFactor.value = 2.0;
|
|
|
+ await tester.pump();
|
|
|
+
|
|
|
+ await expectLater(
|
|
|
+ find.byType(TerminalView),
|
|
|
+ matchesGoldenFile('_goldens/text_scale_factor@2x.png'),
|
|
|
+ );
|
|
|
+ },
|
|
|
+ skip: !Platform.isMacOS,
|
|
|
+ );
|
|
|
+
|
|
|
+ testWidgets(
|
|
|
+ 'can obtain textScaleFactor from parent',
|
|
|
+ (WidgetTester tester) async {
|
|
|
+ final terminal = Terminal();
|
|
|
+
|
|
|
+ await tester.pumpWidget(
|
|
|
+ MaterialApp(
|
|
|
+ home: Scaffold(
|
|
|
+ body: MediaQuery(
|
|
|
+ data: const MediaQueryData(textScaleFactor: 2.0),
|
|
|
+ child: TerminalView(
|
|
|
+ terminal,
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ );
|
|
|
+
|
|
|
+ terminal.write('Hello World');
|
|
|
+ await tester.pump();
|
|
|
+
|
|
|
+ await expectLater(
|
|
|
+ find.byType(TerminalView),
|
|
|
+ matchesGoldenFile('_goldens/text_scale_factor@2x.png'),
|
|
|
+ );
|
|
|
+ },
|
|
|
+ );
|
|
|
+ },
|
|
|
+ skip: !Platform.isMacOS,
|
|
|
+ );
|
|
|
}
|