part of 'main.dart'; void loadUrl() { final shouldSkip1 = kIsWeb ? false : ![ TargetPlatform.android, TargetPlatform.iOS, TargetPlatform.macOS, ].contains(defaultTargetPlatform); var initialUrl = !kIsWeb ? TEST_URL_1 : TEST_WEB_PLATFORM_URL_1; skippableTestWidgets('loadUrl', (WidgetTester tester) async { final Completer controllerCompleter = Completer(); final Completer firstUrlLoad = Completer(); final Completer loadedUrl = Completer(); await tester.pumpWidget( Directionality( textDirection: TextDirection.ltr, child: InAppWebView( key: GlobalKey(), initialUrlRequest: URLRequest(url: initialUrl), onWebViewCreated: (controller) { controllerCompleter.complete(controller); }, onLoadStop: (controller, url) { if (url.toString() == initialUrl.toString() && !firstUrlLoad.isCompleted) { firstUrlLoad.complete(url.toString()); } else if (url.toString() == TEST_CROSS_PLATFORM_URL_1.toString() && !loadedUrl.isCompleted) { loadedUrl.complete(url.toString()); } }, ), ), ); final InAppWebViewController controller = await controllerCompleter.future; expect(await firstUrlLoad.future, initialUrl.toString()); await controller.loadUrl( urlRequest: URLRequest(url: TEST_CROSS_PLATFORM_URL_1)); expect(await loadedUrl.future, TEST_CROSS_PLATFORM_URL_1.toString()); }, skip: shouldSkip1); final shouldSkip2 = kIsWeb ? true : ![ TargetPlatform.iOS, TargetPlatform.macOS, ].contains(defaultTargetPlatform); skippableTestWidgets('loadSimulatedRequest', (WidgetTester tester) async { final Completer controllerCompleter = Completer(); final Completer firstUrlLoad = Completer(); final Completer loadedUrl = Completer(); await tester.pumpWidget( Directionality( textDirection: TextDirection.ltr, child: InAppWebView( key: GlobalKey(), initialUrlRequest: URLRequest(url: initialUrl), onWebViewCreated: (controller) { controllerCompleter.complete(controller); }, onLoadStop: (controller, url) { if (url.toString() == initialUrl.toString() && !firstUrlLoad.isCompleted) { firstUrlLoad.complete(url.toString()); } else if (url.toString() == TEST_CROSS_PLATFORM_URL_1.toString() && !loadedUrl.isCompleted) { loadedUrl.complete(url.toString()); } }, ), ), ); final InAppWebViewController controller = await controllerCompleter.future; expect(await firstUrlLoad.future, initialUrl.toString()); final htmlCode = "

Hello

"; await controller.loadSimulatedRequest( urlRequest: URLRequest(url: TEST_CROSS_PLATFORM_URL_1), data: Uint8List.fromList(utf8.encode(htmlCode))); expect(await loadedUrl.future, TEST_CROSS_PLATFORM_URL_1.toString()); expect( (await controller.evaluateJavascript(source: "document.body.innerHTML")) .toString() .trim(), htmlCode); }, skip: shouldSkip2); }