Index: android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java |
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java |
index 77fb3704fd3c45b8f658d5914b9980b7880f691a..4a6bab55c7560e251fd9b143673134be9e0e3761 100644 |
--- a/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java |
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/LoadUrlTest.java |
@@ -4,12 +4,9 @@ |
package org.chromium.android_webview.test; |
-import android.test.suitebuilder.annotation.LargeTest; |
import android.test.suitebuilder.annotation.SmallTest; |
import android.util.Pair; |
-import junit.framework.Assert; |
- |
import org.apache.http.Header; |
import org.apache.http.HttpRequest; |
import org.chromium.android_webview.AwContents; |
@@ -334,71 +331,4 @@ public class LoadUrlTest extends AwTestBase { |
if (webServer != null) webServer.shutdown(); |
} |
} |
- |
- private static class TestController { |
- private final Object mLock = new Object(); |
- private boolean mIsReady = false; |
- public void notifyPageIsReady() { |
- synchronized (mLock) { |
- mIsReady = true; |
- mLock.notify(); |
- } |
- } |
- public void waitUntilIsReady() { |
- synchronized (mLock) { |
- while (!mIsReady) { |
- try { |
- mLock.wait(WAIT_TIMEOUT_MS); |
- } catch (Exception e) { |
- continue; |
- } |
- if (!mIsReady) { |
- Assert.fail("Wait timed out"); |
- } |
- } |
- mIsReady = false; |
- } |
- } |
- } |
- |
- // Verify that it is possible to interrupt JS scripts stuck in an infinite loop |
- // by calling loadUrl on a WebView. |
- @LargeTest |
- @Feature({"AndroidWebView"}) |
- public void testLoadUrlInterruptsLoopedScripts() throws Throwable { |
- final String infiniteLoopPage = |
- "<html><head>" + |
- " <script>" + |
- " function infiniteLoop() {" + |
- " test.notifyPageIsReady();" + |
- " while(1);" + |
- " }" + |
- " </script>" + |
- "</head><body onload='setTimeout(infiniteLoop, 0)'>" + |
- "</body></html>"; |
- final String simplePage = "<html><body onload='test.notifyPageIsReady()'></body></html>"; |
- final String expectedTitle = "PASS"; |
- final String pageWithTitle = "<html><body onload='document.title=\"" + expectedTitle + |
- "\"; test.notifyPageIsReady()'></body></html>"; |
- |
- final AwTestContainerView testContainerView = |
- createAwTestContainerViewOnMainSync(new TestAwContentsClient()); |
- final AwContents awContents = testContainerView.getAwContents(); |
- getAwSettingsOnUiThread(awContents).setJavaScriptEnabled(true); |
- final TestController testController = new TestController(); |
- getInstrumentation().runOnMainSync(new Runnable() { |
- @Override |
- public void run() { |
- awContents.addPossiblyUnsafeJavascriptInterface(testController, "test", null); |
- } |
- }); |
- loadDataAsync(awContents, infiniteLoopPage, "text/html", false); |
- testController.waitUntilIsReady(); |
- loadDataAsync(awContents, simplePage, "text/html", false); |
- testController.waitUntilIsReady(); |
- // Load another page that runs JS to make sure that the WebView is still functional. |
- loadDataAsync(awContents, pageWithTitle, "text/html", false); |
- testController.waitUntilIsReady(); |
- assertEquals(expectedTitle, getTitleOnUiThread(awContents)); |
- } |
} |