m3_lightmeter/integration_test/utils/expectations.dart

43 lines
2.1 KiB
Dart
Raw Normal View History

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,
);
}