| Index: android_webview/javatests/src/org/chromium/android_webview/test/CookieManagerStartupTest.java
|
| diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/CookieManagerStartupTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/CookieManagerStartupTest.java
|
| index 8cad692a738f540d28a43ba5c4fb277f47d41d50..d365319b02fb0ddbc1dc62af8250fa00175a3c2b 100644
|
| --- a/android_webview/javatests/src/org/chromium/android_webview/test/CookieManagerStartupTest.java
|
| +++ b/android_webview/javatests/src/org/chromium/android_webview/test/CookieManagerStartupTest.java
|
| @@ -11,28 +11,25 @@ import android.test.suitebuilder.annotation.SmallTest;
|
| import org.chromium.android_webview.AwBrowserProcess;
|
| import org.chromium.android_webview.AwContents;
|
| import org.chromium.android_webview.AwCookieManager;
|
| +import org.chromium.android_webview.InterceptedRequestData;
|
| import org.chromium.android_webview.test.util.CommonResources;
|
| import org.chromium.android_webview.test.util.CookieUtils;
|
| import org.chromium.base.test.util.Feature;
|
| import org.chromium.content.app.ContentMain;
|
| import org.chromium.net.test.util.TestWebServer;
|
|
|
| +
|
| /**
|
| - * Test for the CookieManager in the case where it's used before Chromium is started.
|
| + * Tests for CookieManager/Chromium startup ordering weirdness.
|
| */
|
| public class CookieManagerStartupTest extends AwTestBase {
|
|
|
| - private AwCookieManager mCookieManager;
|
| private TestAwContentsClient mContentsClient;
|
| private AwContents mAwContents;
|
|
|
| @Override
|
| protected void setUp() throws Exception {
|
| super.setUp();
|
| -
|
| - mCookieManager = new AwCookieManager();
|
| - assertNotNull(mCookieManager);
|
| -
|
| ContentMain.initApplicationContext(getActivity().getApplicationContext());
|
| }
|
|
|
| @@ -42,6 +39,10 @@ public class CookieManagerStartupTest extends AwTestBase {
|
| }
|
|
|
| private void startChromium() throws Exception {
|
| + startChromiumWithClient(new TestAwContentsClient());
|
| + }
|
| +
|
| + private void startChromiumWithClient(TestAwContentsClient contentsClient) throws Exception {
|
| final Context context = getActivity();
|
| getInstrumentation().runOnMainSync(new Runnable() {
|
| @Override
|
| @@ -50,7 +51,7 @@ public class CookieManagerStartupTest extends AwTestBase {
|
| }
|
| });
|
|
|
| - mContentsClient = new TestAwContentsClient();
|
| + mContentsClient = contentsClient;
|
| final AwTestContainerView testContainerView =
|
| createAwTestContainerViewOnMainSync(mContentsClient);
|
| mAwContents = testContainerView.getAwContents();
|
| @@ -66,12 +67,16 @@ public class CookieManagerStartupTest extends AwTestBase {
|
| String path = "/cookie_test.html";
|
| String url = webServer.setResponse(path, CommonResources.ABOUT_HTML, null);
|
|
|
| - CookieUtils.clearCookies(this, mCookieManager);
|
| + AwCookieManager cookieManager = new AwCookieManager();
|
| + assertNotNull(cookieManager);
|
| +
|
| + CookieUtils.clearCookies(this, cookieManager);
|
| + assertFalse(cookieManager.hasCookies());
|
|
|
| - mCookieManager.setAcceptCookie(true);
|
| - assertTrue(mCookieManager.acceptCookie());
|
| + cookieManager.setAcceptCookie(true);
|
| + assertTrue(cookieManager.acceptCookie());
|
|
|
| - mCookieManager.setCookie(url, "count=41");
|
| + cookieManager.setCookie(url, "count=41");
|
|
|
| startChromium();
|
| loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), url);
|
| @@ -80,7 +85,7 @@ public class CookieManagerStartupTest extends AwTestBase {
|
| mContentsClient,
|
| "var c=document.cookie.split('=');document.cookie=c[0]+'='+(1+(+c[1]));");
|
|
|
| - assertEquals("count=42", mCookieManager.getCookie(url));
|
| + assertEquals("count=42", cookieManager.getCookie(url));
|
| } finally {
|
| if (webServer != null) webServer.shutdown();
|
| }
|
| @@ -89,20 +94,38 @@ public class CookieManagerStartupTest extends AwTestBase {
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Privacy"})
|
| public void testAllowFileSchemeCookies() throws Throwable {
|
| - assertFalse(mCookieManager.allowFileSchemeCookies());
|
| - mCookieManager.setAcceptFileSchemeCookies(true);
|
| - assertTrue(mCookieManager.allowFileSchemeCookies());
|
| - mCookieManager.setAcceptFileSchemeCookies(false);
|
| - assertFalse(mCookieManager.allowFileSchemeCookies());
|
| + AwCookieManager cookieManager = new AwCookieManager();
|
| + assertFalse(cookieManager.allowFileSchemeCookies());
|
| + cookieManager.setAcceptFileSchemeCookies(true);
|
| + assertTrue(cookieManager.allowFileSchemeCookies());
|
| + cookieManager.setAcceptFileSchemeCookies(false);
|
| + assertFalse(cookieManager.allowFileSchemeCookies());
|
| }
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView", "Privacy"})
|
| public void testAllowCookies() throws Throwable {
|
| - assertTrue(mCookieManager.acceptCookie());
|
| - mCookieManager.setAcceptCookie(false);
|
| - assertFalse(mCookieManager.acceptCookie());
|
| - mCookieManager.setAcceptCookie(true);
|
| - assertTrue(mCookieManager.acceptCookie());
|
| + AwCookieManager cookieManager = new AwCookieManager();
|
| + assertTrue(cookieManager.acceptCookie());
|
| + cookieManager.setAcceptCookie(false);
|
| + assertFalse(cookieManager.acceptCookie());
|
| + cookieManager.setAcceptCookie(true);
|
| + assertTrue(cookieManager.acceptCookie());
|
| + }
|
| +
|
| + // https://code.google.com/p/chromium/issues/detail?id=374203
|
| + @MediumTest
|
| + @Feature({"AndroidWebView"})
|
| + public void testShouldInterceptRequestDeadlock() throws Throwable {
|
| + String url = "http://www.example.com";
|
| + TestAwContentsClient contentsClient = new TestAwContentsClient() {
|
| + @Override
|
| + public InterceptedRequestData shouldInterceptRequest(String url) {
|
| + (new AwCookieManager()).getCookie("www.example.com");
|
| + return null;
|
| + }
|
| + };
|
| + startChromiumWithClient(contentsClient);
|
| + loadUrlSync(mAwContents, contentsClient.getOnPageFinishedHelper(), url);
|
| }
|
| }
|
|
|