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

Side by Side Diff: android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java

Issue 11440036: [Android] Fix AwSettingsTest AppCache test crashes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed Created 8 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « android_webview/browser/net/aw_url_request_context_getter.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.android_webview.test; 5 package org.chromium.android_webview.test;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.os.Build; 8 import android.os.Build;
9 import android.test.suitebuilder.annotation.SmallTest; 9 import android.test.suitebuilder.annotation.SmallTest;
10 import android.webkit.WebSettings; 10 import android.webkit.WebSettings;
11 11
12 import org.apache.http.Header; 12 import org.apache.http.Header;
13 import org.apache.http.HttpRequest; 13 import org.apache.http.HttpRequest;
14 import org.chromium.android_webview.AndroidProtocolHandler; 14 import org.chromium.android_webview.AndroidProtocolHandler;
15 import org.chromium.android_webview.AwContents; 15 import org.chromium.android_webview.AwContents;
16 import org.chromium.android_webview.AwSettings; 16 import org.chromium.android_webview.AwSettings;
17 import org.chromium.android_webview.test.util.CommonResources; 17 import org.chromium.android_webview.test.util.CommonResources;
18 import org.chromium.android_webview.test.util.ImagePageGenerator; 18 import org.chromium.android_webview.test.util.ImagePageGenerator;
19 import org.chromium.base.test.util.DisabledTest;
20 import org.chromium.base.test.util.Feature; 19 import org.chromium.base.test.util.Feature;
21 import org.chromium.base.test.util.TestFileUtil; 20 import org.chromium.base.test.util.TestFileUtil;
22 import org.chromium.base.test.util.UrlUtils; 21 import org.chromium.base.test.util.UrlUtils;
23 import org.chromium.content.browser.ContentSettings; 22 import org.chromium.content.browser.ContentSettings;
24 import org.chromium.content.browser.ContentViewCore; 23 import org.chromium.content.browser.ContentViewCore;
25 import org.chromium.content.browser.test.util.CallbackHelper; 24 import org.chromium.content.browser.test.util.CallbackHelper;
26 import org.chromium.content.browser.test.util.Criteria; 25 import org.chromium.content.browser.test.util.Criteria;
27 import org.chromium.content.browser.test.util.CriteriaHelper; 26 import org.chromium.content.browser.test.util.CriteriaHelper;
28 import org.chromium.content.browser.test.util.HistoryUtils; 27 import org.chromium.content.browser.test.util.HistoryUtils;
29 import org.chromium.net.test.util.TestWebServer; 28 import org.chromium.net.test.util.TestWebServer;
(...skipping 2184 matching lines...) Expand 10 before | Expand all | Expand 10 after
2214 } 2213 }
2215 2214
2216 @SmallTest 2215 @SmallTest
2217 @Feature({"AndroidWebView", "Preferences", "AppCache"}) 2216 @Feature({"AndroidWebView", "Preferences", "AppCache"})
2218 public void testAppCache() throws Throwable { 2217 public void testAppCache() throws Throwable {
2219 final TestAwContentsClient contentClient = new TestAwContentsClient(); 2218 final TestAwContentsClient contentClient = new TestAwContentsClient();
2220 final AwTestContainerView testContainer = 2219 final AwTestContainerView testContainer =
2221 createAwTestContainerViewOnMainSync(false, contentClient); 2220 createAwTestContainerViewOnMainSync(false, contentClient);
2222 final AwContents awContents = testContainer.getAwContents(); 2221 final AwContents awContents = testContainer.getAwContents();
2223 final ContentSettings settings = getContentSettingsOnUiThread(awContents ); 2222 final ContentSettings settings = getContentSettingsOnUiThread(awContents );
2224 // Not sure why, but I'm experiencing DCHECK failures at net/disk_cache/ in_flight_io.cc:98
2225 // w/o this line. crbug.com/163383
2226 clearCacheOnUiThread(awContents, true);
2227 settings.setJavaScriptEnabled(true); 2223 settings.setJavaScriptEnabled(true);
2228 // Note that the cache isn't actually enabled until the call to setAppCa chePath. 2224 // Note that the cache isn't actually enabled until the call to setAppCa chePath.
2229 settings.setAppCacheEnabled(true); 2225 settings.setAppCacheEnabled(true);
2230 2226
2231 TestWebServer webServer = null; 2227 TestWebServer webServer = null;
2232 try { 2228 try {
2233 webServer = new TestWebServer(false); 2229 webServer = new TestWebServer(false);
2234 ManifestTestHelper helper = new ManifestTestHelper( 2230 ManifestTestHelper helper = new ManifestTestHelper(
2235 webServer, "testAppCache.html", "appcache.manifest"); 2231 webServer, "testAppCache.html", "appcache.manifest");
2236 loadUrlSync( 2232 loadUrlSync(
2237 awContents, 2233 awContents,
2238 contentClient.getOnPageFinishedHelper(), 2234 contentClient.getOnPageFinishedHelper(),
2239 helper.getHtmlUrl()); 2235 helper.getHtmlUrl());
2240 helper.waitUntilHtmlIsRequested(0); 2236 helper.waitUntilHtmlIsRequested(0);
2241 // Unfortunately, there is no other good way of verifying that AppCa che is 2237 // Unfortunately, there is no other good way of verifying that AppCa che is
2242 // disabled, other than checking that it didn't try to fetch the man ifest. 2238 // disabled, other than checking that it didn't try to fetch the man ifest.
2243 Thread.sleep(1000); 2239 Thread.sleep(1000);
2244 assertEquals(0, webServer.getRequestCount(helper.getManifestPath())) ; 2240 assertEquals(0, webServer.getRequestCount(helper.getManifestPath())) ;
2245 settings.setAppCachePath("whatever"); // Enables AppCache. 2241 settings.setAppCachePath("whatever"); // Enables AppCache.
2246 loadUrlSync( 2242 loadUrlSync(
2247 awContents, 2243 awContents,
2248 contentClient.getOnPageFinishedHelper(), 2244 contentClient.getOnPageFinishedHelper(),
2249 helper.getHtmlUrl()); 2245 helper.getHtmlUrl());
2250 helper.waitUntilManifestIsRequested(0); 2246 helper.waitUntilManifestIsRequested(0);
2251 } finally { 2247 } finally {
2252 if (webServer != null) webServer.shutdown(); 2248 if (webServer != null) webServer.shutdown();
2253 } 2249 }
2254 } 2250 }
2255 2251
2256 /* 2252 @SmallTest
2257 * @SmallTest 2253 @Feature({"AndroidWebView", "Preferences", "AppCache"})
2258 * @Feature({"AndroidWebView", "Preferences", "AppCache"})
2259 * BUG=crbug.com/163383
2260 * If you run this test with a non-empty profile, it will crash,
2261 * unless you delete the test's data directory.
2262 */
2263 @DisabledTest
2264 public void testAppCacheNormal() throws Throwable { 2254 public void testAppCacheNormal() throws Throwable {
2265 // We don't use the test helper here, because making sure that AppCache 2255 // We don't use the test helper here, because making sure that AppCache
2266 // is disabled takes a lot of time, so running through the usual drill 2256 // is disabled takes a lot of time, so running through the usual drill
2267 // will take about 20 seconds. 2257 // will take about 20 seconds.
2268 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); 2258 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW);
2269 ContentSettings settings0 = getContentSettingsOnUiThread(views.getConten ts0()); 2259 ContentSettings settings0 = getContentSettingsOnUiThread(views.getConten ts0());
2270 settings0.setJavaScriptEnabled(true); 2260 settings0.setJavaScriptEnabled(true);
2271 settings0.setAppCachePath("whatever"); 2261 settings0.setAppCachePath("whatever");
2272 settings0.setAppCacheEnabled(true); 2262 settings0.setAppCacheEnabled(true);
2273 ContentSettings settings1 = getContentSettingsOnUiThread(views.getConten ts1()); 2263 ContentSettings settings1 = getContentSettingsOnUiThread(views.getConten ts1());
2274 settings1.setJavaScriptEnabled(true); 2264 settings1.setJavaScriptEnabled(true);
2275 // AppCachePath setting is global, no need to set it for the second view . 2265 // AppCachePath setting is global, no need to set it for the second view .
2276 settings1.setAppCacheEnabled(true); 2266 settings1.setAppCacheEnabled(true);
2277 2267
2278 clearCacheOnUiThread(views.getContents0(), true);
2279
2280 TestWebServer webServer = null; 2268 TestWebServer webServer = null;
2281 try { 2269 try {
2282 webServer = new TestWebServer(false); 2270 webServer = new TestWebServer(false);
2283 ManifestTestHelper helper0 = new ManifestTestHelper( 2271 ManifestTestHelper helper0 = new ManifestTestHelper(
2284 webServer, "testAppCache_0.html", "appcache.manifest_0"); 2272 webServer, "testAppCache_0.html", "appcache.manifest_0");
2285 loadUrlSync( 2273 loadUrlSync(
2286 views.getContents0(), 2274 views.getContents0(),
2287 views.getClient0().getOnPageFinishedHelper(), 2275 views.getClient0().getOnPageFinishedHelper(),
2288 helper0.getHtmlUrl()); 2276 helper0.getHtmlUrl());
2289 int manifestRequests0 = helper0.waitUntilManifestIsRequested(0); 2277 int manifestRequests0 = helper0.waitUntilManifestIsRequested(0);
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
2440 AndroidProtocolHandler.setResourceContextForTesting(getInstrumentation() .getContext()); 2428 AndroidProtocolHandler.setResourceContextForTesting(getInstrumentation() .getContext());
2441 } 2429 }
2442 2430
2443 /** 2431 /**
2444 * Configure the browser to load resources from the browser application. 2432 * Configure the browser to load resources from the browser application.
2445 */ 2433 */
2446 private void resetResourceContext() { 2434 private void resetResourceContext() {
2447 AndroidProtocolHandler.setResourceContextForTesting(null); 2435 AndroidProtocolHandler.setResourceContextForTesting(null);
2448 } 2436 }
2449 } 2437 }
OLDNEW
« no previous file with comments | « android_webview/browser/net/aw_url_request_context_getter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698