OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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.content.Context; | 7 import android.content.Context; |
8 import android.graphics.Point; | 8 import android.graphics.Point; |
9 import android.net.http.SslError; | 9 import android.net.http.SslError; |
10 import android.os.Build; | 10 import android.os.Build; |
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 mAwSettings.setStandardFontFamily(value); | 281 mAwSettings.setStandardFontFamily(value); |
282 } | 282 } |
283 | 283 |
284 @Override | 284 @Override |
285 protected void doEnsureSettingHasValue(String value) throws Throwable { | 285 protected void doEnsureSettingHasValue(String value) throws Throwable { |
286 loadDataSync(getData()); | 286 loadDataSync(getData()); |
287 assertEquals(value, getTitleOnUiThread()); | 287 assertEquals(value, getTitleOnUiThread()); |
288 } | 288 } |
289 | 289 |
290 private String getData() { | 290 private String getData() { |
291 return "<html><body onload=\"document.title = " + | 291 return "<html><body onload=\"document.title = " |
292 "getComputedStyle(document.body).getPropertyValue('font-fami
ly');\">" | 292 + "getComputedStyle(document.body).getPropertyValue('font-fa
mily');\">" |
293 + "</body></html>"; | 293 + "</body></html>"; |
294 } | 294 } |
295 } | 295 } |
296 | 296 |
297 class AwSettingsDefaultFontSizeTestHelper extends AwSettingsTestHelper<Integ
er> { | 297 class AwSettingsDefaultFontSizeTestHelper extends AwSettingsTestHelper<Integ
er> { |
298 AwSettingsDefaultFontSizeTestHelper( | 298 AwSettingsDefaultFontSizeTestHelper( |
299 AwTestContainerView containerView, | 299 AwTestContainerView containerView, |
300 TestAwContentsClient contentViewClient) throws Throwable { | 300 TestAwContentsClient contentViewClient) throws Throwable { |
301 super(containerView, contentViewClient, true); | 301 super(containerView, contentViewClient, true); |
302 } | 302 } |
(...skipping 18 matching lines...) Expand all Loading... |
321 mAwSettings.setDefaultFontSize(value); | 321 mAwSettings.setDefaultFontSize(value); |
322 } | 322 } |
323 | 323 |
324 @Override | 324 @Override |
325 protected void doEnsureSettingHasValue(Integer value) throws Throwable { | 325 protected void doEnsureSettingHasValue(Integer value) throws Throwable { |
326 loadDataSync(getData()); | 326 loadDataSync(getData()); |
327 assertEquals(value.toString() + "px", getTitleOnUiThread()); | 327 assertEquals(value.toString() + "px", getTitleOnUiThread()); |
328 } | 328 } |
329 | 329 |
330 private String getData() { | 330 private String getData() { |
331 return "<html><body onload=\"document.title = " + | 331 return "<html><body onload=\"document.title = " |
332 "getComputedStyle(document.body).getPropertyValue('font-size
');\">" | 332 + "getComputedStyle(document.body).getPropertyValue('font-si
ze');\">" |
333 + "</body></html>"; | 333 + "</body></html>"; |
334 } | 334 } |
335 } | 335 } |
336 | 336 |
337 class AwSettingsLoadImagesAutomaticallyTestHelper extends AwSettingsTestHelp
er<Boolean> { | 337 class AwSettingsLoadImagesAutomaticallyTestHelper extends AwSettingsTestHelp
er<Boolean> { |
338 private ImagePageGenerator mGenerator; | 338 private ImagePageGenerator mGenerator; |
339 | 339 |
340 AwSettingsLoadImagesAutomaticallyTestHelper( | 340 AwSettingsLoadImagesAutomaticallyTestHelper( |
341 AwTestContainerView containerView, | 341 AwTestContainerView containerView, |
342 TestAwContentsClient contentViewClient, | 342 TestAwContentsClient contentViewClient, |
(...skipping 18 matching lines...) Expand all Loading... |
361 } | 361 } |
362 | 362 |
363 @Override | 363 @Override |
364 protected void setCurrentValue(Boolean value) { | 364 protected void setCurrentValue(Boolean value) { |
365 mAwSettings.setLoadsImagesAutomatically(value); | 365 mAwSettings.setLoadsImagesAutomatically(value); |
366 } | 366 } |
367 | 367 |
368 @Override | 368 @Override |
369 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { | 369 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { |
370 loadDataSync(mGenerator.getPageSource()); | 370 loadDataSync(mGenerator.getPageSource()); |
371 assertEquals(value == ENABLED ? | 371 assertEquals(value == ENABLED |
372 ImagePageGenerator.IMAGE_LOADED_STRING : | 372 ? ImagePageGenerator.IMAGE_LOADED_STRING |
373 ImagePageGenerator.IMAGE_NOT_LOADED_STRING, | 373 : ImagePageGenerator.IMAGE_NOT_LOADED_STRING, |
374 getTitleOnUiThread()); | 374 getTitleOnUiThread()); |
375 } | 375 } |
376 } | 376 } |
377 | 377 |
378 | 378 |
379 class AwSettingsImagesEnabledHelper extends AwSettingsTestHelper<Boolean> { | 379 class AwSettingsImagesEnabledHelper extends AwSettingsTestHelper<Boolean> { |
380 | 380 |
381 AwSettingsImagesEnabledHelper( | 381 AwSettingsImagesEnabledHelper( |
382 AwTestContainerView containerView, | 382 AwTestContainerView containerView, |
383 TestAwContentsClient contentViewClient, | 383 TestAwContentsClient contentViewClient, |
384 TestWebServer webServer, | 384 TestWebServer webServer, |
(...skipping 23 matching lines...) Expand all Loading... |
408 mAwSettings.setImagesEnabled(value); | 408 mAwSettings.setImagesEnabled(value); |
409 } | 409 } |
410 | 410 |
411 @Override | 411 @Override |
412 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { | 412 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { |
413 final String httpImageUrl = mGenerator.getPageUrl(mWebServer); | 413 final String httpImageUrl = mGenerator.getPageUrl(mWebServer); |
414 AwSettingsTest.this.loadUrlSync( | 414 AwSettingsTest.this.loadUrlSync( |
415 mAwContents, | 415 mAwContents, |
416 mContentViewClient.getOnPageFinishedHelper(), | 416 mContentViewClient.getOnPageFinishedHelper(), |
417 httpImageUrl); | 417 httpImageUrl); |
418 assertEquals(value == ENABLED ? | 418 assertEquals(value == ENABLED |
419 ImagePageGenerator.IMAGE_LOADED_STRING : | 419 ? ImagePageGenerator.IMAGE_LOADED_STRING |
420 ImagePageGenerator.IMAGE_NOT_LOADED_STRING, | 420 : ImagePageGenerator.IMAGE_NOT_LOADED_STRING, |
421 getTitleOnUiThread()); | 421 getTitleOnUiThread()); |
422 } | 422 } |
423 | 423 |
424 private TestWebServer mWebServer; | 424 private TestWebServer mWebServer; |
425 private ImagePageGenerator mGenerator; | 425 private ImagePageGenerator mGenerator; |
426 } | 426 } |
427 | 427 |
428 class AwSettingsDefaultTextEncodingTestHelper extends AwSettingsTestHelper<S
tring> { | 428 class AwSettingsDefaultTextEncodingTestHelper extends AwSettingsTestHelper<S
tring> { |
429 AwSettingsDefaultTextEncodingTestHelper( | 429 AwSettingsDefaultTextEncodingTestHelper( |
430 AwTestContainerView containerView, | 430 AwTestContainerView containerView, |
431 TestAwContentsClient contentViewClient) throws Throwable { | 431 TestAwContentsClient contentViewClient) throws Throwable { |
(...skipping 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
881 mAwSettings.setAllowContentAccess(value); | 881 mAwSettings.setAllowContentAccess(value); |
882 } | 882 } |
883 | 883 |
884 @Override | 884 @Override |
885 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { | 885 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { |
886 AwSettingsTest.this.resetResourceRequestCountInContentProvider(TARGE
T); | 886 AwSettingsTest.this.resetResourceRequestCountInContentProvider(TARGE
T); |
887 final String fileName = mTempDir + "/" + TARGET + ".html"; | 887 final String fileName = mTempDir + "/" + TARGET + ".html"; |
888 try { | 888 try { |
889 TestFileUtil.createNewHtmlFile(fileName, | 889 TestFileUtil.createNewHtmlFile(fileName, |
890 TARGET, | 890 TARGET, |
891 "<img src=\"" + | 891 "<img src=\"" |
892 // Adding a query avoids hitting a cached image, and als
o verifies | 892 // Adding a query avoids hitting a cached image, and als
o verifies |
893 // that content URL query parameters are ignored when ac
cessing | 893 // that content URL query parameters are ignored when ac
cessing |
894 // a content provider. | 894 // a content provider. |
895 AwSettingsTest.this.createContentUrl(TARGET + "?id=" + m
Index) + "\">"); | 895 + AwSettingsTest.this.createContentUrl(TARGET + "?id=" +
mIndex) + "\">"); |
896 mIndex += 2; | 896 mIndex += 2; |
897 loadUrlSync("file://" + fileName); | 897 loadUrlSync("file://" + fileName); |
898 if (value == ENABLED) { | 898 if (value == ENABLED) { |
899 AwSettingsTest.this.ensureResourceRequestCountInContentProvi
der(TARGET, 1); | 899 AwSettingsTest.this.ensureResourceRequestCountInContentProvi
der(TARGET, 1); |
900 } else { | 900 } else { |
901 AwSettingsTest.this.ensureResourceRequestCountInContentProvi
der(TARGET, 0); | 901 AwSettingsTest.this.ensureResourceRequestCountInContentProvi
der(TARGET, 0); |
902 } | 902 } |
903 } finally { | 903 } finally { |
904 TestFileUtil.deleteFile(fileName); | 904 TestFileUtil.deleteFile(fileName); |
905 } | 905 } |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
947 mNeedToWaitForFontSizeChange = false; | 947 mNeedToWaitForFontSizeChange = false; |
948 } | 948 } |
949 return Float.parseFloat(getTitleOnUiThread()); | 949 return Float.parseFloat(getTitleOnUiThread()); |
950 } | 950 } |
951 | 951 |
952 protected String getData() { | 952 protected String getData() { |
953 DeviceDisplayInfo deviceInfo = DeviceDisplayInfo.create(mContext); | 953 DeviceDisplayInfo deviceInfo = DeviceDisplayInfo.create(mContext); |
954 int displayWidth = (int) (deviceInfo.getDisplayWidth() / deviceInfo.
getDIPScale()); | 954 int displayWidth = (int) (deviceInfo.getDisplayWidth() / deviceInfo.
getDIPScale()); |
955 int layoutWidth = (int) (displayWidth * 2.5f); // Use 2.5 as autosiz
ing layout tests do. | 955 int layoutWidth = (int) (displayWidth * 2.5f); // Use 2.5 as autosiz
ing layout tests do. |
956 StringBuilder sb = new StringBuilder(); | 956 StringBuilder sb = new StringBuilder(); |
957 sb.append("<html>" + | 957 sb.append("<html>" |
958 "<head>" + | 958 + "<head>" |
959 "<meta name=\"viewport\" content=\"width=" + layoutWidth + "
\">" + | 959 + "<meta name=\"viewport\" content=\"width=" + layoutWidth +
"\">" |
960 "<style>" + | 960 + "<style>" |
961 "body { width: " + layoutWidth + "px; margin: 0; overflow-y:
hidden; }" + | 961 + "body { width: " + layoutWidth + "px; margin: 0; overflow-
y: hidden; }" |
962 "</style>" + | 962 + "</style>" |
963 "<script>" + | 963 + "<script>" |
964 "function setTitleToActualFontSize() {" + | 964 + "function setTitleToActualFontSize() {" |
965 // parseFloat is used to trim out the "px" suffix. | 965 // parseFloat is used to trim out the "px" suffix. |
966 " document.title = parseFloat(getComputedStyle(" + | 966 + " document.title = parseFloat(getComputedStyle(" |
967 " document.getElementById('par')).getPropertyValue('font-
size'));" + | 967 + " document.getElementById('par')).getPropertyValue('fon
t-size'));" |
968 "}</script></head>" + | 968 + "}</script></head>" |
969 "<body>" + | 969 + "<body>" |
970 "<p id=\"par\" style=\"font-size:"); | 970 + "<p id=\"par\" style=\"font-size:"); |
971 sb.append(PARAGRAPH_FONT_SIZE); | 971 sb.append(PARAGRAPH_FONT_SIZE); |
972 sb.append("px;\">"); | 972 sb.append("px;\">"); |
973 // Make the paragraph wide enough for being processed by the font au
tosizer. | 973 // Make the paragraph wide enough for being processed by the font au
tosizer. |
974 for (int i = 0; i < 500; i++) { | 974 for (int i = 0; i < 500; i++) { |
975 sb.append("Hello, World! "); | 975 sb.append("Hello, World! "); |
976 } | 976 } |
977 sb.append("</p></body></html>"); | 977 sb.append("</p></body></html>"); |
978 return sb.toString(); | 978 return sb.toString(); |
979 } | 979 } |
980 | 980 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1058 super.setCurrentValue(value); | 1058 super.setCurrentValue(value); |
1059 mAwSettings.setTextZoom(value); | 1059 mAwSettings.setTextZoom(value); |
1060 } | 1060 } |
1061 | 1061 |
1062 @Override | 1062 @Override |
1063 protected void doEnsureSettingHasValue(Integer value) throws Throwable { | 1063 protected void doEnsureSettingHasValue(Integer value) throws Throwable { |
1064 final float actualFontSize = getActualFontSize(); | 1064 final float actualFontSize = getActualFontSize(); |
1065 // Ensure that actual vs. initial font size ratio is similar to actu
al vs. initial | 1065 // Ensure that actual vs. initial font size ratio is similar to actu
al vs. initial |
1066 // text zoom values ratio. | 1066 // text zoom values ratio. |
1067 final float ratiosDelta = Math.abs( | 1067 final float ratiosDelta = Math.abs( |
1068 (actualFontSize / mInitialActualFontSize) - | 1068 (actualFontSize / mInitialActualFontSize) |
1069 (value / (float) INITIAL_TEXT_ZOOM)); | 1069 - (value / (float) INITIAL_TEXT_ZOOM)); |
1070 assertTrue( | 1070 assertTrue( |
1071 "|(" + actualFontSize + " / " + mInitialActualFontSize + ")
- (" + | 1071 "|(" + actualFontSize + " / " + mInitialActualFontSize + ")
- (" |
1072 value + " / " + INITIAL_TEXT_ZOOM + ")| = " + ratiosDelta, | 1072 + value + " / " + INITIAL_TEXT_ZOOM + ")| = " + ratiosDelta, |
1073 ratiosDelta <= 0.2f); | 1073 ratiosDelta <= 0.2f); |
1074 } | 1074 } |
1075 } | 1075 } |
1076 | 1076 |
1077 class AwSettingsTextZoomAutosizingTestHelper | 1077 class AwSettingsTextZoomAutosizingTestHelper |
1078 extends AwSettingsTextAutosizingTestHelper<Integer> { | 1078 extends AwSettingsTextAutosizingTestHelper<Integer> { |
1079 private static final int INITIAL_TEXT_ZOOM = 100; | 1079 private static final int INITIAL_TEXT_ZOOM = 100; |
1080 private final float mInitialActualFontSize; | 1080 private final float mInitialActualFontSize; |
1081 | 1081 |
1082 AwSettingsTextZoomAutosizingTestHelper( | 1082 AwSettingsTextZoomAutosizingTestHelper( |
(...skipping 26 matching lines...) Expand all Loading... |
1109 super.setCurrentValue(value); | 1109 super.setCurrentValue(value); |
1110 mAwSettings.setTextZoom(value); | 1110 mAwSettings.setTextZoom(value); |
1111 } | 1111 } |
1112 | 1112 |
1113 @Override | 1113 @Override |
1114 protected void doEnsureSettingHasValue(Integer value) throws Throwable { | 1114 protected void doEnsureSettingHasValue(Integer value) throws Throwable { |
1115 final float actualFontSize = getActualFontSize(); | 1115 final float actualFontSize = getActualFontSize(); |
1116 // Ensure that actual vs. initial font size ratio is similar to actu
al vs. initial | 1116 // Ensure that actual vs. initial font size ratio is similar to actu
al vs. initial |
1117 // text zoom values ratio. | 1117 // text zoom values ratio. |
1118 final float ratiosDelta = Math.abs( | 1118 final float ratiosDelta = Math.abs( |
1119 (actualFontSize / mInitialActualFontSize) - | 1119 (actualFontSize / mInitialActualFontSize) |
1120 (value / (float) INITIAL_TEXT_ZOOM)); | 1120 - (value / (float) INITIAL_TEXT_ZOOM)); |
1121 assertTrue( | 1121 assertTrue( |
1122 "|(" + actualFontSize + " / " + mInitialActualFontSize + ")
- (" + | 1122 "|(" + actualFontSize + " / " + mInitialActualFontSize + ")
- (" |
1123 value + " / " + INITIAL_TEXT_ZOOM + ")| = " + ratiosDelta, | 1123 + value + " / " + INITIAL_TEXT_ZOOM + ")| = " + ratiosDelta, |
1124 ratiosDelta <= 0.2f); | 1124 ratiosDelta <= 0.2f); |
1125 } | 1125 } |
1126 } | 1126 } |
1127 | 1127 |
1128 class AwSettingsJavaScriptPopupsTestHelper extends AwSettingsTestHelper<Bool
ean> { | 1128 class AwSettingsJavaScriptPopupsTestHelper extends AwSettingsTestHelper<Bool
ean> { |
1129 private static final String POPUP_ENABLED = "Popup enabled"; | 1129 private static final String POPUP_ENABLED = "Popup enabled"; |
1130 private static final String POPUP_BLOCKED = "Popup blocked"; | 1130 private static final String POPUP_BLOCKED = "Popup blocked"; |
1131 | 1131 |
1132 AwSettingsJavaScriptPopupsTestHelper( | 1132 AwSettingsJavaScriptPopupsTestHelper( |
1133 AwTestContainerView containerView, | 1133 AwTestContainerView containerView, |
(...skipping 30 matching lines...) Expand all Loading... |
1164 public Boolean call() throws Exception { | 1164 public Boolean call() throws Exception { |
1165 String title = getTitleOnUiThread(); | 1165 String title = getTitleOnUiThread(); |
1166 return expectPopupEnabled ? POPUP_ENABLED.equals(title) : | 1166 return expectPopupEnabled ? POPUP_ENABLED.equals(title) : |
1167 POPUP_BLOCKED.equals(title); | 1167 POPUP_BLOCKED.equals(title); |
1168 } | 1168 } |
1169 }); | 1169 }); |
1170 assertEquals(value ? POPUP_ENABLED : POPUP_BLOCKED, getTitleOnUiThre
ad()); | 1170 assertEquals(value ? POPUP_ENABLED : POPUP_BLOCKED, getTitleOnUiThre
ad()); |
1171 } | 1171 } |
1172 | 1172 |
1173 private String getData() { | 1173 private String getData() { |
1174 return "<html><head>" + | 1174 return "<html><head>" |
1175 "<script>" + | 1175 + "<script>" |
1176 " function tryOpenWindow() {" + | 1176 + " function tryOpenWindow() {" |
1177 " var newWindow = window.open(" + | 1177 + " var newWindow = window.open(" |
1178 " 'data:text/html;charset=utf-8," + | 1178 + " 'data:text/html;charset=utf-8," |
1179 " <html><head><title>" + POPUP_ENABLED + "</title>
</head></html>');" + | 1179 + " <html><head><title>" + POPUP_ENABLED + "</titl
e></head></html>');" |
1180 " if (!newWindow) document.title = '" + POPUP_BLOCKED
+ "';" + | 1180 + " if (!newWindow) document.title = '" + POPUP_BLOCK
ED + "';" |
1181 " }" + | 1181 + " }" |
1182 "</script></head>" + | 1182 + "</script></head>" |
1183 "<body onload='tryOpenWindow()'></body></html>"; | 1183 + "<body onload='tryOpenWindow()'></body></html>"; |
1184 } | 1184 } |
1185 } | 1185 } |
1186 | 1186 |
1187 class AwSettingsCacheModeTestHelper extends AwSettingsTestHelper<Integer> { | 1187 class AwSettingsCacheModeTestHelper extends AwSettingsTestHelper<Integer> { |
1188 | 1188 |
1189 AwSettingsCacheModeTestHelper( | 1189 AwSettingsCacheModeTestHelper( |
1190 AwTestContainerView containerView, | 1190 AwTestContainerView containerView, |
1191 TestAwContentsClient contentViewClient, | 1191 TestAwContentsClient contentViewClient, |
1192 int index, | 1192 int index, |
1193 TestWebServer webServer) throws Throwable { | 1193 TestWebServer webServer) throws Throwable { |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1275 loadDataSync(getData()); | 1275 loadDataSync(getData()); |
1276 final String bodyWidth = getTitleOnUiThread(); | 1276 final String bodyWidth = getTitleOnUiThread(); |
1277 if (value) { | 1277 if (value) { |
1278 assertTrue(bodyWidth, VIEWPORT_TAG_LAYOUT_WIDTH.equals(bodyWidth
)); | 1278 assertTrue(bodyWidth, VIEWPORT_TAG_LAYOUT_WIDTH.equals(bodyWidth
)); |
1279 } else { | 1279 } else { |
1280 assertFalse(bodyWidth, VIEWPORT_TAG_LAYOUT_WIDTH.equals(bodyWidt
h)); | 1280 assertFalse(bodyWidth, VIEWPORT_TAG_LAYOUT_WIDTH.equals(bodyWidt
h)); |
1281 } | 1281 } |
1282 } | 1282 } |
1283 | 1283 |
1284 private String getData() { | 1284 private String getData() { |
1285 return "<html><head>" + | 1285 return "<html><head>" |
1286 "<meta name='viewport' content='width=" + VIEWPORT_TAG_LAYOU
T_WIDTH + "' />" + | 1286 + "<meta name='viewport' content='width=" + VIEWPORT_TAG_LAY
OUT_WIDTH + "' />" |
1287 "</head>" + | 1287 + "</head>" |
1288 "<body onload='document.title=document.body.clientWidth'></b
ody></html>"; | 1288 + "<body onload='document.title=document.body.clientWidth'><
/body></html>"; |
1289 } | 1289 } |
1290 } | 1290 } |
1291 | 1291 |
1292 class AwSettingsLoadWithOverviewModeTestHelper extends AwSettingsTestHelper<
Boolean> { | 1292 class AwSettingsLoadWithOverviewModeTestHelper extends AwSettingsTestHelper<
Boolean> { |
1293 private static final float DEFAULT_PAGE_SCALE = 1.0f; | 1293 private static final float DEFAULT_PAGE_SCALE = 1.0f; |
1294 | 1294 |
1295 AwSettingsLoadWithOverviewModeTestHelper( | 1295 AwSettingsLoadWithOverviewModeTestHelper( |
1296 AwTestContainerView containerView, | 1296 AwTestContainerView containerView, |
1297 TestAwContentsClient contentViewClient, | 1297 TestAwContentsClient contentViewClient, |
1298 boolean withViewPortTag) throws Throwable { | 1298 boolean withViewPortTag) throws Throwable { |
(...skipping 24 matching lines...) Expand all Loading... |
1323 mOnScaleChangedCallCount = | 1323 mOnScaleChangedCallCount = |
1324 mContentViewClient.getOnScaleChangedHelper().getCallCoun
t(); | 1324 mContentViewClient.getOnScaleChangedHelper().getCallCoun
t(); |
1325 } | 1325 } |
1326 mAwSettings.setLoadWithOverviewMode(value); | 1326 mAwSettings.setLoadWithOverviewMode(value); |
1327 } | 1327 } |
1328 | 1328 |
1329 @Override | 1329 @Override |
1330 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { | 1330 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { |
1331 loadDataSync(getData()); | 1331 loadDataSync(getData()); |
1332 if (mExpectScaleChange) { | 1332 if (mExpectScaleChange) { |
1333 mContentViewClient.getOnScaleChangedHelper(). | 1333 mContentViewClient.getOnScaleChangedHelper() |
1334 waitForCallback(mOnScaleChangedCallCount); | 1334 .waitForCallback(mOnScaleChangedCallCount); |
1335 mExpectScaleChange = false; | 1335 mExpectScaleChange = false; |
1336 } | 1336 } |
1337 float currentScale = AwSettingsTest.this.getScaleOnUiThread(mAwConte
nts); | 1337 float currentScale = AwSettingsTest.this.getScaleOnUiThread(mAwConte
nts); |
1338 if (value) { | 1338 if (value) { |
1339 assertTrue("Expected: " + currentScale + " < " + DEFAULT_PAGE_SC
ALE, | 1339 assertTrue("Expected: " + currentScale + " < " + DEFAULT_PAGE_SC
ALE, |
1340 currentScale < DEFAULT_PAGE_SCALE); | 1340 currentScale < DEFAULT_PAGE_SCALE); |
1341 } else { | 1341 } else { |
1342 assertEquals(DEFAULT_PAGE_SCALE, currentScale); | 1342 assertEquals(DEFAULT_PAGE_SCALE, currentScale); |
1343 } | 1343 } |
1344 } | 1344 } |
1345 | 1345 |
1346 private String getData() { | 1346 private String getData() { |
1347 return "<html><head>" + | 1347 return "<html><head>" |
1348 (mWithViewPortTag ? "<meta name='viewport' content='width=30
00' />" : "") + | 1348 + (mWithViewPortTag ? "<meta name='viewport' content='width=
3000' />" : "") |
1349 "</head>" + | 1349 + "</head>" |
1350 "<body></body></html>"; | 1350 + "<body></body></html>"; |
1351 } | 1351 } |
1352 | 1352 |
1353 private final boolean mWithViewPortTag; | 1353 private final boolean mWithViewPortTag; |
1354 private boolean mExpectScaleChange; | 1354 private boolean mExpectScaleChange; |
1355 private int mOnScaleChangedCallCount; | 1355 private int mOnScaleChangedCallCount; |
1356 } | 1356 } |
1357 | 1357 |
1358 class AwSettingsForceZeroLayoutHeightTestHelper extends AwSettingsTestHelper
<Boolean> { | 1358 class AwSettingsForceZeroLayoutHeightTestHelper extends AwSettingsTestHelper
<Boolean> { |
1359 | 1359 |
1360 AwSettingsForceZeroLayoutHeightTestHelper( | 1360 AwSettingsForceZeroLayoutHeightTestHelper( |
(...skipping 30 matching lines...) Expand all Loading... |
1391 loadDataSync(getData()); | 1391 loadDataSync(getData()); |
1392 int height = Integer.parseInt(getTitleOnUiThread()); | 1392 int height = Integer.parseInt(getTitleOnUiThread()); |
1393 if (value) { | 1393 if (value) { |
1394 assertEquals(0, height); | 1394 assertEquals(0, height); |
1395 } else { | 1395 } else { |
1396 assertTrue("Div should be at least 50px high, was: " + height, h
eight >= 50); | 1396 assertTrue("Div should be at least 50px high, was: " + height, h
eight >= 50); |
1397 } | 1397 } |
1398 } | 1398 } |
1399 | 1399 |
1400 private String getData() { | 1400 private String getData() { |
1401 return "<html><head>" + | 1401 return "<html><head>" |
1402 (mWithViewPortTag ? "<meta name='viewport' content='height=3
000' />" : "") + | 1402 + (mWithViewPortTag ? "<meta name='viewport' content='height
=3000' />" : "") |
1403 " <script type='text/javascript'> " + | 1403 + " <script type='text/javascript'> " |
1404 " window.addEventListener('load', function(event) { " + | 1404 + " window.addEventListener('load', function(event) { " |
1405 " document.title = document.getElementById('testDiv').
clientHeight; " + | 1405 + " document.title = document.getElementById('testDiv'
).clientHeight; " |
1406 " }); " + | 1406 + " }); " |
1407 " </script> " + | 1407 + " </script> " |
1408 "</head>" + | 1408 + "</head>" |
1409 "<body> " + | 1409 + "<body> " |
1410 " <div style='height:50px;'>test</div> " + | 1410 + " <div style='height:50px;'>test</div> " |
1411 " <div id='testDiv' style='height:100%;'></div> " + | 1411 + " <div id='testDiv' style='height:100%;'></div> " |
1412 "</body></html>"; | 1412 + "</body></html>"; |
1413 } | 1413 } |
1414 | 1414 |
1415 private final boolean mWithViewPortTag; | 1415 private final boolean mWithViewPortTag; |
1416 } | 1416 } |
1417 | 1417 |
1418 class AwSettingsZeroLayoutHeightDisablesViewportQuirkTestHelper extends | 1418 class AwSettingsZeroLayoutHeightDisablesViewportQuirkTestHelper extends |
1419 AwSettingsTestHelper<Boolean> { | 1419 AwSettingsTestHelper<Boolean> { |
1420 | 1420 |
1421 AwSettingsZeroLayoutHeightDisablesViewportQuirkTestHelper( | 1421 AwSettingsZeroLayoutHeightDisablesViewportQuirkTestHelper( |
1422 AwTestContainerView containerView, | 1422 AwTestContainerView containerView, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1454 loadDataSync(getData()); | 1454 loadDataSync(getData()); |
1455 int width = Integer.parseInt(getTitleOnUiThread()); | 1455 int width = Integer.parseInt(getTitleOnUiThread()); |
1456 if (value) { | 1456 if (value) { |
1457 assertEquals(displayWidth, width); | 1457 assertEquals(displayWidth, width); |
1458 } else { | 1458 } else { |
1459 assertEquals(3000, width); | 1459 assertEquals(3000, width); |
1460 } | 1460 } |
1461 } | 1461 } |
1462 | 1462 |
1463 private String getData() { | 1463 private String getData() { |
1464 return "<html><head>" + | 1464 return "<html><head>" |
1465 "<meta name='viewport' content='width=3000' />" + | 1465 + "<meta name='viewport' content='width=3000' />" |
1466 " <script type='text/javascript'> " + | 1466 + " <script type='text/javascript'> " |
1467 " window.addEventListener('load', function(event) { " + | 1467 + " window.addEventListener('load', function(event) { " |
1468 " document.title = document.documentElement.clientWidt
h; " + | 1468 + " document.title = document.documentElement.clientWi
dth; " |
1469 " }); " + | 1469 + " }); " |
1470 " </script> " + | 1470 + " </script> " |
1471 "</head>" + | 1471 + "</head>" |
1472 "<body> " + | 1472 + "<body> " |
1473 " <div style='height:50px;'>test</div> " + | 1473 + " <div style='height:50px;'>test</div> " |
1474 " <div id='testDiv' style='height:100%;'></div> " + | 1474 + " <div id='testDiv' style='height:100%;'></div> " |
1475 "</body></html>"; | 1475 + "</body></html>"; |
1476 } | 1476 } |
1477 } | 1477 } |
1478 | 1478 |
1479 // The test verifies that JavaScript is disabled upon WebView | 1479 // The test verifies that JavaScript is disabled upon WebView |
1480 // creation without accessing AwSettings. If the test passes, | 1480 // creation without accessing AwSettings. If the test passes, |
1481 // it means that WebView-specific web preferences configuration | 1481 // it means that WebView-specific web preferences configuration |
1482 // is applied on WebView creation. JS state is used, because it is | 1482 // is applied on WebView creation. JS state is used, because it is |
1483 // enabled by default in Chrome, but must be disabled by default | 1483 // enabled by default in Chrome, but must be disabled by default |
1484 // in WebView. | 1484 // in WebView. |
1485 @SmallTest | 1485 @SmallTest |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1619 @Feature({"AndroidWebView", "Preferences"}) | 1619 @Feature({"AndroidWebView", "Preferences"}) |
1620 public void testUserAgentStringDefault() throws Throwable { | 1620 public void testUserAgentStringDefault() throws Throwable { |
1621 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1621 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1622 final AwTestContainerView testContainerView = | 1622 final AwTestContainerView testContainerView = |
1623 createAwTestContainerViewOnMainSync(contentClient); | 1623 createAwTestContainerViewOnMainSync(contentClient); |
1624 final AwContents awContents = testContainerView.getAwContents(); | 1624 final AwContents awContents = testContainerView.getAwContents(); |
1625 AwSettings settings = getAwSettingsOnUiThread(awContents); | 1625 AwSettings settings = getAwSettingsOnUiThread(awContents); |
1626 final String actualUserAgentString = settings.getUserAgentString(); | 1626 final String actualUserAgentString = settings.getUserAgentString(); |
1627 assertEquals(actualUserAgentString, AwSettings.getDefaultUserAgent()); | 1627 assertEquals(actualUserAgentString, AwSettings.getDefaultUserAgent()); |
1628 final String patternString = | 1628 final String patternString = |
1629 "Mozilla/5\\.0 \\(Linux;( U;)? Android ([^;]+);( (\\w+)-(\\w+);)
?" + | 1629 "Mozilla/5\\.0 \\(Linux;( U;)? Android ([^;]+);( (\\w+)-(\\w+);)
?" |
1630 "\\s?(.*)\\sBuild/(.+)\\) AppleWebKit/(\\d+)\\.(\\d+) \\(KHTML,
like Gecko\\) " + | 1630 + "\\s?(.*)\\sBuild/(.+)\\) AppleWebKit/(\\d+)\\.(\\d+) \\(KHTML
, like Gecko\\) " |
1631 "Version/\\d+\\.\\d Chrome/\\d+\\.\\d+\\.\\d+\\.\\d+" + | 1631 + "Version/\\d+\\.\\d Chrome/\\d+\\.\\d+\\.\\d+\\.\\d+" |
1632 "( Mobile)? Safari/(\\d+)\\.(\\d+)"; | 1632 + "( Mobile)? Safari/(\\d+)\\.(\\d+)"; |
1633 final Pattern userAgentExpr = Pattern.compile(patternString); | 1633 final Pattern userAgentExpr = Pattern.compile(patternString); |
1634 Matcher patternMatcher = userAgentExpr.matcher(actualUserAgentString); | 1634 Matcher patternMatcher = userAgentExpr.matcher(actualUserAgentString); |
1635 assertTrue(String.format("User agent string did not match expected patte
rn. %nExpected " + | 1635 assertTrue(String.format("User agent string did not match expected patte
rn. %nExpected " |
1636 "pattern:%n%s%nActual:%n%s", patternString, actualUserAg
entString), | 1636 + "pattern:%n%s%nActual:%n%s", patternString, actualUser
AgentString), |
1637 patternMatcher.find()); | 1637 patternMatcher.find()); |
1638 // No country-language code token. | 1638 // No country-language code token. |
1639 assertEquals(null, patternMatcher.group(3)); | 1639 assertEquals(null, patternMatcher.group(3)); |
1640 if ("REL".equals(Build.VERSION.CODENAME)) { | 1640 if ("REL".equals(Build.VERSION.CODENAME)) { |
1641 // Model is only added in release builds | 1641 // Model is only added in release builds |
1642 assertEquals(Build.MODEL, patternMatcher.group(6)); | 1642 assertEquals(Build.MODEL, patternMatcher.group(6)); |
1643 // Release version is valid only in release builds | 1643 // Release version is valid only in release builds |
1644 assertEquals(Build.VERSION.RELEASE, patternMatcher.group(2)); | 1644 assertEquals(Build.VERSION.RELEASE, patternMatcher.group(2)); |
1645 } | 1645 } |
1646 assertEquals(Build.ID, patternMatcher.group(7)); | 1646 assertEquals(Build.ID, patternMatcher.group(7)); |
1647 } | 1647 } |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1685 final AwContents awContents = testContainerView.getAwContents(); | 1685 final AwContents awContents = testContainerView.getAwContents(); |
1686 final WebContents webContents = awContents.getWebContents(); | 1686 final WebContents webContents = awContents.getWebContents(); |
1687 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); | 1687 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); |
1688 AwSettings settings = getAwSettingsOnUiThread(awContents); | 1688 AwSettings settings = getAwSettingsOnUiThread(awContents); |
1689 settings.setJavaScriptEnabled(true); | 1689 settings.setJavaScriptEnabled(true); |
1690 final String defaultUserAgentString = settings.getUserAgentString(); | 1690 final String defaultUserAgentString = settings.getUserAgentString(); |
1691 final String customUserAgentString = "AwSettingsTest"; | 1691 final String customUserAgentString = "AwSettingsTest"; |
1692 // We are using different page titles to make sure that we are really | 1692 // We are using different page titles to make sure that we are really |
1693 // going back and forward between them. | 1693 // going back and forward between them. |
1694 final String pageTemplate = | 1694 final String pageTemplate = |
1695 "<html><head><title>%s</title></head>" + | 1695 "<html><head><title>%s</title></head>" |
1696 "<body onload='document.title+=navigator.userAgent'></body>" + | 1696 + "<body onload='document.title+=navigator.userAgent'></body>" |
1697 "</html>"; | 1697 + "</html>"; |
1698 final String page1Title = "Page1"; | 1698 final String page1Title = "Page1"; |
1699 final String page2Title = "Page2"; | 1699 final String page2Title = "Page2"; |
1700 final String page1 = String.format(pageTemplate, page1Title); | 1700 final String page1 = String.format(pageTemplate, page1Title); |
1701 final String page2 = String.format(pageTemplate, page2Title); | 1701 final String page2 = String.format(pageTemplate, page2Title); |
1702 settings.setUserAgentString(customUserAgentString); | 1702 settings.setUserAgentString(customUserAgentString); |
1703 loadDataSync( | 1703 loadDataSync( |
1704 awContents, onPageFinishedHelper, page1, "text/html", false); | 1704 awContents, onPageFinishedHelper, page1, "text/html", false); |
1705 assertEquals(page1Title + customUserAgentString, getTitleOnUiThread(awCo
ntents)); | 1705 assertEquals(page1Title + customUserAgentString, getTitleOnUiThread(awCo
ntents)); |
1706 loadDataSync( | 1706 loadDataSync( |
1707 awContents, onPageFinishedHelper, page2, "text/html", false); | 1707 awContents, onPageFinishedHelper, page2, "text/html", false); |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1885 } | 1885 } |
1886 | 1886 |
1887 @SmallTest | 1887 @SmallTest |
1888 @Feature({"AndroidWebView", "Preferences", "Navigation"}) | 1888 @Feature({"AndroidWebView", "Preferences", "Navigation"}) |
1889 public void testBlockingContentUrlsFromDataUrls() throws Throwable { | 1889 public void testBlockingContentUrlsFromDataUrls() throws Throwable { |
1890 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1890 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1891 final AwTestContainerView testContainerView = | 1891 final AwTestContainerView testContainerView = |
1892 createAwTestContainerViewOnMainSync(contentClient); | 1892 createAwTestContainerViewOnMainSync(contentClient); |
1893 final AwContents awContents = testContainerView.getAwContents(); | 1893 final AwContents awContents = testContainerView.getAwContents(); |
1894 final String target = "content_from_data"; | 1894 final String target = "content_from_data"; |
1895 final String page = "<html><body>" + | 1895 final String page = "<html><body>" |
1896 "<img src=\"" + | 1896 + "<img src=\"" |
1897 createContentUrl(target) + "\">" + | 1897 + createContentUrl(target) + "\">" |
1898 "</body></html>"; | 1898 + "</body></html>"; |
1899 resetResourceRequestCountInContentProvider(target); | 1899 resetResourceRequestCountInContentProvider(target); |
1900 loadDataSync( | 1900 loadDataSync( |
1901 awContents, | 1901 awContents, |
1902 contentClient.getOnPageFinishedHelper(), | 1902 contentClient.getOnPageFinishedHelper(), |
1903 page, | 1903 page, |
1904 "text/html", | 1904 "text/html", |
1905 false); | 1905 false); |
1906 ensureResourceRequestCountInContentProvider(target, 0); | 1906 ensureResourceRequestCountInContentProvider(target, 0); |
1907 } | 1907 } |
1908 | 1908 |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2006 String fileName = null; | 2006 String fileName = null; |
2007 TestWebServer webServer = TestWebServer.start(); | 2007 TestWebServer webServer = TestWebServer.start(); |
2008 try { | 2008 try { |
2009 // Set up http image. | 2009 // Set up http image. |
2010 final String httpPath = "/image.png"; | 2010 final String httpPath = "/image.png"; |
2011 final String imageUrl = webServer.setResponseBase64( | 2011 final String imageUrl = webServer.setResponseBase64( |
2012 httpPath, generator.getImageSourceNoAdvance(), | 2012 httpPath, generator.getImageSourceNoAdvance(), |
2013 CommonResources.getImagePngHeaders(true)); | 2013 CommonResources.getImagePngHeaders(true)); |
2014 | 2014 |
2015 // Set up file html that loads http iframe. | 2015 // Set up file html that loads http iframe. |
2016 String pageHtml = "<img src='" + imageUrl + "' " + | 2016 String pageHtml = "<img src='" + imageUrl + "' " |
2017 "onload=\"document.title='img_onload_fired';\" " + | 2017 + "onload=\"document.title='img_onload_fired';\" " |
2018 "onerror=\"document.title='img_onerror_fired';\" />"; | 2018 + "onerror=\"document.title='img_onerror_fired';\" />"; |
2019 Context context = getInstrumentation().getTargetContext(); | 2019 Context context = getInstrumentation().getTargetContext(); |
2020 fileName = context.getCacheDir() + "/block_network_loads_test.html"; | 2020 fileName = context.getCacheDir() + "/block_network_loads_test.html"; |
2021 TestFileUtil.deleteFile(fileName); // Remove leftover file if any. | 2021 TestFileUtil.deleteFile(fileName); // Remove leftover file if any. |
2022 TestFileUtil.createNewHtmlFile(fileName, "unset", pageHtml); | 2022 TestFileUtil.createNewHtmlFile(fileName, "unset", pageHtml); |
2023 | 2023 |
2024 // Actual test. Blocking should trigger onerror handler. | 2024 // Actual test. Blocking should trigger onerror handler. |
2025 awSettings.setBlockNetworkLoads(true); | 2025 awSettings.setBlockNetworkLoads(true); |
2026 loadUrlSync( | 2026 loadUrlSync( |
2027 awContents, | 2027 awContents, |
2028 contentClient.getOnPageFinishedHelper(), | 2028 contentClient.getOnPageFinishedHelper(), |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2072 final CallbackHelper callback = new CallbackHelper(); | 2072 final CallbackHelper callback = new CallbackHelper(); |
2073 awSettings.setJavaScriptEnabled(true); | 2073 awSettings.setJavaScriptEnabled(true); |
2074 | 2074 |
2075 TestWebServer webServer = TestWebServer.start(); | 2075 TestWebServer webServer = TestWebServer.start(); |
2076 try { | 2076 try { |
2077 final String httpPath = "/audio.mp3"; | 2077 final String httpPath = "/audio.mp3"; |
2078 // Don't care about the response is correct or not, just want | 2078 // Don't care about the response is correct or not, just want |
2079 // to know whether Url is accessed. | 2079 // to know whether Url is accessed. |
2080 final String audioUrl = webServer.setResponse(httpPath, "1", null); | 2080 final String audioUrl = webServer.setResponse(httpPath, "1", null); |
2081 | 2081 |
2082 String pageHtml = "<html><body><audio controls src='" + audioUrl + "
' " + | 2082 String pageHtml = "<html><body><audio controls src='" + audioUrl + "
' " |
2083 "oncanplay=\"AudioEvent.onCanPlay();\" " + | 2083 + "oncanplay=\"AudioEvent.onCanPlay();\" " |
2084 "onerror=\"AudioEvent.onError();\" /> </body></html>"; | 2084 + "onerror=\"AudioEvent.onError();\" /> </body></html>"; |
2085 // Actual test. Blocking should trigger onerror handler. | 2085 // Actual test. Blocking should trigger onerror handler. |
2086 awSettings.setBlockNetworkLoads(true); | 2086 awSettings.setBlockNetworkLoads(true); |
2087 runTestOnUiThread(new Runnable() { | 2087 runTestOnUiThread(new Runnable() { |
2088 @Override | 2088 @Override |
2089 public void run() { | 2089 public void run() { |
2090 awContents.addPossiblyUnsafeJavascriptInterface( | 2090 awContents.addPossiblyUnsafeJavascriptInterface( |
2091 new AudioEvent(callback), "AudioEvent", null); | 2091 new AudioEvent(callback), "AudioEvent", null); |
2092 } | 2092 } |
2093 }); | 2093 }); |
2094 int count = callback.getCallCount(); | 2094 int count = callback.getCallCount(); |
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2496 new AwSettingsUseWideViewportTestHelper(views.getContainer0(), v
iews.getClient0()), | 2496 new AwSettingsUseWideViewportTestHelper(views.getContainer0(), v
iews.getClient0()), |
2497 new AwSettingsUseWideViewportTestHelper(views.getContainer1(), v
iews.getClient1())); | 2497 new AwSettingsUseWideViewportTestHelper(views.getContainer1(), v
iews.getClient1())); |
2498 } | 2498 } |
2499 | 2499 |
2500 private void useWideViewportLayoutWidthTest( | 2500 private void useWideViewportLayoutWidthTest( |
2501 AwTestContainerView testContainer, CallbackHelper onPageFinishedHelp
er) | 2501 AwTestContainerView testContainer, CallbackHelper onPageFinishedHelp
er) |
2502 throws Throwable { | 2502 throws Throwable { |
2503 final AwContents awContents = testContainer.getAwContents(); | 2503 final AwContents awContents = testContainer.getAwContents(); |
2504 AwSettings settings = getAwSettingsOnUiThread(awContents); | 2504 AwSettings settings = getAwSettingsOnUiThread(awContents); |
2505 | 2505 |
2506 final String pageTemplate = "<html><head>%s</head>" + | 2506 final String pageTemplate = "<html><head>%s</head>" |
2507 "<body onload='document.title=document.body.clientWidth'></body>
</html>"; | 2507 + "<body onload='document.title=document.body.clientWidth'></bod
y></html>"; |
2508 final String pageNoViewport = String.format(pageTemplate, ""); | 2508 final String pageNoViewport = String.format(pageTemplate, ""); |
2509 final String pageViewportDeviceWidth = String.format( | 2509 final String pageViewportDeviceWidth = String.format( |
2510 pageTemplate, | 2510 pageTemplate, |
2511 "<meta name='viewport' content='width=device-width' />"); | 2511 "<meta name='viewport' content='width=device-width' />"); |
2512 final String viewportTagSpecifiedWidth = "3000"; | 2512 final String viewportTagSpecifiedWidth = "3000"; |
2513 final String pageViewportSpecifiedWidth = String.format( | 2513 final String pageViewportSpecifiedWidth = String.format( |
2514 pageTemplate, | 2514 pageTemplate, |
2515 "<meta name='viewport' content='width=" + viewportTagSpecifiedWi
dth + "' />"); | 2515 "<meta name='viewport' content='width=" + viewportTagSpecifiedWi
dth + "' />"); |
2516 | 2516 |
2517 DeviceDisplayInfo deviceInfo = DeviceDisplayInfo.create(testContainer.ge
tContext()); | 2517 DeviceDisplayInfo deviceInfo = DeviceDisplayInfo.create(testContainer.ge
tContext()); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2579 createAwTestContainerViewOnMainSync(contentClient); | 2579 createAwTestContainerViewOnMainSync(contentClient); |
2580 final AwContents awContents = testContainerView.getAwContents(); | 2580 final AwContents awContents = testContainerView.getAwContents(); |
2581 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); | 2581 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); |
2582 AwSettings settings = getAwSettingsOnUiThread(awContents); | 2582 AwSettings settings = getAwSettingsOnUiThread(awContents); |
2583 settings.setBuiltInZoomControls(true); | 2583 settings.setBuiltInZoomControls(true); |
2584 | 2584 |
2585 DeviceDisplayInfo deviceInfo = | 2585 DeviceDisplayInfo deviceInfo = |
2586 DeviceDisplayInfo.create(testContainerView.getContext()); | 2586 DeviceDisplayInfo.create(testContainerView.getContext()); |
2587 int displayWidth = (int) (deviceInfo.getDisplayWidth() / deviceInfo.getD
IPScale()); | 2587 int displayWidth = (int) (deviceInfo.getDisplayWidth() / deviceInfo.getD
IPScale()); |
2588 int layoutWidth = displayWidth * 2; | 2588 int layoutWidth = displayWidth * 2; |
2589 final String page = "<html>" + | 2589 final String page = "<html>" |
2590 "<head><meta name='viewport' content='width=" + layoutWidth + "'
>" + | 2590 + "<head><meta name='viewport' content='width=" + layoutWidth +
"'>" |
2591 "<style> body { width: " + layoutWidth + "px; }</style></head>"
+ | 2591 + "<style> body { width: " + layoutWidth + "px; }</style></head>
" |
2592 "<body>Page Text</body></html>"; | 2592 + "<body>Page Text</body></html>"; |
2593 | 2593 |
2594 assertFalse(settings.getUseWideViewPort()); | 2594 assertFalse(settings.getUseWideViewPort()); |
2595 // Without wide viewport the <meta viewport> tag will be ignored by WebV
iew, | 2595 // Without wide viewport the <meta viewport> tag will be ignored by WebV
iew, |
2596 // but it doesn't really matter as we don't expect double tap to change
the scale. | 2596 // but it doesn't really matter as we don't expect double tap to change
the scale. |
2597 loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false)
; | 2597 loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false)
; |
2598 final float initialScale = getScaleOnUiThread(awContents); | 2598 final float initialScale = getScaleOnUiThread(awContents); |
2599 simulateDoubleTapCenterOfWebViewOnUiThread(testContainerView); | 2599 simulateDoubleTapCenterOfWebViewOnUiThread(testContainerView); |
2600 Thread.sleep(1000); | 2600 Thread.sleep(1000); |
2601 assertEquals(initialScale, getScaleOnUiThread(awContents)); | 2601 assertEquals(initialScale, getScaleOnUiThread(awContents)); |
2602 | 2602 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2675 final AwSettings awSettings = getAwSettingsOnUiThread(awContents); | 2675 final AwSettings awSettings = getAwSettingsOnUiThread(awContents); |
2676 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); | 2676 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); |
2677 | 2677 |
2678 WindowManager wm = (WindowManager) getInstrumentation().getTargetContext
() | 2678 WindowManager wm = (WindowManager) getInstrumentation().getTargetContext
() |
2679 .getSystemService(Context.WINDOW_SERVICE); | 2679 .getSystemService(Context.WINDOW_SERVICE); |
2680 Point screenSize = new Point(); | 2680 Point screenSize = new Point(); |
2681 wm.getDefaultDisplay().getSize(screenSize); | 2681 wm.getDefaultDisplay().getSize(screenSize); |
2682 // Make sure after 50% scale, page width still larger than screen. | 2682 // Make sure after 50% scale, page width still larger than screen. |
2683 int height = screenSize.y * 2 + 1; | 2683 int height = screenSize.y * 2 + 1; |
2684 int width = screenSize.x * 2 + 1; | 2684 int width = screenSize.x * 2 + 1; |
2685 final String page = "<html><body>" + | 2685 final String page = "<html><body>" |
2686 "<p style='height:" + height + "px;width:" + width + "px'>" + | 2686 + "<p style='height:" + height + "px;width:" + width + "px'>" |
2687 "testSetInitialScale</p></body></html>"; | 2687 + "testSetInitialScale</p></body></html>"; |
2688 final float defaultScale = | 2688 final float defaultScale = |
2689 getInstrumentation().getTargetContext().getResources().getDispla
yMetrics().density; | 2689 getInstrumentation().getTargetContext().getResources().getDispla
yMetrics().density; |
2690 | 2690 |
2691 assertEquals(defaultScale, getPixelScaleOnUiThread(awContents), .01f); | 2691 assertEquals(defaultScale, getPixelScaleOnUiThread(awContents), .01f); |
2692 loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false)
; | 2692 loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false)
; |
2693 assertEquals(defaultScale, getPixelScaleOnUiThread(awContents), .01f); | 2693 assertEquals(defaultScale, getPixelScaleOnUiThread(awContents), .01f); |
2694 | 2694 |
2695 int onScaleChangedCallCount = contentClient.getOnScaleChangedHelper().ge
tCallCount(); | 2695 int onScaleChangedCallCount = contentClient.getOnScaleChangedHelper().ge
tCallCount(); |
2696 awSettings.setInitialPageScale(50); | 2696 awSettings.setInitialPageScale(50); |
2697 loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false)
; | 2697 loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false)
; |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2749 getInstrumentation().runOnMainSync(new Runnable() { | 2749 getInstrumentation().runOnMainSync(new Runnable() { |
2750 @Override | 2750 @Override |
2751 public void run() { | 2751 public void run() { |
2752 AwSettings awSettings = awContents.getSettings(); | 2752 AwSettings awSettings = awContents.getSettings(); |
2753 awSettings.setDefaultVideoPosterURL(defaultVideoPosterUrl); | 2753 awSettings.setDefaultVideoPosterURL(defaultVideoPosterUrl); |
2754 } | 2754 } |
2755 }); | 2755 }); |
2756 VideoTestWebServer webServer = new VideoTestWebServer( | 2756 VideoTestWebServer webServer = new VideoTestWebServer( |
2757 getInstrumentation().getTargetContext()); | 2757 getInstrumentation().getTargetContext()); |
2758 try { | 2758 try { |
2759 String data = "<html><head><body>" + | 2759 String data = "<html><head><body>" |
2760 "<video id='video' control src='" + | 2760 + "<video id='video' control src='" |
2761 webServer.getOnePixelOneFrameWebmURL() + "' /> </body></html
>"; | 2761 + webServer.getOnePixelOneFrameWebmURL() + "' /> </body></ht
ml>"; |
2762 loadDataAsync(awContents, data, "text/html", false); | 2762 loadDataAsync(awContents, data, "text/html", false); |
2763 videoPosterAccessedCallbackHelper.waitForCallback(0, 1, 20, TimeUnit
.SECONDS); | 2763 videoPosterAccessedCallbackHelper.waitForCallback(0, 1, 20, TimeUnit
.SECONDS); |
2764 } finally { | 2764 } finally { |
2765 if (webServer.getTestWebServer() != null) { | 2765 if (webServer.getTestWebServer() != null) { |
2766 webServer.getTestWebServer().shutdown(); | 2766 webServer.getTestWebServer().shutdown(); |
2767 } | 2767 } |
2768 } | 2768 } |
2769 } | 2769 } |
2770 | 2770 |
2771 @SmallTest | 2771 @SmallTest |
(...skipping 17 matching lines...) Expand all Loading... |
2789 try { | 2789 try { |
2790 httpsServer = TestWebServer.startSsl(); | 2790 httpsServer = TestWebServer.startSsl(); |
2791 httpServer = TestWebServer.start(); | 2791 httpServer = TestWebServer.start(); |
2792 | 2792 |
2793 final String jsUrl = "/insecure.js"; | 2793 final String jsUrl = "/insecure.js"; |
2794 final String imageUrl = "/insecure.png"; | 2794 final String imageUrl = "/insecure.png"; |
2795 final String secureUrl = "/secure.html"; | 2795 final String secureUrl = "/secure.html"; |
2796 httpServer.setResponse(jsUrl, "window.loaded_js = 42;", null); | 2796 httpServer.setResponse(jsUrl, "window.loaded_js = 42;", null); |
2797 httpServer.setResponseBase64(imageUrl, CommonResources.FAVICON_DATA_
BASE64, null); | 2797 httpServer.setResponseBase64(imageUrl, CommonResources.FAVICON_DATA_
BASE64, null); |
2798 | 2798 |
2799 final String jsHtml = "<script src=\"" + httpServer.getResponseUrl(j
sUrl) + | 2799 final String jsHtml = "<script src=\"" + httpServer.getResponseUrl(j
sUrl) |
2800 "\"></script>"; | 2800 + "\"></script>"; |
2801 final String imageHtml = "<img src=\"" + httpServer.getResponseUrl(i
mageUrl) + "\" />"; | 2801 final String imageHtml = "<img src=\"" + httpServer.getResponseUrl(i
mageUrl) + "\" />"; |
2802 final String secureHtml = "<body>" + imageHtml + " " + jsHtml + "</b
ody>"; | 2802 final String secureHtml = "<body>" + imageHtml + " " + jsHtml + "</b
ody>"; |
2803 | 2803 |
2804 String fullSecureUrl = httpsServer.setResponse(secureUrl, secureHtml
, null); | 2804 String fullSecureUrl = httpsServer.setResponse(secureUrl, secureHtml
, null); |
2805 | 2805 |
2806 awSettings.setMixedContentMode(AwSettings.MIXED_CONTENT_NEVER_ALLOW)
; | 2806 awSettings.setMixedContentMode(AwSettings.MIXED_CONTENT_NEVER_ALLOW)
; |
2807 loadUrlSync(awContents, contentClient.getOnPageFinishedHelper(), ful
lSecureUrl); | 2807 loadUrlSync(awContents, contentClient.getOnPageFinishedHelper(), ful
lSecureUrl); |
2808 assertEquals(1, httpsServer.getRequestCount(secureUrl)); | 2808 assertEquals(1, httpsServer.getRequestCount(secureUrl)); |
2809 assertEquals(0, httpServer.getRequestCount(jsUrl)); | 2809 assertEquals(0, httpServer.getRequestCount(jsUrl)); |
2810 assertEquals(0, httpServer.getRequestCount(imageUrl)); | 2810 assertEquals(0, httpServer.getRequestCount(imageUrl)); |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2929 return new ViewPair( | 2929 return new ViewPair( |
2930 createAwTestContainerViewOnMainSync(client0, supportsLegacyQuirks), | 2930 createAwTestContainerViewOnMainSync(client0, supportsLegacyQuirks), |
2931 client0, | 2931 client0, |
2932 createAwTestContainerViewOnMainSync(client1, supportsLegacyQuirks), | 2932 createAwTestContainerViewOnMainSync(client1, supportsLegacyQuirks), |
2933 client1); | 2933 client1); |
2934 } | 2934 } |
2935 | 2935 |
2936 static void assertFileIsReadable(String filePath) { | 2936 static void assertFileIsReadable(String filePath) { |
2937 File file = new File(filePath); | 2937 File file = new File(filePath); |
2938 try { | 2938 try { |
2939 assertTrue("Test file \"" + filePath + "\" is not readable." + | 2939 assertTrue("Test file \"" + filePath + "\" is not readable." |
2940 "Please make sure that files from android_webview/test/data/
device_files/ " + | 2940 + "Please make sure that files from android_webview/test/dat
a/device_files/ " |
2941 "has been pushed to the device before testing", | 2941 + "has been pushed to the device before testing", |
2942 file.canRead()); | 2942 file.canRead()); |
2943 } catch (SecurityException e) { | 2943 } catch (SecurityException e) { |
2944 fail("Got a SecurityException for \"" + filePath + "\": " + e.toStri
ng()); | 2944 fail("Got a SecurityException for \"" + filePath + "\": " + e.toStri
ng()); |
2945 } | 2945 } |
2946 } | 2946 } |
2947 | 2947 |
2948 /** | 2948 /** |
2949 * Verifies the number of resource requests made to the content provider. | 2949 * Verifies the number of resource requests made to the content provider. |
2950 * @param resource Resource name | 2950 * @param resource Resource name |
2951 * @param expectedCount Expected resource requests count | 2951 * @param expectedCount Expected resource requests count |
(...skipping 20 matching lines...) Expand all Loading... |
2972 final AwContents awContents = webView.getAwContents(); | 2972 final AwContents awContents = webView.getAwContents(); |
2973 runTestOnUiThread(new Runnable() { | 2973 runTestOnUiThread(new Runnable() { |
2974 @Override | 2974 @Override |
2975 public void run() { | 2975 public void run() { |
2976 awContents.getContentViewCore().sendDoubleTapForTest( | 2976 awContents.getContentViewCore().sendDoubleTapForTest( |
2977 SystemClock.uptimeMillis(), x, y); | 2977 SystemClock.uptimeMillis(), x, y); |
2978 } | 2978 } |
2979 }); | 2979 }); |
2980 } | 2980 } |
2981 } | 2981 } |
OLD | NEW |