diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwTestBase.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwTestBase.java index 619979c9ae93a8..ef65bfe2899d66 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/AwTestBase.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwTestBase.java @@ -21,9 +21,7 @@ import org.chromium.content.browser.test.util.CallbackHelper; import org.chromium.content.browser.test.util.Criteria; import org.chromium.content.browser.test.util.CriteriaHelper; -import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnPageFinishedHelper; import org.chromium.content_public.browser.LoadUrlParams; -import org.chromium.net.test.util.TestWebServer; import java.lang.annotation.Annotation; import java.lang.reflect.Method; @@ -511,59 +509,4 @@ public Boolean call() throws Exception { }); } - /** - * Loads the main html then triggers the popup window. - */ - public void triggerPopup(final AwContents parentAwContents, - TestAwContentsClient parentAwContentsClient, TestWebServer testWebServer, - String mainHtml, String popupHtml, String popupPath, String triggerScript) - throws Exception { - enableJavaScriptOnUiThread(parentAwContents); - getInstrumentation().runOnMainSync(new Runnable() { - @Override - public void run() { - parentAwContents.getSettings().setSupportMultipleWindows(true); - parentAwContents.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); - } - }); - - final String parentUrl = testWebServer.setResponse("/popupParent.html", mainHtml, null); - testWebServer.setResponse(popupPath, popupHtml, null); - - parentAwContentsClient.getOnCreateWindowHelper().setReturnValue(true); - loadUrlSync(parentAwContents, parentAwContentsClient.getOnPageFinishedHelper(), parentUrl); - - TestAwContentsClient.OnCreateWindowHelper onCreateWindowHelper = - parentAwContentsClient.getOnCreateWindowHelper(); - int currentCallCount = onCreateWindowHelper.getCallCount(); - parentAwContents.evaluateJavaScript(triggerScript, null); - onCreateWindowHelper.waitForCallback( - currentCallCount, 1, WAIT_TIMEOUT_MS, TimeUnit.MILLISECONDS); - } - - /** - * Supplies the popup window with AwContents then waits for the popup window to finish loading. - */ - public AwContents connectPendingPopup(final AwContents parentAwContents) throws Exception { - TestAwContentsClient popupContentsClient; - AwTestContainerView popupContainerView; - final AwContents popupContents; - popupContentsClient = new TestAwContentsClient(); - popupContainerView = createAwTestContainerViewOnMainSync(popupContentsClient); - popupContents = popupContainerView.getAwContents(); - enableJavaScriptOnUiThread(popupContents); - - getInstrumentation().runOnMainSync(new Runnable() { - @Override - public void run() { - parentAwContents.supplyContentsForPopup(popupContents); - } - }); - - OnPageFinishedHelper onPageFinishedHelper = popupContentsClient.getOnPageFinishedHelper(); - int callCount = onPageFinishedHelper.getCallCount(); - onPageFinishedHelper.waitForCallback(callCount, 1, WAIT_TIMEOUT_MS, TimeUnit.MILLISECONDS); - - return popupContents; - } } 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 3044ddc5917a36..a81e9070fd5577 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 @@ -8,11 +8,15 @@ 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.net.test.util.TestWebServer; +import java.util.concurrent.Callable; +import java.util.concurrent.TimeUnit; + /** * Tests for pop up window flow. */ @@ -21,6 +25,9 @@ public class PopupWindowTest extends AwTestBase { private TestAwContentsClient mParentContentsClient; private AwTestContainerView mParentContainerView; private AwContents mParentContents; + private TestAwContentsClient mPopupContentsClient; + private AwTestContainerView mPopupContainerView; + private AwContents mPopupContents; private TestWebServer mWebServer; private static final String POPUP_TITLE = "Popup Window"; @@ -42,22 +49,67 @@ public void tearDown() throws Exception { super.tearDown(); } - @SmallTest - @Feature({"AndroidWebView"}) - public void testPopupWindow() throws Throwable { + private void triggerPopup() throws Throwable { + enableJavaScriptOnUiThread(mParentContents); + getInstrumentation().runOnMainSync(new Runnable() { + @Override + public void run() { + mParentContents.getSettings().setSupportMultipleWindows(true); + mParentContents.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); + } + }); + final String popupPath = "/popup.html"; - final String parentPageHtml = CommonResources.makeHtmlPageFrom("", ""); - + + "}" + + "Click me!"); final String popupPageHtml = CommonResources.makeHtmlPageFrom( "