diff --git a/.tool-versions b/.tool-versions index 9b45878e1..3876cc312 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -flutter 3.13.9-stable +flutter 3.16.0-stable diff --git a/packages/app_center/test/fonts/Ubuntu-Regular.ttf b/packages/app_center/test/fonts/Ubuntu-Regular.ttf new file mode 100644 index 000000000..f98a2dab8 Binary files /dev/null and b/packages/app_center/test/fonts/Ubuntu-Regular.ttf differ diff --git a/packages/app_center/test/snap_page_test.dart b/packages/app_center/test/snap_page_test.dart index 7fcf8ca7e..a531c5cfa 100644 --- a/packages/app_center/test/snap_page_test.dart +++ b/packages/app_center/test/snap_page_test.dart @@ -131,10 +131,15 @@ void main() { await tester.tap(find.byIcon(Icons.thumb_down_outlined)); verify(ratingsModel.castVote(VoteStatus.down)).called(1); - await tester.tap(find.byIcon(YaruIcons.view_more_horizontal)); + final viewMoreButton = find.byIcon(YaruIcons.view_more_horizontal); + expect(viewMoreButton, findsOneWidget); + await tester.tap(viewMoreButton); await tester.pump(); - await tester.tap(find.text(tester.l10n.snapActionRemoveLabel)); + final removeButton = find.text(tester.l10n.snapActionRemoveLabel); + expect(removeButton, findsOneWidget); + await tester.tap(removeButton); + await tester.pump(); verify(snapModel.remove()).called(1); expect(find.text(tester.l10n.snapActionUpdateLabel), findsNothing); @@ -181,13 +186,18 @@ void main() { await tester.tap(find.byIcon(Icons.thumb_down_outlined)); verify(ratingsModel.castVote(VoteStatus.down)).called(1); - await tester.tap(find.byIcon(YaruIcons.view_more_horizontal)); + final viewMoreButton = find.byIcon(YaruIcons.view_more_horizontal); + expect(viewMoreButton, findsOneWidget); + await tester.tap(viewMoreButton); await tester.pump(); + final updateButton = find.text(tester.l10n.snapActionUpdateLabel); + expect(updateButton, findsOneWidget); + await tester.tap(find.text(tester.l10n.snapActionRemoveLabel)); + await tester.pump(); verify(snapModel.remove()).called(1); - expect(find.text(tester.l10n.snapActionUpdateLabel), findsOneWidget); final l10n = tester.l10n; expect(find.text(tester.l10n.snapRatingsVotes(snapRating.totalVotes)), findsOneWidget); @@ -258,11 +268,17 @@ void main() { await tester.tap(find.text(tester.l10n.snapActionOpenLabel)); verify(snapLauncher.open()).called(1); + await tester.pump(); - await tester.tap(find.byIcon(YaruIcons.view_more_horizontal)); + final findMoreButton = find.byIcon(YaruIcons.view_more_horizontal); + expect(findMoreButton, findsOneWidget); + await tester.tap(findMoreButton); await tester.pump(); - await tester.tap(find.text(tester.l10n.snapActionRemoveLabel)); + final removeButton = find.text(tester.l10n.snapActionRemoveLabel); + expect(removeButton, findsOneWidget); + await tester.tap(removeButton); + await tester.pump(); verify(snapModel.remove()).called(1); expect(find.text(tester.l10n.snapActionUpdateLabel), findsNothing); diff --git a/packages/app_center/test/test_utils.dart b/packages/app_center/test/test_utils.dart index ede772a0e..78584c80c 100644 --- a/packages/app_center/test/test_utils.dart +++ b/packages/app_center/test/test_utils.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'package:app_center/appstream.dart'; import 'package:app_center/l10n.dart'; @@ -11,6 +12,7 @@ import 'package:app_center_ratings_client/ratings_client.dart'; import 'package:appstream/appstream.dart'; import 'package:collection/collection.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:gtk/gtk.dart'; @@ -24,11 +26,23 @@ import 'test_utils.mocks.dart'; extension WidgetTesterX on WidgetTester { BuildContext get context => element(find.byType(Scaffold).first); AppLocalizations get l10n => AppLocalizations.of(context); - Future<void> pumpApp(WidgetBuilder builder) { - return pumpWidget(MaterialApp( - localizationsDelegates: localizationsDelegates, - home: Scaffold(body: Builder(builder: builder)), - )); + Future<void> pumpApp(WidgetBuilder builder) async { + // The intended minimum size of the window. + view.physicalSize = + (Size(800, 600) + Offset(54, 54)) * view.devicePixelRatio; + final ubuntuRegular = File('test/fonts/Ubuntu-Regular.ttf'); + final content = ByteData.view( + Uint8List.fromList(ubuntuRegular.readAsBytesSync()).buffer); + final fontLoader = FontLoader('UbuntuRegular') + ..addFont(Future.value(content)); + await fontLoader.load(); + return pumpWidget( + MaterialApp( + theme: ThemeData(fontFamily: 'UbuntuRegular'), + localizationsDelegates: localizationsDelegates, + home: Scaffold(body: Builder(builder: builder)), + ), + ); } }