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() {
});
}
- 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);
}
});
}
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));
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());
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));
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);