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 a59030da71ac59acc63c087bd5110e0ca6f6aaef..a81e9070fd5577fddc9cde7cf413743f6c61260a 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 |
@@ -5,14 +5,13 @@ |
package org.chromium.android_webview.test; |
import android.os.Build; |
-import android.test.suitebuilder.annotation.MediumTest; |
+import android.test.suitebuilder.annotation.SmallTest; |
import org.chromium.android_webview.AwContents; |
import org.chromium.android_webview.test.util.AwTestTouchUtils; |
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; |
import java.util.concurrent.Callable; |
@@ -39,9 +38,6 @@ |
mParentContentsClient = new TestAwContentsClient(); |
mParentContainerView = createAwTestContainerViewOnMainSync(mParentContentsClient); |
mParentContents = mParentContainerView.getAwContents(); |
- mPopupContentsClient = new TestAwContentsClient(); |
- mPopupContainerView = createAwTestContainerViewOnMainSync(mPopupContentsClient); |
- mPopupContents = mPopupContainerView.getAwContents(); |
mWebServer = TestWebServer.start(); |
} |
@@ -53,9 +49,7 @@ |
super.tearDown(); |
} |
- // It is expected that the parent page contains a link that opens a popup window, |
- // and the test server is already pre-loaded with both parent and popup pages. |
- private void triggerPopup(String parentUrl) throws Throwable { |
+ private void triggerPopup() throws Throwable { |
enableJavaScriptOnUiThread(mParentContents); |
getInstrumentation().runOnMainSync(new Runnable() { |
@Override |
@@ -64,6 +58,21 @@ |
mParentContents.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); |
} |
}); |
+ |
+ final String popupPath = "/popup.html"; |
+ |
+ final String parentPageHtml = CommonResources.makeHtmlPageFrom("", |
+ "<script>" |
+ + "function tryOpenWindow() {" |
+ + " var newWindow = window.open('" + popupPath + "');" |
+ + "}</script>" |
+ + "<a class=\"full_view\" onclick=\"tryOpenWindow();\">Click me!</a>"); |
+ final String popupPageHtml = CommonResources.makeHtmlPageFrom( |
+ "<title>" + POPUP_TITLE + "</title>", |
+ "This is a popup window"); |
+ |
+ final String parentUrl = mWebServer.setResponse("/popupParent.html", parentPageHtml, null); |
+ mWebServer.setResponse(popupPath, popupPageHtml, null); |
mParentContentsClient.getOnCreateWindowHelper().setReturnValue(true); |
loadUrlSync(mParentContents, |
@@ -79,6 +88,10 @@ |
} |
private void connectPendingPopup() throws Exception { |
+ mPopupContentsClient = new TestAwContentsClient(); |
+ mPopupContainerView = createAwTestContainerViewOnMainSync(mPopupContentsClient); |
+ mPopupContents = mPopupContainerView.getAwContents(); |
+ |
getInstrumentation().runOnMainSync(new Runnable() { |
@Override |
public void run() { |
@@ -87,22 +100,10 @@ |
}); |
} |
- @MediumTest |
+ @SmallTest |
@Feature({"AndroidWebView"}) |
public void testPopupWindow() throws Throwable { |
- final String popupPath = "/popup.html"; |
- final String parentPageHtml = CommonResources.makeHtmlPageFrom("", |
- "<script>" |
- + "function tryOpenWindow() {" |
- + " var newWindow = window.open('" + popupPath + "');" |
- + "}</script>" |
- + "<a class=\"full_view\" onclick=\"tryOpenWindow();\">Click me!</a>"); |
- final String popupPageHtml = CommonResources.makeHtmlPageFrom( |
- "<title>" + POPUP_TITLE + "</title>", |
- "This is a popup window"); |
- final String parentUrl = mWebServer.setResponse("/popupParent.html", parentPageHtml, null); |
- mWebServer.setResponse(popupPath, popupPageHtml, null); |
- triggerPopup(parentUrl); |
+ triggerPopup(); |
connectPendingPopup(); |
poll(new Callable<Boolean>() { |
@Override |
@@ -111,33 +112,4 @@ |
} |
}); |
} |
- |
- @MediumTest |
- @Feature({"AndroidWebView"}) |
- public void testOnPageFinishedCalledAfterModifyingPageSource() throws Throwable { |
- final String popupPath = "/popup.html"; |
- final String popupUrl = mWebServer.setResponseWithNoContentStatus(popupPath); |
- final String parentHtml = CommonResources.makeHtmlPageFrom("", |
- "<script>" |
- + "function tryOpenWindow() {" |
- + " window.popupWindow = window.open('" + popupPath + "');" |
- + "}" |
- + "function modifyDomOfPopup() {" |
- + " window.popupWindow.document.body.innerHTML = 'Hello from the parent!';" |
- + "}</script>" |
- + "<a class='full_view' onclick='tryOpenWindow();'>Click me!</a>"); |
- final String parentUrl = mWebServer.setResponse("/parent.html", parentHtml, null); |
- triggerPopup(parentUrl); |
- TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHelper = |
- mPopupContentsClient.getOnPageFinishedHelper(); |
- int onPageFinishedCallCount = onPageFinishedHelper.getCallCount(); |
- connectPendingPopup(); |
- onPageFinishedHelper.waitForCallback(onPageFinishedCallCount); |
- |
- onPageFinishedCallCount = onPageFinishedHelper.getCallCount(); |
- executeJavaScriptAndWaitForResult(mParentContents, mParentContentsClient, |
- "modifyDomOfPopup()"); |
- onPageFinishedHelper.waitForCallback(onPageFinishedCallCount); |
- assertEquals("about:blank", onPageFinishedHelper.getUrl()); |
- } |
} |