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 |