mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-21 23:10:40 +00:00
Compare commits
2 commits
d9ce47e0dd
...
ec1f1eeeb4
Author | SHA1 | Date | |
---|---|---|---|
|
ec1f1eeeb4 | ||
|
6dd17961b5 |
4 changed files with 51 additions and 46 deletions
10
.github/workflows/create_release.yml
vendored
10
.github/workflows/create_release.yml
vendored
|
@ -87,11 +87,6 @@ jobs:
|
|||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Download apk
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: m3_lightmeter_apk
|
||||
|
||||
- name: Increment build number & replace version number
|
||||
run: bash ./.github/scripts/increment_build_number.sh ${{ github.event.inputs.version }}
|
||||
|
||||
|
@ -109,6 +104,11 @@ jobs:
|
|||
branch: ${{ github.ref_name }}
|
||||
unprotect_reviews: true
|
||||
|
||||
- name: Download apk
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: m3_lightmeter_apk
|
||||
|
||||
- name: Rename apk
|
||||
run: mv app-prod-release.apk m3_lightmeter.apk
|
||||
|
||||
|
|
Binary file not shown.
|
@ -46,7 +46,7 @@ class _MockIAPProvidersState extends State<MockIAPProviders> {
|
|||
storageService: mockIAPStorageService,
|
||||
child: FilmsProvider(
|
||||
storageService: mockIAPStorageService,
|
||||
availableFilms: mockFilms,
|
||||
availableFilms: widget.films ?? mockFilms,
|
||||
child: widget.child,
|
||||
),
|
||||
);
|
||||
|
|
|
@ -22,6 +22,8 @@ import '../integration_test/utils/widget_tester_actions.dart';
|
|||
|
||||
//https://stackoverflow.com/a/67186625/13167574
|
||||
|
||||
const _mockFilm = Film('Ilford HP5+', 400);
|
||||
|
||||
/// Just a screenshot generator. No expectations here.
|
||||
void main() {
|
||||
final binding = IntegrationTestWidgetsFlutterBinding();
|
||||
|
@ -62,53 +64,60 @@ void main() {
|
|||
});
|
||||
}
|
||||
|
||||
setUpAll(() async {
|
||||
if (Platform.isAndroid) await binding.convertFlutterSurfaceToImage();
|
||||
});
|
||||
|
||||
/// Generates several screenshots with the light theme
|
||||
testWidgets(
|
||||
'Generate light theme screenshots',
|
||||
(tester) async {
|
||||
mockSharedPrefs(ThemeType.light, lightThemeColor);
|
||||
await tester.pumpApplication();
|
||||
testWidgets('Generate light theme screenshots', (tester) async {
|
||||
mockSharedPrefs(ThemeType.light, lightThemeColor);
|
||||
await tester.pumpApplication(
|
||||
films: [_mockFilm],
|
||||
selectedFilm: _mockFilm,
|
||||
);
|
||||
|
||||
await tester.takePhoto();
|
||||
await tester.takeScreenshot(binding, 'light-metering_reflected');
|
||||
await tester.takePhoto();
|
||||
await tester.takeScreenshot(binding, 'light-metering_reflected');
|
||||
|
||||
if (Platform.isAndroid) {
|
||||
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));
|
||||
if (Platform.isAndroid) {
|
||||
await tester.tap(find.byTooltip(S.current.tooltipUseLightSensor));
|
||||
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');
|
||||
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.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
|
||||
testWidgets(
|
||||
'Generate dark theme screenshots',
|
||||
(tester) async {
|
||||
mockSharedPrefs(ThemeType.dark, darkThemeColor);
|
||||
await tester.pumpApplication();
|
||||
await tester.pumpApplication(
|
||||
films: [_mockFilm],
|
||||
selectedFilm: _mockFilm,
|
||||
);
|
||||
|
||||
await tester.takePhoto();
|
||||
await tester.takeScreenshot(binding, 'dark-metering_reflected');
|
||||
|
@ -127,10 +136,6 @@ final String _platformFolder = Platform.isAndroid ? 'android' : 'ios';
|
|||
|
||||
extension on WidgetTester {
|
||||
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 pumpAndSettle();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue