diff options
author | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-13 13:55:59 +0000 |
---|---|---|
committer | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-13 13:55:59 +0000 |
commit | c5d355a7ed2d1a57a6b9f140605e70515d45182a (patch) | |
tree | db59d13eb76fb4f56e923212c4abe75effa9ef65 /android_webview/javatests | |
parent | c7af55ab436bc540f9fa2aacd8e045eeaf29d8a2 (diff) | |
download | chromium_src-c5d355a7ed2d1a57a6b9f140605e70515d45182a.zip chromium_src-c5d355a7ed2d1a57a6b9f140605e70515d45182a.tar.gz chromium_src-c5d355a7ed2d1a57a6b9f140605e70515d45182a.tar.bz2 |
[Android WebView] Add AwSettingsTest#testBlockNetworkImagesWithTwoViews
A test was missing to verify independence of WebSettings.BlockNetworkImages
in two WebViews.
Review URL: https://chromiumcodereview.appspot.com/23708034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223040 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/javatests')
2 files changed, 85 insertions, 7 deletions
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java index 04d7502..c47a231 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java @@ -378,6 +378,56 @@ public class AwSettingsTest extends AwTestBase { } } + + class AwSettingsImagesEnabledHelper extends AwSettingsTestHelper<Boolean> { + + AwSettingsImagesEnabledHelper( + AwContents awContents, + TestAwContentsClient contentViewClient, + TestWebServer webServer, + ImagePageGenerator generator) throws Throwable { + super(awContents, contentViewClient, true); + mWebServer = webServer; + mGenerator = generator; + } + + @Override + protected Boolean getAlteredValue() { + return DISABLED; + } + + @Override + protected Boolean getInitialValue() { + return ENABLED; + } + + @Override + protected Boolean getCurrentValue() { + return mAwSettings.getImagesEnabled(); + } + + @Override + protected void setCurrentValue(Boolean value) { + mAwSettings.setImagesEnabled(value); + } + + @Override + protected void doEnsureSettingHasValue(Boolean value) throws Throwable { + final String httpImageUrl = mGenerator.getPageUrl(mWebServer); + AwSettingsTest.this.loadUrlSync( + mAwContents, + mContentViewClient.getOnPageFinishedHelper(), + httpImageUrl); + assertEquals(value == ENABLED ? + ImagePageGenerator.IMAGE_LOADED_STRING : + ImagePageGenerator.IMAGE_NOT_LOADED_STRING, + getTitleOnUiThread()); + } + + private TestWebServer mWebServer; + private ImagePageGenerator mGenerator; + } + class AwSettingsDefaultTextEncodingTestHelper extends AwSettingsTestHelper<String> { AwSettingsDefaultTextEncodingTestHelper( AwContents awContents, @@ -1773,13 +1823,7 @@ public class AwSettingsTest extends AwTestBase { TestWebServer webServer = null; try { webServer = new TestWebServer(false); - final String imagePath = "/image.png"; - webServer.setResponseBase64(imagePath, generator.getImageSourceNoAdvance(), - CommonResources.getImagePngHeaders(false)); - - final String pagePath = "/html_image.html"; - final String httpUrlImageHtml = generator.getPageTemplateSource(imagePath); - final String httpImageUrl = webServer.setResponse(pagePath, httpUrlImageHtml, null); + final String httpImageUrl = generator.getPageUrl(webServer); settings.setImagesEnabled(false); loadUrlSync(awContents, contentClient.getOnPageFinishedHelper(), httpImageUrl); @@ -1807,6 +1851,29 @@ public class AwSettingsTest extends AwTestBase { @SmallTest @Feature({"AndroidWebView", "Preferences"}) + public void testBlockNetworkImagesWithTwoViews() throws Throwable { + ViewPair views = createViews(); + TestWebServer webServer = null; + try { + webServer = new TestWebServer(false); + runPerViewSettingsTest( + new AwSettingsImagesEnabledHelper( + views.getContents0(), + views.getClient0(), + webServer, + new ImagePageGenerator(0, true)), + new AwSettingsImagesEnabledHelper( + views.getContents1(), + views.getClient1(), + webServer, + new ImagePageGenerator(1, true))); + } finally { + if (webServer != null) webServer.shutdown(); + } + } + + @SmallTest + @Feature({"AndroidWebView", "Preferences"}) public void testBlockNetworkLoadsWithHttpResources() throws Throwable { final TestAwContentsClient contentClient = new TestAwContentsClient(); final AwTestContainerView testContainer = diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/util/ImagePageGenerator.java b/android_webview/javatests/src/org/chromium/android_webview/test/util/ImagePageGenerator.java index 504eb05..ef0a72dc 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/util/ImagePageGenerator.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/util/ImagePageGenerator.java @@ -4,6 +4,8 @@ package org.chromium.android_webview.test.util; +import org.chromium.net.test.util.TestWebServer; + // The purpose of the generator is to provide a sequence of distinct images // to avoid caching side-effects. As we don't need too many images, I've // found it easier to hardcode image samples. It is possible to generate @@ -48,4 +50,13 @@ public class ImagePageGenerator { if (mAdvance) mIndex += 2; return result; } + + public String getPageUrl(TestWebServer webServer) { + final String imagePath = "/image_" + mIndex + ".png"; + final String pagePath = "/html_image_" + mIndex + ".html"; + webServer.setResponseBase64(imagePath, getImageSourceNoAdvance(), + CommonResources.getImagePngHeaders(false)); + if (mAdvance) mIndex += 2; + return webServer.setResponse(pagePath, getPageTemplateSource(imagePath), null); + } } |