2023-10-17 15:01:11 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2023-10-05 21:01:58 +00:00
|
|
|
import 'package:flutter_test/flutter_test.dart';
|
2023-10-14 18:41:39 +00:00
|
|
|
import 'package:lightmeter/generated/l10n.dart';
|
|
|
|
import 'package:lightmeter/screens/metering/components/bottom_controls/components/measure_button/widget_button_measure.dart';
|
|
|
|
import 'package:lightmeter/screens/metering/components/shared/readings_container/components/extreme_exposure_pairs_container/widget_container_extreme_exposure_pairs.dart';
|
2023-10-05 21:01:58 +00:00
|
|
|
import 'package:lightmeter/screens/settings/components/shared/dialog_picker/widget_dialog_picker.dart';
|
|
|
|
|
2023-10-14 18:41:39 +00:00
|
|
|
/// Expects exactly one picker of the specified type and verifies `title` or/and `value` if any of the values is not null.
|
|
|
|
void expectAnimatedPickerWith<T>({String? title, String? value}) {
|
2023-10-05 21:01:58 +00:00
|
|
|
final pickerFinder = find.byType(T);
|
2023-10-14 18:41:39 +00:00
|
|
|
expect(pickerFinder, findsOneWidget);
|
2023-10-17 15:39:11 +00:00
|
|
|
if (title != null) expect(find.descendant(of: pickerFinder, matching: find.text(title)), findsOneWidget);
|
|
|
|
if (value != null) expect(find.descendant(of: pickerFinder, matching: find.text(value)), findsOneWidget);
|
2023-10-05 21:01:58 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/// Finds exactly one dialog picker of the provided value type
|
|
|
|
void expectDialogPicker<T>() {
|
|
|
|
expect(find.byType(DialogPicker<T>), findsOneWidget);
|
|
|
|
}
|
2023-10-14 18:41:39 +00:00
|
|
|
|
|
|
|
void expectMeasureButton(double ev) {
|
|
|
|
find.descendant(
|
|
|
|
of: find.byType(MeteringMeasureButton),
|
|
|
|
matching: find.text('${ev.toStringAsFixed(1)}\n${S.current.ev}'),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
void expectExposurePairsContainer(String fastest, String slowest) {
|
|
|
|
final pickerFinder = find.byType(ExtremeExposurePairsContainer);
|
|
|
|
expect(pickerFinder, findsOneWidget);
|
2023-10-17 15:01:11 +00:00
|
|
|
expect(find.descendant(of: pickerFinder, matching: find.text(S.current.fastestExposurePair)), findsOneWidget);
|
2023-10-14 18:41:39 +00:00
|
|
|
expect(find.descendant(of: pickerFinder, matching: find.text(fastest)), findsOneWidget);
|
2023-10-17 15:01:11 +00:00
|
|
|
expect(find.descendant(of: pickerFinder, matching: find.text(S.current.slowestExposurePair)), findsOneWidget);
|
2023-10-14 18:41:39 +00:00
|
|
|
expect(find.descendant(of: pickerFinder, matching: find.text(slowest)), findsOneWidget);
|
|
|
|
}
|
2023-10-17 15:01:11 +00:00
|
|
|
|
|
|
|
void expectRadioListTile<T>(String text, {bool isSelected = false}) {
|
|
|
|
expect(
|
|
|
|
find.descendant(of: find.byWidgetPredicate((widget) => widget is RadioListTile<T>), matching: find.text(text)),
|
|
|
|
findsOneWidget,
|
|
|
|
);
|
|
|
|
}
|