aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2020-06-04 14:43:33 +0530
committerAkshay Nair <phenax5@gmail.com>2020-06-04 14:43:33 +0530
commitd2789f3ca1a143a5b779304cec103c0c1f851e70 (patch)
tree8c7df448d458981d2b055e20d18923866e221b3c
parentc50386437f01bb0177d352c7c7565d86742fa445 (diff)
downloaddaft-launcher-d2789f3ca1a143a5b779304cec103c0c1f851e70.tar.gz
daft-launcher-d2789f3ca1a143a5b779304cec103c0c1f851e70.zip
Adds test cases for homepage for favorite apps and fixes timewidget cases
-rw-r--r--TODO.md1
-rw-r--r--test/homeview_test.dart49
-rw-r--r--test/utils.dart17
3 files changed, 44 insertions, 23 deletions
diff --git a/TODO.md b/TODO.md
index c8c71b8..0cd75d1 100644
--- a/TODO.md
+++ b/TODO.md
@@ -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,
+ });
+}
+