summaryrefslogtreecommitdiffstats
path: root/android_webview/javatests
diff options
context:
space:
mode:
authormnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-22 15:03:23 +0000
committermnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-22 15:03:23 +0000
commitf4f26943053032d479e8368b9d024780f9d615be (patch)
tree8b2b2c8fad1efd8e954acdcc5a29de7514b38d9b /android_webview/javatests
parent25201f7b7b7341512eedad6201a7b50b74be27da (diff)
downloadchromium_src-f4f26943053032d479e8368b9d024780f9d615be.zip
chromium_src-f4f26943053032d479e8368b9d024780f9d615be.tar.gz
chromium_src-f4f26943053032d479e8368b9d024780f9d615be.tar.bz2
[Android WebView] Enable the Blink quirk for merging contents of meta viewport tags
This enables support for mobile frameworks that dynamically add several meta viewport tags -- instead of discarding the previous tag when processing the new one, we merge their values. BUG=306548 Review URL: https://codereview.chromium.org/26144003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@230129 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/javatests')
-rw-r--r--android_webview/javatests/src/org/chromium/android_webview/test/AwTestBase.java24
-rw-r--r--android_webview/javatests/src/org/chromium/android_webview/test/AwViewportTest.java57
-rw-r--r--android_webview/javatests/src/org/chromium/android_webview/test/AwZoomTest.java35
3 files changed, 90 insertions, 26 deletions
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwTestBase.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwTestBase.java
index 2018de0..cc72322 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/AwTestBase.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwTestBase.java
@@ -370,4 +370,28 @@ public class AwTestBase
}
});
}
+
+ /**
+ * Returns whether a user can zoom the page in.
+ */
+ protected boolean canZoomInOnUiThread(final AwContents awContents) throws Throwable {
+ return runTestOnUiThreadAndGetResult(new Callable<Boolean>() {
+ @Override
+ public Boolean call() throws Exception {
+ return awContents.canZoomIn();
+ }
+ });
+ }
+
+ /**
+ * Returns whether a user can zoom the page out.
+ */
+ protected boolean canZoomOutOnUiThread(final AwContents awContents) throws Throwable {
+ return runTestOnUiThreadAndGetResult(new Callable<Boolean>() {
+ @Override
+ public Boolean call() throws Exception {
+ return awContents.canZoomOut();
+ }
+ });
+ }
}
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwViewportTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwViewportTest.java
index efe253a..5fcf02b 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/AwViewportTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwViewportTest.java
@@ -162,4 +162,61 @@ public class AwViewportTest extends AwTestBase {
"matchMedia(\"screen and (device-height:" + (int)screenHeight + "px)\").matches");
assertEquals("true", deviceHeightEqualsScreenHeight);
}
+
+ @MediumTest
+ @Feature({"AndroidWebView"})
+ public void testMetaMergeContentQuirk() throws Throwable {
+ final TestAwContentsClient contentClient = new TestAwContentsClient();
+ final AwTestContainerView testContainerView =
+ createAwTestContainerViewOnMainSync(contentClient);
+ final AwContents awContents = testContainerView.getAwContents();
+ AwSettings settings = getAwSettingsOnUiThread(awContents);
+ CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHelper();
+
+ final int pageWidth = 3000;
+ final float pageScale = 1.0f;
+ final String page = String.format("<html><head>" +
+ "<meta name='viewport' content='width=%d' />" +
+ "<meta name='viewport' content='initial-scale=%.1f' />" +
+ "<meta name='viewport' content='user-scalable=0' />" +
+ "</head><body onload='document.title=document.body.clientWidth'></body></html>",
+ pageWidth, pageScale);
+
+ settings.setJavaScriptEnabled(true);
+ settings.setUseWideViewPort(true);
+ settings.setBuiltInZoomControls(true);
+ settings.setSupportZoom(true);
+
+ loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false);
+ int width = Integer.parseInt(getTitleOnUiThread(awContents));
+ assertEquals(pageWidth, width);
+ assertEquals(pageScale, getScaleOnUiThread(awContents));
+ assertEquals(false, canZoomInOnUiThread(awContents));
+ assertEquals(false, canZoomOutOnUiThread(awContents));
+ }
+
+ @MediumTest
+ @Feature({"AndroidWebView"})
+ public void testMetaMergeContentQuirkOverrides() throws Throwable {
+ final TestAwContentsClient contentClient = new TestAwContentsClient();
+ final AwTestContainerView testContainerView =
+ createAwTestContainerViewOnMainSync(contentClient);
+ final AwContents awContents = testContainerView.getAwContents();
+ AwSettings settings = getAwSettingsOnUiThread(awContents);
+ CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHelper();
+
+ final int pageWidth = 3000;
+ final String page = String.format("<html><head>" +
+ "<meta name='viewport' content='width=device-width' />" +
+ "<meta name='viewport' content='width=%d' />" +
+ "</head><body onload='document.title=document.body.clientWidth'></body></html>",
+ pageWidth);
+
+ settings.setJavaScriptEnabled(true);
+ settings.setUseWideViewPort(true);
+
+ loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false);
+ int width = Integer.parseInt(getTitleOnUiThread(awContents));
+ assertEquals(pageWidth, width);
+ }
}
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwZoomTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwZoomTest.java
index a0b3913..8e55c8a 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/AwZoomTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwZoomTest.java
@@ -73,24 +73,6 @@ public class AwZoomTest extends AwTestBase {
});
}
- private boolean canZoomInOnUiThread() throws Throwable {
- return runTestOnUiThreadAndGetResult(new Callable<Boolean>() {
- @Override
- public Boolean call() throws Exception {
- return mAwContents.canZoomIn();
- }
- });
- }
-
- private boolean canZoomOutOnUiThread() throws Throwable {
- return runTestOnUiThreadAndGetResult(new Callable<Boolean>() {
- @Override
- public Boolean call() throws Exception {
- return mAwContents.canZoomOut();
- }
- });
- }
-
private View getZoomControlsOnUiThread() throws Throwable {
return runTestOnUiThreadAndGetResult(new Callable<View>() {
@Override
@@ -155,7 +137,8 @@ public class AwZoomTest extends AwTestBase {
@Override
public boolean isSatisfied() {
try {
- return !canZoomInOnUiThread() && !canZoomOutOnUiThread();
+ return !canZoomInOnUiThread(mAwContents) &&
+ !canZoomOutOnUiThread(mAwContents);
} catch (Throwable t) {
t.printStackTrace();
fail("Failed to query canZoomIn/Out: " + t.toString());
@@ -171,18 +154,18 @@ public class AwZoomTest extends AwTestBase {
getZoomableHtml(), "text/html", false);
mContentsClient.getOnScaleChangedHelper().waitForCallback(onScaleChangedCallCount);
getAwSettingsOnUiThread(mAwContents).setSupportZoom(supportZoom);
- assertTrue("Should be able to zoom in", canZoomInOnUiThread());
- assertFalse("Should not be able to zoom out", canZoomOutOnUiThread());
+ assertTrue("Should be able to zoom in", canZoomInOnUiThread(mAwContents));
+ assertFalse("Should not be able to zoom out", canZoomOutOnUiThread(mAwContents));
- while (canZoomInOnUiThread()) {
+ while (canZoomInOnUiThread(mAwContents)) {
assertTrue(zoomInOnUiThreadAndWait());
}
- assertTrue("Should be able to zoom out", canZoomOutOnUiThread());
+ assertTrue("Should be able to zoom out", canZoomOutOnUiThread(mAwContents));
- while (canZoomOutOnUiThread()) {
+ while (canZoomOutOnUiThread(mAwContents)) {
assertTrue(zoomOutOnUiThreadAndWait());
}
- assertTrue("Should be able to zoom in", canZoomInOnUiThread());
+ assertTrue("Should be able to zoom in", canZoomInOnUiThread(mAwContents));
}
/*
@@ -238,7 +221,7 @@ public class AwZoomTest extends AwTestBase {
getZoomableHtml(), "text/html", false);
mContentsClient.getOnScaleChangedHelper().waitForCallback(onScaleChangedCallCount);
// It must be possible to zoom in (or zoom out) for zoom controls to be shown
- assertTrue("Should be able to zoom in", canZoomInOnUiThread());
+ assertTrue("Should be able to zoom in", canZoomInOnUiThread(mAwContents));
assertTrue(webSettings.supportZoom());
webSettings.setBuiltInZoomControls(true);