27a30b0668
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
64 lines
2.0 KiB
Dart
64 lines
2.0 KiB
Dart
import "package:dartamp/src/main_window/presets_window.dart";
|
|
import "package:flutter_test/flutter_test.dart";
|
|
import "package:material_ui/material_ui.dart";
|
|
import "package:shared_preferences/shared_preferences.dart";
|
|
|
|
void main() {
|
|
setUp(() {
|
|
SharedPreferences.setMockInitialValues({});
|
|
});
|
|
|
|
testWidgets("shows the preset list in load mode with no name field", (
|
|
tester,
|
|
) async {
|
|
await tester.pumpWidget(
|
|
const MaterialApp(home: PresetsWindow(mode: PresetsMode.load)),
|
|
);
|
|
await tester.pump();
|
|
|
|
expect(find.text("Winamp EQ Presets"), findsOneWidget);
|
|
expect(find.text("Classical"), findsOneWidget);
|
|
expect(find.byType(TextField), findsNothing);
|
|
});
|
|
|
|
testWidgets("save mode adds the name field", (tester) async {
|
|
await tester.pumpWidget(
|
|
const MaterialApp(home: PresetsWindow(mode: PresetsMode.save)),
|
|
);
|
|
await tester.pump();
|
|
|
|
expect(find.text("Preset name"), findsOneWidget);
|
|
expect(find.byType(TextField), findsOneWidget);
|
|
});
|
|
|
|
testWidgets("selecting a preset enables the Load action", (tester) async {
|
|
await tester.pumpWidget(
|
|
const MaterialApp(home: PresetsWindow(mode: PresetsMode.load)),
|
|
);
|
|
await tester.pump();
|
|
|
|
FilledButton button() => tester.widget<FilledButton>(
|
|
find.widgetWithText(FilledButton, "Load"),
|
|
);
|
|
expect(button().onPressed, isNull);
|
|
|
|
await tester.tap(find.text("Classical"));
|
|
// The list rows have an onDoubleTap in load mode, so the single-tap
|
|
// callback only fires after the double-tap timeout elapses.
|
|
await tester.pump(const Duration(milliseconds: 350));
|
|
expect(button().onPressed, isNotNull);
|
|
});
|
|
|
|
testWidgets("mode switcher toggles between load and delete", (tester) async {
|
|
await tester.pumpWidget(
|
|
const MaterialApp(home: PresetsWindow(mode: PresetsMode.load)),
|
|
);
|
|
await tester.pump();
|
|
|
|
await tester.tap(find.text("Delete"));
|
|
await tester.pump();
|
|
expect(find.widgetWithText(FilledButton, "Delete"), findsOneWidget);
|
|
expect(find.byType(TextField), findsNothing);
|
|
});
|
|
}
|