@@ -9,6 +9,7 @@ import 'package:flutter_test/flutter_test.dart';
9
9
import 'package:golden_toolkit/golden_toolkit.dart' ;
10
10
import 'package:home_widget/home_widget.dart' ;
11
11
import 'package:home_widget/home_widget_callback_dispatcher.dart' ;
12
+ import 'package:home_widget/home_widget_info.dart' ;
12
13
import 'package:mocktail/mocktail.dart' ;
13
14
14
15
// ignore: depend_on_referenced_packages
@@ -51,8 +52,6 @@ void main() {
51
52
return null ;
52
53
case 'isRequestPinWidgetSupported' :
53
54
return true ;
54
- case 'getInstalledWidgets' :
55
- return null ;
56
55
}
57
56
});
58
57
});
@@ -133,10 +132,6 @@ void main() {
133
132
expect (arguments['qualifiedAndroidName' ], 'com.example.androidName' );
134
133
});
135
134
136
- test ('getInstalledWidgets' , () async {
137
- expect (await HomeWidget .getInstalledWidgets (), []);
138
- });
139
-
140
135
group ('initiallyLaunchedFromHomeWidget' , () {
141
136
test ('Valid Uri String gets parsed' , () async {
142
137
launchUri = 'homeWidget://homeWidgetTest' ;
@@ -366,6 +361,49 @@ void main() {
366
361
);
367
362
});
368
363
});
364
+
365
+ group ('getInstalledWidgets' , () {
366
+ test (
367
+ 'returns a list of HomeWidgetInfo objects when method channel provides data' ,
368
+ () async {
369
+ TestDefaultBinaryMessengerBinding .instance.defaultBinaryMessenger
370
+ .setMockMethodCallHandler (channel, (MethodCall methodCall) async {
371
+ switch (methodCall.method) {
372
+ case 'getInstalledWidgets' :
373
+ return [
374
+ {"id" : "widget1" , "name" : "Widget One" },
375
+ {"id" : "widget2" , "name" : "Widget Two" },
376
+ ];
377
+ default :
378
+ return null ;
379
+ }
380
+ });
381
+
382
+ final expectedWidgets = [
383
+ HomeWidgetInfo .fromMap ({"id" : "widget1" , "name" : "Widget One" }),
384
+ HomeWidgetInfo .fromMap ({"id" : "widget2" , "name" : "Widget Two" }),
385
+ ];
386
+
387
+ final widgets = await HomeWidget .getInstalledWidgets ();
388
+
389
+ expect (widgets, equals (expectedWidgets));
390
+ });
391
+
392
+ test ('returns an empty list when method channel returns null' , () async {
393
+ TestDefaultBinaryMessengerBinding .instance.defaultBinaryMessenger
394
+ // ignore: body_might_complete_normally_nullable
395
+ .setMockMethodCallHandler (channel, (MethodCall methodCall) async {
396
+ switch (methodCall.method) {
397
+ case 'getInstalledWidgets' :
398
+ return null ;
399
+ }
400
+ });
401
+
402
+ final widgets = await HomeWidget .getInstalledWidgets ();
403
+
404
+ expect (widgets, isEmpty);
405
+ });
406
+ });
369
407
}
370
408
371
409
void emitEvent (ByteData ? event) {
0 commit comments