| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.android_webview.test; | 5 package org.chromium.android_webview.test; |
| 6 | 6 |
| 7 import android.test.suitebuilder.annotation.MediumTest; | 7 import android.test.suitebuilder.annotation.MediumTest; |
| 8 | 8 |
| 9 import org.chromium.android_webview.AwContents; | 9 import org.chromium.android_webview.AwContents; |
| 10 import org.chromium.android_webview.AwContentsClient; | 10 import org.chromium.android_webview.AwContentsClient; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 27 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
| 28 final AwTestContainerView testContainerView = | 28 final AwTestContainerView testContainerView = |
| 29 createAwTestContainerViewOnMainSyncInQuirksMode(contentClient); | 29 createAwTestContainerViewOnMainSyncInQuirksMode(contentClient); |
| 30 final AwContents awContents = testContainerView.getAwContents(); | 30 final AwContents awContents = testContainerView.getAwContents(); |
| 31 AwSettings settings = getAwSettingsOnUiThread(awContents); | 31 AwSettings settings = getAwSettingsOnUiThread(awContents); |
| 32 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); | 32 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); |
| 33 | 33 |
| 34 final String pageTemplate = "<html><head>" + | 34 final String pageTemplate = "<html><head>" + |
| 35 "<meta name='viewport' content='width=device-width, target-densi
tyDpi=%s' />" + | 35 "<meta name='viewport' content='width=device-width, target-densi
tyDpi=%s' />" + |
| 36 "</head><body onload='document.title=document.body.clientWidth'>
</body></html>"; | 36 "</head><body onload='document.title=document.body.clientWidth'>
</body></html>"; |
| 37 final String pageDeviceDpi = String.format((Locale)null, pageTemplate, "
device-dpi"); | 37 final String pageDeviceDpi = String.format((Locale) null, pageTemplate,
"device-dpi"); |
| 38 final String pageHighDpi = String.format((Locale)null, pageTemplate, "hi
gh-dpi"); | 38 final String pageHighDpi = String.format((Locale) null, pageTemplate, "h
igh-dpi"); |
| 39 final String pageDpi100 = String.format((Locale)null, pageTemplate, "100
"); | 39 final String pageDpi100 = String.format((Locale) null, pageTemplate, "10
0"); |
| 40 | 40 |
| 41 settings.setJavaScriptEnabled(true); | 41 settings.setJavaScriptEnabled(true); |
| 42 | 42 |
| 43 DeviceDisplayInfo deviceInfo = | 43 DeviceDisplayInfo deviceInfo = |
| 44 DeviceDisplayInfo.create(getInstrumentation().getTargetContext()
); | 44 DeviceDisplayInfo.create(getInstrumentation().getTargetContext()
); |
| 45 loadDataSync(awContents, onPageFinishedHelper, pageDeviceDpi, "text/html
", false); | 45 loadDataSync(awContents, onPageFinishedHelper, pageDeviceDpi, "text/html
", false); |
| 46 int actualWidth = Integer.parseInt(getTitleOnUiThread(awContents)); | 46 int actualWidth = Integer.parseInt(getTitleOnUiThread(awContents)); |
| 47 assertEquals(deviceInfo.getDisplayWidth(), actualWidth, 10f); | 47 assertEquals(deviceInfo.getDisplayWidth(), actualWidth, 10f); |
| 48 | 48 |
| 49 float displayWidth = (deviceInfo.getDisplayWidth()); | 49 float displayWidth = (deviceInfo.getDisplayWidth()); |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 public void testMetaMergeContentQuirk() throws Throwable { | 180 public void testMetaMergeContentQuirk() throws Throwable { |
| 181 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 181 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
| 182 final AwTestContainerView testContainerView = | 182 final AwTestContainerView testContainerView = |
| 183 createAwTestContainerViewOnMainSyncInQuirksMode(contentClient); | 183 createAwTestContainerViewOnMainSyncInQuirksMode(contentClient); |
| 184 final AwContents awContents = testContainerView.getAwContents(); | 184 final AwContents awContents = testContainerView.getAwContents(); |
| 185 AwSettings settings = getAwSettingsOnUiThread(awContents); | 185 AwSettings settings = getAwSettingsOnUiThread(awContents); |
| 186 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); | 186 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); |
| 187 | 187 |
| 188 final int pageWidth = 3000; | 188 final int pageWidth = 3000; |
| 189 final float pageScale = 1.0f; | 189 final float pageScale = 1.0f; |
| 190 final String page = String.format((Locale)null, "<html><head>" + | 190 final String page = String.format((Locale) null, "<html><head>" + |
| 191 "<meta name='viewport' content='width=%d' />" + | 191 "<meta name='viewport' content='width=%d' />" + |
| 192 "<meta name='viewport' content='initial-scale=%.1f' />" + | 192 "<meta name='viewport' content='initial-scale=%.1f' />" + |
| 193 "<meta name='viewport' content='user-scalable=0' />" + | 193 "<meta name='viewport' content='user-scalable=0' />" + |
| 194 "</head><body onload='document.title=document.body.clientWidth'>
</body></html>", | 194 "</head><body onload='document.title=document.body.clientWidth'>
</body></html>", |
| 195 pageWidth, pageScale); | 195 pageWidth, pageScale); |
| 196 | 196 |
| 197 settings.setJavaScriptEnabled(true); | 197 settings.setJavaScriptEnabled(true); |
| 198 settings.setUseWideViewPort(true); | 198 settings.setUseWideViewPort(true); |
| 199 settings.setBuiltInZoomControls(true); | 199 settings.setBuiltInZoomControls(true); |
| 200 settings.setSupportZoom(true); | 200 settings.setSupportZoom(true); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 217 @Feature({"AndroidWebView"}) | 217 @Feature({"AndroidWebView"}) |
| 218 public void testMetaMergeContentQuirkOverrides() throws Throwable { | 218 public void testMetaMergeContentQuirkOverrides() throws Throwable { |
| 219 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 219 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
| 220 final AwTestContainerView testContainerView = | 220 final AwTestContainerView testContainerView = |
| 221 createAwTestContainerViewOnMainSyncInQuirksMode(contentClient); | 221 createAwTestContainerViewOnMainSyncInQuirksMode(contentClient); |
| 222 final AwContents awContents = testContainerView.getAwContents(); | 222 final AwContents awContents = testContainerView.getAwContents(); |
| 223 AwSettings settings = getAwSettingsOnUiThread(awContents); | 223 AwSettings settings = getAwSettingsOnUiThread(awContents); |
| 224 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); | 224 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); |
| 225 | 225 |
| 226 final int pageWidth = 3000; | 226 final int pageWidth = 3000; |
| 227 final String page = String.format((Locale)null, "<html><head>" + | 227 final String page = String.format((Locale) null, "<html><head>" + |
| 228 "<meta name='viewport' content='width=device-width' />" + | 228 "<meta name='viewport' content='width=device-width' />" + |
| 229 "<meta name='viewport' content='width=%d' />" + | 229 "<meta name='viewport' content='width=%d' />" + |
| 230 "</head><body onload='document.title=document.body.clientWidth'>
</body></html>", | 230 "</head><body onload='document.title=document.body.clientWidth'>
</body></html>", |
| 231 pageWidth); | 231 pageWidth); |
| 232 | 232 |
| 233 settings.setJavaScriptEnabled(true); | 233 settings.setJavaScriptEnabled(true); |
| 234 settings.setUseWideViewPort(true); | 234 settings.setUseWideViewPort(true); |
| 235 | 235 |
| 236 loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false)
; | 236 loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false)
; |
| 237 int width = Integer.parseInt(getTitleOnUiThread(awContents)); | 237 int width = Integer.parseInt(getTitleOnUiThread(awContents)); |
| 238 assertEquals(pageWidth, width); | 238 assertEquals(pageWidth, width); |
| 239 } | 239 } |
| 240 | 240 |
| 241 @MediumTest | 241 @MediumTest |
| 242 @Feature({"AndroidWebView"}) | 242 @Feature({"AndroidWebView"}) |
| 243 public void testInitialScaleClobberQuirk() throws Throwable { | 243 public void testInitialScaleClobberQuirk() throws Throwable { |
| 244 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 244 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
| 245 final AwTestContainerView testContainerView = | 245 final AwTestContainerView testContainerView = |
| 246 createAwTestContainerViewOnMainSyncInQuirksMode(contentClient); | 246 createAwTestContainerViewOnMainSyncInQuirksMode(contentClient); |
| 247 final AwContents awContents = testContainerView.getAwContents(); | 247 final AwContents awContents = testContainerView.getAwContents(); |
| 248 AwSettings settings = getAwSettingsOnUiThread(awContents); | 248 AwSettings settings = getAwSettingsOnUiThread(awContents); |
| 249 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); | 249 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); |
| 250 | 250 |
| 251 final String pageTemplate = "<html><head>" + | 251 final String pageTemplate = "<html><head>" + |
| 252 "<meta name='viewport' content='initial-scale=%d' />" + | 252 "<meta name='viewport' content='initial-scale=%d' />" + |
| 253 "</head><body>" + | 253 "</head><body>" + |
| 254 "<div style='width:10000px;height:200px'>A big div</div>" + | 254 "<div style='width:10000px;height:200px'>A big div</div>" + |
| 255 "</body></html>"; | 255 "</body></html>"; |
| 256 final String pageScale4 = String.format((Locale)null, pageTemplate, 4); | 256 final String pageScale4 = String.format((Locale) null, pageTemplate, 4); |
| 257 final String page = String.format((Locale)null, pageTemplate, 1); | 257 final String page = String.format((Locale) null, pageTemplate, 1); |
| 258 | 258 |
| 259 // Page scale updates are asynchronous. There is an issue that we can't | 259 // Page scale updates are asynchronous. There is an issue that we can't |
| 260 // reliably check, whether the scale as NOT changed (i.e. remains to be
1.0). | 260 // reliably check, whether the scale as NOT changed (i.e. remains to be
1.0). |
| 261 // So we first change the scale to some non-default value, and then wait | 261 // So we first change the scale to some non-default value, and then wait |
| 262 // until it gets back to 1.0. | 262 // until it gets back to 1.0. |
| 263 int onScaleChangedCallCount = contentClient.getOnScaleChangedHelper().ge
tCallCount(); | 263 int onScaleChangedCallCount = contentClient.getOnScaleChangedHelper().ge
tCallCount(); |
| 264 loadDataSync(awContents, onPageFinishedHelper, pageScale4, "text/html",
false); | 264 loadDataSync(awContents, onPageFinishedHelper, pageScale4, "text/html",
false); |
| 265 contentClient.getOnScaleChangedHelper().waitForCallback(onScaleChangedCa
llCount); | 265 contentClient.getOnScaleChangedHelper().waitForCallback(onScaleChangedCa
llCount); |
| 266 assertEquals(4.0f, getScaleOnUiThread(awContents)); | 266 assertEquals(4.0f, getScaleOnUiThread(awContents)); |
| 267 // The following call to set initial scale will be ignored. However, a t
emporary | 267 // The following call to set initial scale will be ignored. However, a t
emporary |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 private void ensureScaleBecomes(final float targetScale, final AwContents aw
Contents) | 345 private void ensureScaleBecomes(final float targetScale, final AwContents aw
Contents) |
| 346 throws Throwable { | 346 throws Throwable { |
| 347 poll(new Callable<Boolean>() { | 347 poll(new Callable<Boolean>() { |
| 348 @Override | 348 @Override |
| 349 public Boolean call() throws Exception { | 349 public Boolean call() throws Exception { |
| 350 return targetScale == getScaleOnUiThread(awContents); | 350 return targetScale == getScaleOnUiThread(awContents); |
| 351 } | 351 } |
| 352 }); | 352 }); |
| 353 } | 353 } |
| 354 } | 354 } |
| OLD | NEW |