diff options
| author | Akshay Nair <phenax5@gmail.com> | 2020-06-04 14:43:33 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2020-06-04 14:43:33 +0530 |
| commit | d2789f3ca1a143a5b779304cec103c0c1f851e70 (patch) | |
| tree | 8c7df448d458981d2b055e20d18923866e221b3c | |
| parent | c50386437f01bb0177d352c7c7565d86742fa445 (diff) | |
| download | daft-launcher-d2789f3ca1a143a5b779304cec103c0c1f851e70.tar.gz daft-launcher-d2789f3ca1a143a5b779304cec103c0c1f851e70.zip | |
Adds test cases for homepage for favorite apps and fixes timewidget cases
| -rw-r--r-- | TODO.md | 1 | ||||
| -rw-r--r-- | test/homeview_test.dart | 49 | ||||
| -rw-r--r-- | test/utils.dart | 17 |
3 files changed, 44 insertions, 23 deletions
@@ -10,6 +10,7 @@ ## Issues - [ ] Fix scroll/fling conflict (snap) - [ ] Uninstall from favorites doesnt update list + - [ ] Fix test cases - [X] Make keyboard close on swipe - [X] Fix uninstall action issue - [X] Disable back button diff --git a/test/homeview_test.dart b/test/homeview_test.dart index d967ddf..770956d 100644 --- a/test/homeview_test.dart +++ b/test/homeview_test.dart @@ -1,24 +1,31 @@ -import 'package:flutter/material.dart'; import 'dart:async'; +import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:device_apps/device_apps.dart'; + import 'package:owyn/pages/Home.dart'; import 'utils.dart'; -Future<void> waitFor(Duration duration) { return Future.delayed(duration, () {}); } - void main() { DateTime time = DateTime.utc(2020, DateTime.march, 7, 10, 25, 30); - Stream<DateTime> time$ = Stream.value(time).asBroadcastStream(); + List<Application> favoriteApps = <Application>[ + makeApp('Reddit', 'org.example.reddit'), + makeApp('Spotify', 'org.example.spotify'), + makeApp('Twitter', 'org.example.twitter'), + makeApp('Youtube', 'org.example.youtube'), + ]; testWidgets('Should render with no errors', (WidgetTester tester) async { - await tester.pumpWidget(wrapper(HomeView(time$))); + await tester.pumpWidget(wrapper(HomeView(dateTime: time, favoriteApps: <Application>[]))); }); - testWidgets('Should show formatted default date correctly', (WidgetTester tester) async { - await tester.pumpWidget(wrapper(HomeView(time$, defaultTime: time))); + testWidgets('Should show formatted date correctly', (WidgetTester tester) async { + await tester.pumpWidget(wrapper(HomeView(dateTime: time, favoriteApps: <Application>[]))); await tester.pump(); + await tester.pump(Duration(seconds: 2)); + var timeWidget = find.byKey(Key('time')); var dateWidget = find.byKey(Key('date')); @@ -29,27 +36,23 @@ void main() { expect(dateWidget, findsOneWidget); for(var w in dateWidget.evaluate()) { - expect(w.widget.toString(), contains('7 March')); + expect(w.widget.toString(), contains('Saturday, 7 Mar')); } }); - testWidgets('Should show streamed formatted date correctly', (WidgetTester tester) async { - await tester.pumpWidget(wrapper(HomeView(time$))); + testWidgets('Should show list of favorite apps', (WidgetTester tester) async { + await tester.pumpWidget(wrapper(HomeView(dateTime: time, favoriteApps: favoriteApps))); await tester.pump(); - await tester.pump(Duration(seconds: 2)); + var favoritesList = find.byType(ListTile); - var timeWidget = find.byKey(Key('time')); - var dateWidget = find.byKey(Key('date')); - - expect(timeWidget, findsOneWidget); - //for(var w in timeWidget.evaluate()) { - //expect(w.widget.toString(), contains('10:25 AM')); - //} - - //expect(dateWidget, findsOneWidget); - //for(var w in dateWidget.evaluate()) { - //expect(w.widget.toString(), contains('7 March')); - //} + expect(favoritesList, findsNWidgets(4)); + var i = 0; + for(var w in favoritesList.evaluate()) { + var fav = favoriteApps[i++]; + w.visitChildren((Element e) { + expect(e.toStringDeep(), contains(fav.appName)); + }); + } }); } diff --git a/test/utils.dart b/test/utils.dart index 0b9d0c7..c122229 100644 --- a/test/utils.dart +++ b/test/utils.dart @@ -11,3 +11,20 @@ Widget wrapper(Widget view) { ), ); } + +Future<void> waitFor(Duration duration) { return Future.delayed(duration, () {}); } + +Application makeApp(String name, String pkgName) { + return Application({ + 'app_name': name, + 'apk_file_path': '/$pkgName.apk', + 'package_name': pkgName, + 'version_name': '0.0.0', + 'version_code': 1, + 'data_dir': '/$pkgName/data', + 'system_app': false, + 'install_time': 0, + 'update_time': 0, + }); +} + |
