summaryrefslogtreecommitdiffstats
path: root/android_webview/javatests
diff options
context:
space:
mode:
authormnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-13 13:55:59 +0000
committermnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-13 13:55:59 +0000
commitc5d355a7ed2d1a57a6b9f140605e70515d45182a (patch)
treedb59d13eb76fb4f56e923212c4abe75effa9ef65 /android_webview/javatests
parentc7af55ab436bc540f9fa2aacd8e045eeaf29d8a2 (diff)
downloadchromium_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')
-rw-r--r--android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java81
-rw-r--r--android_webview/javatests/src/org/chromium/android_webview/test/util/ImagePageGenerator.java11
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);
+ }
}