Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / android_webview / javatests / src / org / chromium / android_webview / test / AwZoomTest.java
index afcf127..c0e193f 100644 (file)
@@ -33,10 +33,14 @@ public class AwZoomTest extends AwTestBase {
         mAwContents = testContainerView.getAwContents();
     }
 
-    private String getZoomableHtml() {
-        return "<html><head><meta name=\"viewport\" content=\"" +
-                "width=device-width, minimum-scale=0.5, maximum-scale=2.0, initial-scale=0.5" +
-                "\"/></head><body>Zoomable</body></html>";
+    private String getZoomableHtml(float scale) {
+        final int divWidthPercent = (int)(100.0f / scale);
+        return String.format("<html><head><meta name=\"viewport\" content=\"" +
+                "width=device-width, minimum-scale=%f, maximum-scale=2.0, initial-scale=%f" +
+                "\"/></head><body style='margin:0'>" +
+                "<div style='width:%d%%;height:100px;border:1px solid black'>Zoomable</div>" +
+                "</body></html>",
+                scale, scale, divWidthPercent);
     }
 
     private String getNonZoomableHtml() {
@@ -118,11 +122,11 @@ public class AwZoomTest extends AwTestBase {
         });
     }
 
-    private void waitUntilCanZoomIn() throws Throwable {
+    private void waitForScaleToBecome(final float expectedScale) throws Throwable {
         poll(new Callable<Boolean>() {
             @Override
             public Boolean call() throws Exception {
-                return canZoomInOnUiThread(mAwContents);
+                return expectedScale == getScaleOnUiThread(mAwContents);
             }
         });
     }
@@ -140,9 +144,10 @@ public class AwZoomTest extends AwTestBase {
     private void runMagnificationTest() throws Throwable {
         getAwSettingsOnUiThread(mAwContents).setUseWideViewPort(true);
         assertFalse("Should not be able to zoom in", canZoomInOnUiThread(mAwContents));
+        final float pageMinimumScale = 0.5f;
         loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
-                getZoomableHtml(), "text/html", false);
-        waitUntilCanZoomIn();
+                getZoomableHtml(pageMinimumScale), "text/html", false);
+        waitForScaleToBecome(pageMinimumScale);
         assertTrue("Should be able to zoom in", canZoomInOnUiThread(mAwContents));
         assertFalse("Should not be able to zoom out", canZoomOutOnUiThread(mAwContents));
 
@@ -178,7 +183,7 @@ public class AwZoomTest extends AwTestBase {
     public void testZoomUsingMultiTouch() throws Throwable {
         AwSettings webSettings = getAwSettingsOnUiThread(mAwContents);
         loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
-                getZoomableHtml(), "text/html", false);
+                getZoomableHtml(0.5f), "text/html", false);
 
         assertTrue(webSettings.supportZoom());
         assertFalse(webSettings.getBuiltInZoomControls());
@@ -197,9 +202,10 @@ public class AwZoomTest extends AwTestBase {
         AwSettings webSettings = getAwSettingsOnUiThread(mAwContents);
         webSettings.setUseWideViewPort(true);
         assertFalse("Should not be able to zoom in", canZoomInOnUiThread(mAwContents));
+        final float pageMinimumScale = 0.5f;
         loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
-                getZoomableHtml(), "text/html", false);
-        waitUntilCanZoomIn();
+                getZoomableHtml(pageMinimumScale), "text/html", false);
+        waitForScaleToBecome(pageMinimumScale);
         // It must be possible to zoom in (or zoom out) for zoom controls to be shown
         assertTrue("Should be able to zoom in", canZoomInOnUiThread(mAwContents));
 
@@ -244,7 +250,7 @@ public class AwZoomTest extends AwTestBase {
     public void testZoomControlsOnOrientationChange() throws Throwable {
         AwSettings webSettings = getAwSettingsOnUiThread(mAwContents);
         loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
-                getZoomableHtml(), "text/html", false);
+                getZoomableHtml(0.5f), "text/html", false);
 
         assertTrue(webSettings.supportZoom());
         webSettings.setBuiltInZoomControls(true);