summaryrefslogtreecommitdiff
path: root/test/scanning_widget_test.dart
diff options
context:
space:
mode:
Diffstat (limited to 'test/scanning_widget_test.dart')
-rw-r--r--test/scanning_widget_test.dart41
1 files changed, 41 insertions, 0 deletions
diff --git a/test/scanning_widget_test.dart b/test/scanning_widget_test.dart
new file mode 100644
index 0000000..987dc59
--- /dev/null
+++ b/test/scanning_widget_test.dart
@@ -0,0 +1,41 @@
+// This is a basic Flutter widget test.
+//
+// To perform an interaction with a widget in your test, use the WidgetTester
+// utility in the flutter_test package. For example, you can send tap and scroll
+// gestures. You can also use WidgetTester to find child widgets in the widget
+// tree, read text, and verify that the values of widget properties are correct.
+
+import 'package:flutter/widgets.dart';
+import 'package:uvok_epaper_badge/control/mock_scanner_controller.dart';
+import 'package:uvok_epaper_badge/control/scanner_controller.dart';
+import 'package:uvok_epaper_badge/widgets/badge_app.dart';
+import 'package:flutter_test/flutter_test.dart';
+
+void main() {
+ testWidgets('Ensure button scans', (WidgetTester tester) async {
+ // Build our app and trigger a frame.
+ MockScannerController msc = MockScannerController();
+
+ final events = <ScanStatus>[];
+ final sub = msc.statusStream.listen(events.add);
+
+ await tester.pumpWidget(BadgeApp(selectedScanner: msc));
+ await tester.pumpAndSettle();
+ final scanButton = find.textContaining("scan");
+ expect(scanButton, findsOneWidget);
+
+ await tester.tap(scanButton);
+ await tester.pump(Duration(seconds: 5));
+ expect(events[0], ScanStatus.idle);
+ expect(events[1], ScanStatus.scanning);
+ expect(events[2], ScanStatus.finished);
+
+ await msc.stopScan();
+ msc.dispose();
+
+ // sub.cancel();
+ // debugPrint("The test is nearly finished");
+ // await tester.pump(Duration(seconds: 2));
+ // debugPrint("The test is finished");
+ });
+}