Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3055)

Unified Diff: android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java

Issue 970883002: [Android WebView] Synthesize a fake page loading event on page source modification (Re-land) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed findbugs warning Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java
index 3044ddc5917a36b87d0d47d08314d70a7bb02781..16d6b554bae779572c43d70990e4d108a55dab99 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/PopupWindowTest.java
@@ -11,6 +11,7 @@ import org.chromium.android_webview.AwContents;
import org.chromium.android_webview.test.util.CommonResources;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.MinAndroidSdkLevel;
+import org.chromium.content.browser.test.util.TestCallbackHelperContainer;
import org.chromium.net.test.util.TestWebServer;
/**
@@ -56,8 +57,31 @@ public class PopupWindowTest extends AwTestBase {
"This is a popup window");
triggerPopup(mParentContents, mParentContentsClient, mWebServer, parentPageHtml,
- popupPageHtml, "/popup.html", "tryOpenWindow()");
- AwContents popupContents = connectPendingPopup(mParentContents);
+ popupPageHtml, popupPath, "tryOpenWindow()");
+ AwContents popupContents = connectPendingPopup(mParentContents).popupContents;
assertEquals(POPUP_TITLE, getTitleOnUiThread(popupContents));
}
+
+ @SmallTest
+ @Feature({"AndroidWebView"})
+ public void testOnPageFinishedCalledOnDomModificationAfterNavigation() throws Throwable {
+ final String popupPath = "/popup.html";
+ final String parentPageHtml = CommonResources.makeHtmlPageFrom("", "<script>"
+ + "function tryOpenWindow() {"
+ + " window.popupWindow = window.open('" + popupPath + "');"
+ + "}"
+ + "function modifyDomOfPopup() {"
+ + " window.popupWindow.document.body.innerHTML = 'Hello from the parent!';"
+ + "}</script>");
+
+ triggerPopup(mParentContents, mParentContentsClient, mWebServer, parentPageHtml,
+ null, popupPath, "tryOpenWindow()");
+ TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper =
+ connectPendingPopup(mParentContents).popupContentsClient.getOnPageFinishedHelper();
+ final int onPageFinishedCallCount = onPageFinishedHelper.getCallCount();
+ executeJavaScriptAndWaitForResult(mParentContents, mParentContentsClient,
+ "modifyDomOfPopup()");
+ onPageFinishedHelper.waitForCallback(onPageFinishedCallCount);
+ assertEquals("about:blank", onPageFinishedHelper.getUrl());
+ }
}

Powered by Google App Engine
This is Rietveld 408576698