[webview_flutter] Adjust getTitle test (#4537)
The getTitle test has been flaking on iOS, for reasons that are not
clear. This is a highly speculative attempted fix, in case the issue is
that the future is completing too early (e.g., if 'about:blank' is
triggering a completion).
diff --git a/packages/webview_flutter/webview_flutter/CHANGELOG.md b/packages/webview_flutter/webview_flutter/CHANGELOG.md
index 2124032..5dd2ea0 100644
--- a/packages/webview_flutter/webview_flutter/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter/CHANGELOG.md
@@ -1,6 +1,7 @@
## NEXT
* Updates example app Android compileSdkVersion to 31.
+* Integration test fixes.
## 2.3.1
diff --git a/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart
index 0e7e345..3856150 100644
--- a/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart
+++ b/packages/webview_flutter/webview_flutter/example/integration_test/webview_flutter_test.dart
@@ -748,19 +748,26 @@
final Completer<WebViewController> controllerCompleter =
Completer<WebViewController>();
+ final testUrl = 'data:text/html;charset=utf-8;base64,$getTitleTestBase64';
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: WebView(
- initialUrl: 'data:text/html;charset=utf-8;base64,$getTitleTestBase64',
+ initialUrl: testUrl,
onWebViewCreated: (WebViewController controller) {
controllerCompleter.complete(controller);
},
onPageStarted: (String url) {
- pageStarted.complete(null);
+ // Ensure that this update is for the test page, in case any other
+ // URL (e.g., about:blank) fires earlier notifications.
+ if (url == testUrl) {
+ pageStarted.complete(null);
+ }
},
onPageFinished: (String url) {
- pageLoaded.complete(null);
+ if (url == testUrl) {
+ pageLoaded.complete(null);
+ }
},
),
),
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md
index cbf1f04..3b78161 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter_wkwebview/CHANGELOG.md
@@ -1,3 +1,7 @@
+## NEXT
+
+* Integration test fixes.
+
## 2.4.0
* Implemented new `loadFile` and `loadHtmlString` methods from the platform interface.
diff --git a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart
index 45a72d8..cd8c616 100644
--- a/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart
+++ b/packages/webview_flutter/webview_flutter_wkwebview/example/integration_test/webview_flutter_test.dart
@@ -733,19 +733,26 @@
final Completer<WebViewController> controllerCompleter =
Completer<WebViewController>();
+ final testUrl = 'data:text/html;charset=utf-8;base64,$getTitleTestBase64';
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: WebView(
- initialUrl: 'data:text/html;charset=utf-8;base64,$getTitleTestBase64',
+ initialUrl: testUrl,
onWebViewCreated: (WebViewController controller) {
controllerCompleter.complete(controller);
},
onPageStarted: (String url) {
- pageStarted.complete(null);
+ // Ensure that this update is for the test page, in case any other
+ // URL (e.g., about:blank) fires earlier notifications.
+ if (url == testUrl) {
+ pageStarted.complete(null);
+ }
},
onPageFinished: (String url) {
- pageLoaded.complete(null);
+ if (url == testUrl) {
+ pageLoaded.complete(null);
+ }
},
),
),