@@ -11,9 +11,13 @@ import 'package:mockito/annotations.dart';
11
11
import 'package:mockito/mockito.dart' ;
12
12
import 'package:webview_flutter_android/src/android_webview.dart'
13
13
as android_webview;
14
+ import 'package:webview_flutter_android/src/android_webview_api_impls.dart' ;
15
+ import 'package:webview_flutter_android/src/instance_manager.dart' ;
14
16
import 'package:webview_flutter_android/webview_android_widget.dart' ;
15
17
import 'package:webview_flutter_platform_interface/webview_flutter_platform_interface.dart' ;
16
18
19
+ import 'android_webview.pigeon.dart' ;
20
+ import 'android_webview_test.mocks.dart' show MockTestWebViewHostApi;
17
21
import 'webview_android_widget_test.mocks.dart' ;
18
22
19
23
@GenerateMocks (< Type > [
@@ -31,7 +35,7 @@ import 'webview_android_widget_test.mocks.dart';
31
35
void main () {
32
36
TestWidgetsFlutterBinding .ensureInitialized ();
33
37
34
- group ('$ WebViewAndroidWidget ' , () {
38
+ group ('WebViewAndroidWidget' , () {
35
39
late MockFlutterAssetManager mockFlutterAssetManager;
36
40
late MockWebView mockWebView;
37
41
late MockWebSettings mockWebSettings;
@@ -93,7 +97,7 @@ void main() {
93
97
webChromeClient = testController.webChromeClient;
94
98
}
95
99
96
- testWidgets ('$ WebViewAndroidWidget ' , (WidgetTester tester) async {
100
+ testWidgets ('WebViewAndroidWidget' , (WidgetTester tester) async {
97
101
await buildWidget (tester);
98
102
99
103
verify (mockWebSettings.setDomStorageEnabled (true ));
@@ -119,7 +123,7 @@ void main() {
119
123
},
120
124
);
121
125
122
- group ('$ CreationParams ' , () {
126
+ group ('CreationParams' , () {
123
127
testWidgets ('initialUrl' , (WidgetTester tester) async {
124
128
await buildWidget (
125
129
tester,
@@ -201,7 +205,7 @@ void main() {
201
205
expect (javaScriptChannels[1 ].channelName, 'b' );
202
206
});
203
207
204
- group ('$ WebSettings ' , () {
208
+ group ('WebSettings' , () {
205
209
testWidgets ('javascriptMode' , (WidgetTester tester) async {
206
210
await buildWidget (
207
211
tester,
@@ -232,7 +236,7 @@ void main() {
232
236
expect (testController.webViewClient.shouldOverrideUrlLoading, isTrue);
233
237
});
234
238
235
- testWidgets ('debuggingEnabled' , (WidgetTester tester) async {
239
+ testWidgets ('debuggingEnabled true ' , (WidgetTester tester) async {
236
240
await buildWidget (
237
241
tester,
238
242
creationParams: CreationParams (
@@ -247,6 +251,21 @@ void main() {
247
251
verify (mockWebViewProxy.setWebContentsDebuggingEnabled (true ));
248
252
});
249
253
254
+ testWidgets ('debuggingEnabled false' , (WidgetTester tester) async {
255
+ await buildWidget (
256
+ tester,
257
+ creationParams: CreationParams (
258
+ webSettings: WebSettings (
259
+ userAgent: const WebSetting <String ?>.absent (),
260
+ debuggingEnabled: false ,
261
+ hasNavigationDelegate: false ,
262
+ ),
263
+ ),
264
+ );
265
+
266
+ verify (mockWebViewProxy.setWebContentsDebuggingEnabled (false ));
267
+ });
268
+
250
269
testWidgets ('userAgent' , (WidgetTester tester) async {
251
270
await buildWidget (
252
271
tester,
@@ -278,7 +297,7 @@ void main() {
278
297
});
279
298
});
280
299
281
- group ('$ WebViewPlatformController ' , () {
300
+ group ('WebViewPlatformController' , () {
282
301
testWidgets ('loadFile without "file://" prefix' ,
283
302
(WidgetTester tester) async {
284
303
await buildWidget (tester);
@@ -667,7 +686,7 @@ void main() {
667
686
});
668
687
});
669
688
670
- group ('$ WebViewPlatformCallbacksHandler ' , () {
689
+ group ('WebViewPlatformCallbacksHandler' , () {
671
690
testWidgets ('onPageStarted' , (WidgetTester tester) async {
672
691
await buildWidget (tester);
673
692
webViewClient.onPageStarted (mockWebView, 'https://google.com' );
@@ -773,7 +792,7 @@ void main() {
773
792
verify (mockWebView.loadUrl ('https://google.com' , < String , String > {}));
774
793
});
775
794
776
- group ('$ JavascriptChannelRegistry ' , () {
795
+ group ('JavascriptChannelRegistry' , () {
777
796
testWidgets ('onJavascriptChannelMessage' , (WidgetTester tester) async {
778
797
await buildWidget (tester);
779
798
@@ -792,4 +811,32 @@ void main() {
792
811
});
793
812
});
794
813
});
814
+
815
+ group ('WebViewProxy' , () {
816
+ late MockTestWebViewHostApi mockPlatformHostApi;
817
+ late InstanceManager instanceManager;
818
+
819
+ setUp (() {
820
+ // WebViewProxy calls static methods that can't be mocked, so the mocks
821
+ // have to be set up at the next layer down, by mocking the implementation
822
+ // of WebView itstelf.
823
+ mockPlatformHostApi = MockTestWebViewHostApi ();
824
+ TestWebViewHostApi .setup (mockPlatformHostApi);
825
+ instanceManager = InstanceManager ();
826
+ android_webview.WebView .api =
827
+ WebViewHostApiImpl (instanceManager: instanceManager);
828
+ });
829
+
830
+ test ('setWebContentsDebuggingEnabled true' , () {
831
+ const WebViewProxy webViewProxy = WebViewProxy ();
832
+ webViewProxy.setWebContentsDebuggingEnabled (true );
833
+ verify (mockPlatformHostApi.setWebContentsDebuggingEnabled (true ));
834
+ });
835
+
836
+ test ('setWebContentsDebuggingEnabled false' , () {
837
+ const WebViewProxy webViewProxy = WebViewProxy ();
838
+ webViewProxy.setWebContentsDebuggingEnabled (false );
839
+ verify (mockPlatformHostApi.setWebContentsDebuggingEnabled (false ));
840
+ });
841
+ });
795
842
}
0 commit comments