tests: fixed driver test

This commit is contained in:
Thibault Deckers 2020-10-05 21:50:23 +09:00
parent 53a7387db7
commit 59c19966e4
4 changed files with 27 additions and 18 deletions

View file

@ -91,6 +91,7 @@ class _AvesAppState extends State<AvesApp> {
: 'debug');
});
await settings.init();
await settings.initCrashlytics();
}
void _onNewIntent() {

View file

@ -53,10 +53,11 @@ class Settings extends ChangeNotifier {
Future<void> init() async {
_prefs = await SharedPreferences.getInstance();
await _setupCrashlytics();
}
Future<void> _setupCrashlytics() async {
// Crashlytics initialization is separated from the main settings initialization
// to allow settings customization without Firebase context (e.g. before a Flutter Driver test)
Future<void> initCrashlytics() async {
await Firebase.app().setAutomaticDataCollectionEnabled(isCrashlyticsEnabled);
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(isCrashlyticsEnabled);
}
@ -75,7 +76,7 @@ class Settings extends ChangeNotifier {
set isCrashlyticsEnabled(bool newValue) {
setAndNotify(isCrashlyticsEnabledKey, newValue);
unawaited(_setupCrashlytics());
unawaited(initCrashlytics());
}
bool get mustBackTwiceToExit => getBoolOrDefault(mustBackTwiceToExitKey, true);

View file

@ -1,4 +1,6 @@
import 'package:aves/main.dart' as app;
import 'package:aves/model/settings/screen_on.dart';
import 'package:aves/model/settings/settings.dart';
import 'package:aves/services/android_file_service.dart';
import 'package:flutter_driver/driver_extension.dart';
import 'package:path/path.dart' as path;
@ -14,5 +16,12 @@ void main() {
// because `MEDIA_SCANNER_SCAN_FILE` intent got deprecated in API 29
unawaited(AndroidFileService.scanFile(path.join(targetPicturesDir, 'ipse.jpg'), 'image/jpeg'));
configureAndLaunch();
}
Future<void> configureAndLaunch() async {
await settings.init();
settings.keepScreenOn = KeepScreenOn.always;
app.main();
}

View file

@ -11,7 +11,7 @@ import 'utils/driver_extension.dart';
FlutterDriver driver;
void main() {
group('Aves app', () {
group('[Aves app]', () {
print('adb=${[adb, ...adbDeviceParam].join(' ')}');
setUpAll(() async {
@ -60,19 +60,6 @@ void agreeToTerms() {
});
}
void groupCollection() {
test('[collection] group', () async {
await driver.tap(find.byValueKey('appbar-menu-button'));
await driver.waitUntilNoTransientCallbacks();
await driver.tap(find.byValueKey('menu-group'));
await driver.waitUntilNoTransientCallbacks();
await driver.tap(find.byValueKey(EntryGroupFactor.album.toString()));
await driver.tap(find.byValueKey('apply-button'));
});
}
void sortCollection() {
test('[collection] sort', () async {
await driver.tap(find.byValueKey('appbar-menu-button'));
@ -82,7 +69,18 @@ void sortCollection() {
await driver.waitUntilNoTransientCallbacks();
await driver.tap(find.byValueKey(EntrySortFactor.date.toString()));
await driver.tap(find.byValueKey('apply-button'));
});
}
void groupCollection() {
test('[collection] group', () async {
await driver.tap(find.byValueKey('appbar-menu-button'));
await driver.waitUntilNoTransientCallbacks();
await driver.tap(find.byValueKey('menu-group'));
await driver.waitUntilNoTransientCallbacks();
await driver.tap(find.byValueKey(EntryGroupFactor.album.toString()));
});
}