mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-23 07:50:42 +00:00
Fixed Android screenshots generator
This commit is contained in:
parent
d9ce47e0dd
commit
6dd17961b5
2 changed files with 46 additions and 41 deletions
|
@ -46,7 +46,7 @@ class _MockIAPProvidersState extends State<MockIAPProviders> {
|
||||||
storageService: mockIAPStorageService,
|
storageService: mockIAPStorageService,
|
||||||
child: FilmsProvider(
|
child: FilmsProvider(
|
||||||
storageService: mockIAPStorageService,
|
storageService: mockIAPStorageService,
|
||||||
availableFilms: mockFilms,
|
availableFilms: widget.films ?? mockFilms,
|
||||||
child: widget.child,
|
child: widget.child,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -22,6 +22,8 @@ import '../integration_test/utils/widget_tester_actions.dart';
|
||||||
|
|
||||||
//https://stackoverflow.com/a/67186625/13167574
|
//https://stackoverflow.com/a/67186625/13167574
|
||||||
|
|
||||||
|
const _mockFilm = Film('Ilford HP5+', 400);
|
||||||
|
|
||||||
/// Just a screenshot generator. No expectations here.
|
/// Just a screenshot generator. No expectations here.
|
||||||
void main() {
|
void main() {
|
||||||
final binding = IntegrationTestWidgetsFlutterBinding();
|
final binding = IntegrationTestWidgetsFlutterBinding();
|
||||||
|
@ -62,53 +64,60 @@ void main() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setUpAll(() async {
|
||||||
|
if (Platform.isAndroid) await binding.convertFlutterSurfaceToImage();
|
||||||
|
});
|
||||||
|
|
||||||
/// Generates several screenshots with the light theme
|
/// Generates several screenshots with the light theme
|
||||||
testWidgets(
|
testWidgets('Generate light theme screenshots', (tester) async {
|
||||||
'Generate light theme screenshots',
|
mockSharedPrefs(ThemeType.light, lightThemeColor);
|
||||||
(tester) async {
|
await tester.pumpApplication(
|
||||||
mockSharedPrefs(ThemeType.light, lightThemeColor);
|
films: [_mockFilm],
|
||||||
await tester.pumpApplication();
|
selectedFilm: _mockFilm,
|
||||||
|
);
|
||||||
|
|
||||||
await tester.takePhoto();
|
await tester.takePhoto();
|
||||||
await tester.takeScreenshot(binding, 'light-metering_reflected');
|
await tester.takeScreenshot(binding, 'light-metering_reflected');
|
||||||
|
|
||||||
if (Platform.isAndroid) {
|
if (Platform.isAndroid) {
|
||||||
await tester.tap(find.byTooltip(S.current.tooltipUseLightSensor));
|
await tester.tap(find.byTooltip(S.current.tooltipUseLightSensor));
|
||||||
await tester.pumpAndSettle();
|
|
||||||
await tester.toggleIncidentMetering(7.3);
|
|
||||||
await tester.takeScreenshot(binding, 'light-metering_incident');
|
|
||||||
}
|
|
||||||
|
|
||||||
await tester.openAnimatedPicker<IsoValuePicker>();
|
|
||||||
await tester.takeScreenshot(binding, 'light-metering_iso_picker');
|
|
||||||
|
|
||||||
await tester.tapCancelButton();
|
|
||||||
await tester.tap(find.byTooltip(S.current.tooltipOpenSettings));
|
|
||||||
await tester.pumpAndSettle();
|
await tester.pumpAndSettle();
|
||||||
await tester.takeScreenshot(binding, 'light-settings');
|
await tester.toggleIncidentMetering(7.3);
|
||||||
|
await tester.takeScreenshot(binding, 'light-metering_incident');
|
||||||
await tester.tapDescendantTextOf<SettingsScreen>(S.current.meteringScreenLayout);
|
|
||||||
await tester.takeScreenshot(binding, 'light-settings_metering_screen_layout');
|
|
||||||
|
|
||||||
await tester.tapCancelButton();
|
|
||||||
await tester.tapDescendantTextOf<SettingsScreen>(S.current.equipmentProfiles);
|
|
||||||
await tester.pumpAndSettle();
|
|
||||||
await tester.tapDescendantTextOf<EquipmentProfilesScreen>(mockEquipmentProfiles.first.name);
|
|
||||||
await tester.pumpAndSettle();
|
|
||||||
await tester.takeScreenshot(binding, 'light-equipment_profiles');
|
|
||||||
|
|
||||||
await tester.tap(find.byIcon(Icons.iso).first);
|
|
||||||
await tester.pumpAndSettle();
|
|
||||||
await tester.takeScreenshot(binding, 'light-equipment_profiles_iso_picker');
|
|
||||||
}
|
}
|
||||||
);
|
|
||||||
|
await tester.openAnimatedPicker<IsoValuePicker>();
|
||||||
|
await tester.takeScreenshot(binding, 'light-metering_iso_picker');
|
||||||
|
|
||||||
|
await tester.tapCancelButton();
|
||||||
|
await tester.tap(find.byTooltip(S.current.tooltipOpenSettings));
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
await tester.takeScreenshot(binding, 'light-settings');
|
||||||
|
|
||||||
|
await tester.tapDescendantTextOf<SettingsScreen>(S.current.meteringScreenLayout);
|
||||||
|
await tester.takeScreenshot(binding, 'light-settings_metering_screen_layout');
|
||||||
|
|
||||||
|
await tester.tapCancelButton();
|
||||||
|
await tester.tapDescendantTextOf<SettingsScreen>(S.current.equipmentProfiles);
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
await tester.tapDescendantTextOf<EquipmentProfilesScreen>(mockEquipmentProfiles.first.name);
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
await tester.takeScreenshot(binding, 'light-equipment_profiles');
|
||||||
|
|
||||||
|
await tester.tap(find.byIcon(Icons.iso).first);
|
||||||
|
await tester.pumpAndSettle();
|
||||||
|
await tester.takeScreenshot(binding, 'light-equipment_profiles_iso_picker');
|
||||||
|
});
|
||||||
|
|
||||||
/// and the additionally the first one with the dark theme
|
/// and the additionally the first one with the dark theme
|
||||||
testWidgets(
|
testWidgets(
|
||||||
'Generate dark theme screenshots',
|
'Generate dark theme screenshots',
|
||||||
(tester) async {
|
(tester) async {
|
||||||
mockSharedPrefs(ThemeType.dark, darkThemeColor);
|
mockSharedPrefs(ThemeType.dark, darkThemeColor);
|
||||||
await tester.pumpApplication();
|
await tester.pumpApplication(
|
||||||
|
films: [_mockFilm],
|
||||||
|
selectedFilm: _mockFilm,
|
||||||
|
);
|
||||||
|
|
||||||
await tester.takePhoto();
|
await tester.takePhoto();
|
||||||
await tester.takeScreenshot(binding, 'dark-metering_reflected');
|
await tester.takeScreenshot(binding, 'dark-metering_reflected');
|
||||||
|
@ -127,10 +136,6 @@ final String _platformFolder = Platform.isAndroid ? 'android' : 'ios';
|
||||||
|
|
||||||
extension on WidgetTester {
|
extension on WidgetTester {
|
||||||
Future<void> takeScreenshot(IntegrationTestWidgetsFlutterBinding binding, String name) async {
|
Future<void> takeScreenshot(IntegrationTestWidgetsFlutterBinding binding, String name) async {
|
||||||
if (Platform.isAndroid) {
|
|
||||||
await binding.convertFlutterSurfaceToImage();
|
|
||||||
await pumpAndSettle();
|
|
||||||
}
|
|
||||||
await binding.takeScreenshot("$_platformFolder/${const String.fromEnvironment('deviceName')}/$name");
|
await binding.takeScreenshot("$_platformFolder/${const String.fromEnvironment('deviceName')}/$name");
|
||||||
await pumpAndSettle();
|
await pumpAndSettle();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue