OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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.os.Build; | 8 import android.os.Build; |
9 import android.test.suitebuilder.annotation.SmallTest; | 9 import android.test.suitebuilder.annotation.SmallTest; |
10 import android.test.FlakyTest; | 10 import android.test.FlakyTest; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 private static final boolean ENABLED = true; | 44 private static final boolean ENABLED = true; |
45 private static final boolean DISABLED = false; | 45 private static final boolean DISABLED = false; |
46 | 46 |
47 /** | 47 /** |
48 * A helper class for testing a particular preference from ContentSettings. | 48 * A helper class for testing a particular preference from ContentSettings. |
49 * The generic type T is the type of the setting. Usually, to test an | 49 * The generic type T is the type of the setting. Usually, to test an |
50 * effect of the preference, JS code is executed that sets document's title. | 50 * effect of the preference, JS code is executed that sets document's title. |
51 * In this case, requiresJsEnabled constructor argument must be set to true. | 51 * In this case, requiresJsEnabled constructor argument must be set to true. |
52 */ | 52 */ |
53 abstract class AwSettingsTestHelper<T> { | 53 abstract class AwSettingsTestHelper<T> { |
54 protected final AwContents mAwContents; | 54 protected final ContentViewCore mContentViewCore; |
55 protected final TestAwContentsClient mContentViewClient; | 55 protected final TestAwContentsClient mContentViewClient; |
56 protected final ContentSettings mContentSettings; | 56 protected final ContentSettings mContentSettings; |
57 | 57 |
58 AwSettingsTestHelper(AwContents awContents, | 58 AwSettingsTestHelper(ContentViewCore contentViewCore, |
59 TestAwContentsClient contentViewClient, | 59 TestAwContentsClient contentViewClient, |
60 boolean requiresJsEnabled) throws Throwable { | 60 boolean requiresJsEnabled) throws Throwable { |
61 mAwContents = awContents; | 61 mContentViewCore = contentViewCore; |
62 mContentViewClient = contentViewClient; | 62 mContentViewClient = contentViewClient; |
63 mContentSettings = getContentSettingsOnUiThread(mAwContents); | 63 mContentSettings = getContentSettingsOnUiThread(mContentViewCore); |
64 if (requiresJsEnabled) { | 64 if (requiresJsEnabled) { |
65 mContentSettings.setJavaScriptEnabled(true); | 65 mContentSettings.setJavaScriptEnabled(true); |
66 } | 66 } |
67 } | 67 } |
68 | 68 |
69 void ensureSettingHasAlteredValue() throws Throwable { | 69 void ensureSettingHasAlteredValue() throws Throwable { |
70 ensureSettingHasValue(getAlteredValue()); | 70 ensureSettingHasValue(getAlteredValue()); |
71 } | 71 } |
72 | 72 |
73 void ensureSettingHasInitialValue() throws Throwable { | 73 void ensureSettingHasInitialValue() throws Throwable { |
(...skipping 12 matching lines...) Expand all Loading... |
86 | 86 |
87 protected abstract T getInitialValue(); | 87 protected abstract T getInitialValue(); |
88 | 88 |
89 protected abstract T getCurrentValue(); | 89 protected abstract T getCurrentValue(); |
90 | 90 |
91 protected abstract void setCurrentValue(T value); | 91 protected abstract void setCurrentValue(T value); |
92 | 92 |
93 protected abstract void doEnsureSettingHasValue(T value) throws Throwabl
e; | 93 protected abstract void doEnsureSettingHasValue(T value) throws Throwabl
e; |
94 | 94 |
95 protected String getTitleOnUiThread() throws Throwable { | 95 protected String getTitleOnUiThread() throws Throwable { |
96 return AwSettingsTest.this.getTitleOnUiThread(mAwContents); | 96 return AwSettingsTest.this.getTitleOnUiThread(mContentViewCore); |
97 } | 97 } |
98 | 98 |
99 protected void loadDataSync(String data) throws Throwable { | 99 protected void loadDataSync(String data) throws Throwable { |
100 AwSettingsTest.this.loadDataSync( | 100 AwSettingsTest.this.loadDataSync( |
101 mAwContents, | 101 mContentViewCore, |
102 mContentViewClient.getOnPageFinishedHelper(), | 102 mContentViewClient.getOnPageFinishedHelper(), |
103 data, | 103 data, |
104 "text/html", | 104 "text/html", |
105 false); | 105 false); |
106 } | 106 } |
107 | 107 |
108 protected void loadUrlSync(String url) throws Throwable { | 108 protected void loadUrlSync(String url) throws Throwable { |
109 AwSettingsTest.this.loadUrlSync( | 109 AwSettingsTest.this.loadUrlSync( |
110 mAwContents, | 110 mContentViewCore, |
111 mContentViewClient.getOnPageFinishedHelper(), | 111 mContentViewClient.getOnPageFinishedHelper(), |
112 url); | 112 url); |
113 } | 113 } |
114 | 114 |
115 private void ensureSettingHasValue(T value) throws Throwable { | 115 private void ensureSettingHasValue(T value) throws Throwable { |
116 assertEquals(value, getCurrentValue()); | 116 assertEquals(value, getCurrentValue()); |
117 doEnsureSettingHasValue(value); | 117 doEnsureSettingHasValue(value); |
118 } | 118 } |
119 } | 119 } |
120 | 120 |
121 class AwSettingsJavaScriptTestHelper extends AwSettingsTestHelper<Boolean> { | 121 class AwSettingsJavaScriptTestHelper extends AwSettingsTestHelper<Boolean> { |
122 private static final String JS_ENABLED_STRING = "JS Enabled"; | 122 private static final String JS_ENABLED_STRING = "JS Enabled"; |
123 private static final String JS_DISABLED_STRING = "JS Disabled"; | 123 private static final String JS_DISABLED_STRING = "JS Disabled"; |
124 | 124 |
125 AwSettingsJavaScriptTestHelper(AwContents awContents, | 125 AwSettingsJavaScriptTestHelper(ContentViewCore contentViewCore, |
126 TestAwContentsClient contentViewClient) t
hrows Throwable { | 126 TestAwContentsClient contentViewClient) t
hrows Throwable { |
127 super(awContents, contentViewClient, false); | 127 super(contentViewCore, contentViewClient, false); |
128 } | 128 } |
129 | 129 |
130 @Override | 130 @Override |
131 protected Boolean getAlteredValue() { | 131 protected Boolean getAlteredValue() { |
132 return ENABLED; | 132 return ENABLED; |
133 } | 133 } |
134 | 134 |
135 @Override | 135 @Override |
136 protected Boolean getInitialValue() { | 136 protected Boolean getInitialValue() { |
137 return DISABLED; | 137 return DISABLED; |
(...skipping 21 matching lines...) Expand all Loading... |
159 return "<html><head><title>" + JS_DISABLED_STRING + "</title>" | 159 return "<html><head><title>" + JS_DISABLED_STRING + "</title>" |
160 + "</head><body onload=\"document.title='" + JS_ENABLED_STRI
NG | 160 + "</head><body onload=\"document.title='" + JS_ENABLED_STRI
NG |
161 + "';\"></body></html>"; | 161 + "';\"></body></html>"; |
162 } | 162 } |
163 } | 163 } |
164 | 164 |
165 // In contrast to AwSettingsJavaScriptTestHelper, doesn't reload the page wh
en testing | 165 // In contrast to AwSettingsJavaScriptTestHelper, doesn't reload the page wh
en testing |
166 // JavaScript state. | 166 // JavaScript state. |
167 class AwSettingsJavaScriptDynamicTestHelper extends AwSettingsJavaScriptTest
Helper { | 167 class AwSettingsJavaScriptDynamicTestHelper extends AwSettingsJavaScriptTest
Helper { |
168 AwSettingsJavaScriptDynamicTestHelper( | 168 AwSettingsJavaScriptDynamicTestHelper( |
169 AwContents awContents, | 169 ContentViewCore contentViewCore, |
170 TestAwContentsClient contentViewClient) throws Throwable { | 170 TestAwContentsClient contentViewClient) throws Throwable { |
171 super(awContents, contentViewClient); | 171 super(contentViewCore, contentViewClient); |
172 // Load the page. | 172 // Load the page. |
173 super.doEnsureSettingHasValue(getInitialValue()); | 173 super.doEnsureSettingHasValue(getInitialValue()); |
174 } | 174 } |
175 | 175 |
176 @Override | 176 @Override |
177 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { | 177 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { |
178 String oldTitle = getTitleOnUiThread(); | 178 String oldTitle = getTitleOnUiThread(); |
179 String newTitle = oldTitle + "_modified"; | 179 String newTitle = oldTitle + "_modified"; |
180 executeJavaScriptAndWaitForResult( | 180 executeJavaScriptAndWaitForResult( |
181 mAwContents, mContentViewClient, getScript(newTitle)); | 181 mContentViewCore, mContentViewClient, getScript(newTitle)); |
182 assertEquals(value == ENABLED ? newTitle : oldTitle, getTitleOnUiThr
ead()); | 182 assertEquals(value == ENABLED ? newTitle : oldTitle, getTitleOnUiThr
ead()); |
183 } | 183 } |
184 | 184 |
185 private String getScript(String title) { | 185 private String getScript(String title) { |
186 return "document.title='" + title + "';"; | 186 return "document.title='" + title + "';"; |
187 } | 187 } |
188 } | 188 } |
189 | 189 |
190 class AwSettingsPluginsTestHelper extends AwSettingsTestHelper<Boolean> { | 190 class AwSettingsPluginsTestHelper extends AwSettingsTestHelper<Boolean> { |
191 private static final String PLUGINS_ENABLED_STRING = "Embed"; | 191 private static final String PLUGINS_ENABLED_STRING = "Embed"; |
192 private static final String PLUGINS_DISABLED_STRING = "NoEmbed"; | 192 private static final String PLUGINS_DISABLED_STRING = "NoEmbed"; |
193 | 193 |
194 AwSettingsPluginsTestHelper(AwContents awContents, | 194 AwSettingsPluginsTestHelper(ContentViewCore contentViewCore, |
195 TestAwContentsClient contentViewClient) thro
ws Throwable { | 195 TestAwContentsClient contentViewClient) thro
ws Throwable { |
196 super(awContents, contentViewClient, true); | 196 super(contentViewCore, contentViewClient, true); |
197 } | 197 } |
198 | 198 |
199 @Override | 199 @Override |
200 protected Boolean getAlteredValue() { | 200 protected Boolean getAlteredValue() { |
201 return ENABLED; | 201 return ENABLED; |
202 } | 202 } |
203 | 203 |
204 @Override | 204 @Override |
205 protected Boolean getInitialValue() { | 205 protected Boolean getInitialValue() { |
206 return DISABLED; | 206 return DISABLED; |
(...skipping 18 matching lines...) Expand all Loading... |
225 } | 225 } |
226 | 226 |
227 private String getData() { | 227 private String getData() { |
228 return "<html><body onload=\"document.title = document.body.innerTex
t;\">" | 228 return "<html><body onload=\"document.title = document.body.innerTex
t;\">" |
229 + "<noembed>No</noembed><span>Embed</span></body></html>"; | 229 + "<noembed>No</noembed><span>Embed</span></body></html>"; |
230 } | 230 } |
231 } | 231 } |
232 | 232 |
233 class AwSettingsStandardFontFamilyTestHelper extends AwSettingsTestHelper<St
ring> { | 233 class AwSettingsStandardFontFamilyTestHelper extends AwSettingsTestHelper<St
ring> { |
234 AwSettingsStandardFontFamilyTestHelper( | 234 AwSettingsStandardFontFamilyTestHelper( |
235 AwContents awContents, | 235 ContentViewCore contentViewCore, |
236 TestAwContentsClient contentViewClient) throws Throwable { | 236 TestAwContentsClient contentViewClient) throws Throwable { |
237 super(awContents, contentViewClient, true); | 237 super(contentViewCore, contentViewClient, true); |
238 } | 238 } |
239 | 239 |
240 @Override | 240 @Override |
241 protected String getAlteredValue() { | 241 protected String getAlteredValue() { |
242 return "cursive"; | 242 return "cursive"; |
243 } | 243 } |
244 | 244 |
245 @Override | 245 @Override |
246 protected String getInitialValue() { | 246 protected String getInitialValue() { |
247 return "sans-serif"; | 247 return "sans-serif"; |
(...skipping 17 matching lines...) Expand all Loading... |
265 | 265 |
266 private String getData() { | 266 private String getData() { |
267 return "<html><body onload=\"document.title = " + | 267 return "<html><body onload=\"document.title = " + |
268 "getComputedStyle(document.body).getPropertyValue('font-fami
ly');\">" | 268 "getComputedStyle(document.body).getPropertyValue('font-fami
ly');\">" |
269 + "</body></html>"; | 269 + "</body></html>"; |
270 } | 270 } |
271 } | 271 } |
272 | 272 |
273 class AwSettingsDefaultFontSizeTestHelper extends AwSettingsTestHelper<Integ
er> { | 273 class AwSettingsDefaultFontSizeTestHelper extends AwSettingsTestHelper<Integ
er> { |
274 AwSettingsDefaultFontSizeTestHelper( | 274 AwSettingsDefaultFontSizeTestHelper( |
275 AwContents awContents, | 275 ContentViewCore contentViewCore, |
276 TestAwContentsClient contentViewClient) throws Throwable { | 276 TestAwContentsClient contentViewClient) throws Throwable { |
277 super(awContents, contentViewClient, true); | 277 super(contentViewCore, contentViewClient, true); |
278 } | 278 } |
279 | 279 |
280 @Override | 280 @Override |
281 protected Integer getAlteredValue() { | 281 protected Integer getAlteredValue() { |
282 return 42; | 282 return 42; |
283 } | 283 } |
284 | 284 |
285 @Override | 285 @Override |
286 protected Integer getInitialValue() { | 286 protected Integer getInitialValue() { |
287 return 16; | 287 return 16; |
(...skipping 19 matching lines...) Expand all Loading... |
307 return "<html><body onload=\"document.title = " + | 307 return "<html><body onload=\"document.title = " + |
308 "getComputedStyle(document.body).getPropertyValue('font-size
');\">" | 308 "getComputedStyle(document.body).getPropertyValue('font-size
');\">" |
309 + "</body></html>"; | 309 + "</body></html>"; |
310 } | 310 } |
311 } | 311 } |
312 | 312 |
313 class AwSettingsLoadImagesAutomaticallyTestHelper extends AwSettingsTestHelp
er<Boolean> { | 313 class AwSettingsLoadImagesAutomaticallyTestHelper extends AwSettingsTestHelp
er<Boolean> { |
314 private ImagePageGenerator mGenerator; | 314 private ImagePageGenerator mGenerator; |
315 | 315 |
316 AwSettingsLoadImagesAutomaticallyTestHelper( | 316 AwSettingsLoadImagesAutomaticallyTestHelper( |
317 AwContents awContents, | 317 ContentViewCore contentViewCore, |
318 TestAwContentsClient contentViewClient, | 318 TestAwContentsClient contentViewClient, |
319 ImagePageGenerator generator) throws Throwable { | 319 ImagePageGenerator generator) throws Throwable { |
320 super(awContents, contentViewClient, true); | 320 super(contentViewCore, contentViewClient, true); |
321 mGenerator = generator; | 321 mGenerator = generator; |
322 } | 322 } |
323 | 323 |
324 @Override | 324 @Override |
325 protected Boolean getAlteredValue() { | 325 protected Boolean getAlteredValue() { |
326 return DISABLED; | 326 return DISABLED; |
327 } | 327 } |
328 | 328 |
329 @Override | 329 @Override |
330 protected Boolean getInitialValue() { | 330 protected Boolean getInitialValue() { |
(...skipping 15 matching lines...) Expand all Loading... |
346 loadDataSync(mGenerator.getPageSource()); | 346 loadDataSync(mGenerator.getPageSource()); |
347 assertEquals(value == ENABLED ? | 347 assertEquals(value == ENABLED ? |
348 ImagePageGenerator.IMAGE_LOADED_STRING : | 348 ImagePageGenerator.IMAGE_LOADED_STRING : |
349 ImagePageGenerator.IMAGE_NOT_LOADED_STRING, | 349 ImagePageGenerator.IMAGE_NOT_LOADED_STRING, |
350 getTitleOnUiThread()); | 350 getTitleOnUiThread()); |
351 } | 351 } |
352 } | 352 } |
353 | 353 |
354 class AwSettingsDefaultTextEncodingTestHelper extends AwSettingsTestHelper<S
tring> { | 354 class AwSettingsDefaultTextEncodingTestHelper extends AwSettingsTestHelper<S
tring> { |
355 AwSettingsDefaultTextEncodingTestHelper( | 355 AwSettingsDefaultTextEncodingTestHelper( |
356 AwContents awContents, | 356 ContentViewCore contentViewCore, |
357 TestAwContentsClient contentViewClient) throws Throwable { | 357 TestAwContentsClient contentViewClient) throws Throwable { |
358 super(awContents, contentViewClient, true); | 358 super(contentViewCore, contentViewClient, true); |
359 } | 359 } |
360 | 360 |
361 @Override | 361 @Override |
362 protected String getAlteredValue() { | 362 protected String getAlteredValue() { |
363 return "utf-8"; | 363 return "utf-8"; |
364 } | 364 } |
365 | 365 |
366 @Override | 366 @Override |
367 protected String getInitialValue() { | 367 protected String getInitialValue() { |
368 return "Latin-1"; | 368 return "Latin-1"; |
(...skipping 19 matching lines...) Expand all Loading... |
388 return "<html><body onload='document.title=document.defaultCharset'>
</body></html>"; | 388 return "<html><body onload='document.title=document.defaultCharset'>
</body></html>"; |
389 } | 389 } |
390 } | 390 } |
391 | 391 |
392 class AwSettingsUserAgentStringTestHelper extends AwSettingsTestHelper<Strin
g> { | 392 class AwSettingsUserAgentStringTestHelper extends AwSettingsTestHelper<Strin
g> { |
393 private final String mDefaultUa; | 393 private final String mDefaultUa; |
394 private static final String DEFAULT_UA = ""; | 394 private static final String DEFAULT_UA = ""; |
395 private static final String CUSTOM_UA = "ChromeViewTest"; | 395 private static final String CUSTOM_UA = "ChromeViewTest"; |
396 | 396 |
397 AwSettingsUserAgentStringTestHelper( | 397 AwSettingsUserAgentStringTestHelper( |
398 AwContents awContents, | 398 ContentViewCore contentViewCore, |
399 TestAwContentsClient contentViewClient) throws Throwable { | 399 TestAwContentsClient contentViewClient) throws Throwable { |
400 super(awContents, contentViewClient, true); | 400 super(contentViewCore, contentViewClient, true); |
401 mDefaultUa = mContentSettings.getUserAgentString(); | 401 mDefaultUa = mContentSettings.getUserAgentString(); |
402 } | 402 } |
403 | 403 |
404 @Override | 404 @Override |
405 protected String getAlteredValue() { | 405 protected String getAlteredValue() { |
406 return CUSTOM_UA; | 406 return CUSTOM_UA; |
407 } | 407 } |
408 | 408 |
409 @Override | 409 @Override |
410 protected String getInitialValue() { | 410 protected String getInitialValue() { |
(...skipping 27 matching lines...) Expand all Loading... |
438 private String getData() { | 438 private String getData() { |
439 return "<html><body onload='document.title=navigator.userAgent'></bo
dy></html>"; | 439 return "<html><body onload='document.title=navigator.userAgent'></bo
dy></html>"; |
440 } | 440 } |
441 } | 441 } |
442 | 442 |
443 class AwSettingsDomStorageEnabledTestHelper extends AwSettingsTestHelper<Boo
lean> { | 443 class AwSettingsDomStorageEnabledTestHelper extends AwSettingsTestHelper<Boo
lean> { |
444 private static final String NO_LOCAL_STORAGE = "No localStorage"; | 444 private static final String NO_LOCAL_STORAGE = "No localStorage"; |
445 private static final String HAS_LOCAL_STORAGE = "Has localStorage"; | 445 private static final String HAS_LOCAL_STORAGE = "Has localStorage"; |
446 | 446 |
447 AwSettingsDomStorageEnabledTestHelper( | 447 AwSettingsDomStorageEnabledTestHelper( |
448 AwContents awContents, | 448 ContentViewCore contentViewCore, |
449 TestAwContentsClient contentViewClient) throws Throwable { | 449 TestAwContentsClient contentViewClient) throws Throwable { |
450 super(awContents, contentViewClient, true); | 450 super(contentViewCore, contentViewClient, true); |
451 } | 451 } |
452 | 452 |
453 @Override | 453 @Override |
454 protected Boolean getAlteredValue() { | 454 protected Boolean getAlteredValue() { |
455 return ENABLED; | 455 return ENABLED; |
456 } | 456 } |
457 | 457 |
458 @Override | 458 @Override |
459 protected Boolean getInitialValue() { | 459 protected Boolean getInitialValue() { |
460 return DISABLED; | 460 return DISABLED; |
(...skipping 19 matching lines...) Expand all Loading... |
480 getTitleOnUiThread()); | 480 getTitleOnUiThread()); |
481 } | 481 } |
482 } | 482 } |
483 | 483 |
484 class AwSettingsUniversalAccessFromFilesTestHelper extends AwSettingsTestHel
per<Boolean> { | 484 class AwSettingsUniversalAccessFromFilesTestHelper extends AwSettingsTestHel
per<Boolean> { |
485 // TODO(mnaganov): Change to "Exception" once | 485 // TODO(mnaganov): Change to "Exception" once |
486 // https://bugs.webkit.org/show_bug.cgi?id=43504 is fixed. | 486 // https://bugs.webkit.org/show_bug.cgi?id=43504 is fixed. |
487 private static final String ACCESS_DENIED_TITLE = "undefined"; | 487 private static final String ACCESS_DENIED_TITLE = "undefined"; |
488 | 488 |
489 AwSettingsUniversalAccessFromFilesTestHelper( | 489 AwSettingsUniversalAccessFromFilesTestHelper( |
490 AwContents awContents, | 490 ContentViewCore contentViewCore, |
491 TestAwContentsClient contentViewClient) throws Throwable { | 491 TestAwContentsClient contentViewClient) throws Throwable { |
492 super(awContents, contentViewClient, true); | 492 super(contentViewCore, contentViewClient, true); |
493 mIframeContainerUrl = UrlUtils.getTestFileUrl("webview/iframe_access
.html"); | 493 mIframeContainerUrl = UrlUtils.getTestFileUrl("webview/iframe_access
.html"); |
494 mIframeUrl = UrlUtils.getTestFileUrl("webview/hello_world.html"); | 494 mIframeUrl = UrlUtils.getTestFileUrl("webview/hello_world.html"); |
495 // The value of the setting depends on the SDK version. | 495 // The value of the setting depends on the SDK version. |
496 mContentSettings.setAllowUniversalAccessFromFileURLs(false); | 496 mContentSettings.setAllowUniversalAccessFromFileURLs(false); |
497 // If universal access is true, the value of file access doesn't | 497 // If universal access is true, the value of file access doesn't |
498 // matter. While if universal access is false, having file access | 498 // matter. While if universal access is false, having file access |
499 // enabled will allow file loading. | 499 // enabled will allow file loading. |
500 mContentSettings.setAllowFileAccessFromFileURLs(false); | 500 mContentSettings.setAllowFileAccessFromFileURLs(false); |
501 } | 501 } |
502 | 502 |
(...skipping 28 matching lines...) Expand all Loading... |
531 private final String mIframeContainerUrl; | 531 private final String mIframeContainerUrl; |
532 private final String mIframeUrl; | 532 private final String mIframeUrl; |
533 } | 533 } |
534 | 534 |
535 class AwSettingsFileAccessFromFilesIframeTestHelper extends AwSettingsTestHe
lper<Boolean> { | 535 class AwSettingsFileAccessFromFilesIframeTestHelper extends AwSettingsTestHe
lper<Boolean> { |
536 // TODO(mnaganov): Change to "Exception" once | 536 // TODO(mnaganov): Change to "Exception" once |
537 // https://bugs.webkit.org/show_bug.cgi?id=43504 is fixed. | 537 // https://bugs.webkit.org/show_bug.cgi?id=43504 is fixed. |
538 private static final String ACCESS_DENIED_TITLE = "undefined"; | 538 private static final String ACCESS_DENIED_TITLE = "undefined"; |
539 | 539 |
540 AwSettingsFileAccessFromFilesIframeTestHelper( | 540 AwSettingsFileAccessFromFilesIframeTestHelper( |
541 AwContents awContents, | 541 ContentViewCore contentViewCore, |
542 TestAwContentsClient contentViewClient) throws Throwable { | 542 TestAwContentsClient contentViewClient) throws Throwable { |
543 super(awContents, contentViewClient, true); | 543 super(contentViewCore, contentViewClient, true); |
544 mIframeContainerUrl = UrlUtils.getTestFileUrl("webview/iframe_access
.html"); | 544 mIframeContainerUrl = UrlUtils.getTestFileUrl("webview/iframe_access
.html"); |
545 mIframeUrl = UrlUtils.getTestFileUrl("webview/hello_world.html"); | 545 mIframeUrl = UrlUtils.getTestFileUrl("webview/hello_world.html"); |
546 mContentSettings.setAllowUniversalAccessFromFileURLs(false); | 546 mContentSettings.setAllowUniversalAccessFromFileURLs(false); |
547 // The value of the setting depends on the SDK version. | 547 // The value of the setting depends on the SDK version. |
548 mContentSettings.setAllowFileAccessFromFileURLs(false); | 548 mContentSettings.setAllowFileAccessFromFileURLs(false); |
549 } | 549 } |
550 | 550 |
551 @Override | 551 @Override |
552 protected Boolean getAlteredValue() { | 552 protected Boolean getAlteredValue() { |
553 return ENABLED; | 553 return ENABLED; |
(...skipping 24 matching lines...) Expand all Loading... |
578 | 578 |
579 private final String mIframeContainerUrl; | 579 private final String mIframeContainerUrl; |
580 private final String mIframeUrl; | 580 private final String mIframeUrl; |
581 } | 581 } |
582 | 582 |
583 class AwSettingsFileAccessFromFilesXhrTestHelper extends AwSettingsTestHelpe
r<Boolean> { | 583 class AwSettingsFileAccessFromFilesXhrTestHelper extends AwSettingsTestHelpe
r<Boolean> { |
584 private static final String ACCESS_GRANTED_TITLE = "Hello, World!"; | 584 private static final String ACCESS_GRANTED_TITLE = "Hello, World!"; |
585 private static final String ACCESS_DENIED_TITLE = "Exception"; | 585 private static final String ACCESS_DENIED_TITLE = "Exception"; |
586 | 586 |
587 AwSettingsFileAccessFromFilesXhrTestHelper( | 587 AwSettingsFileAccessFromFilesXhrTestHelper( |
588 AwContents awContents, | 588 ContentViewCore contentViewCore, |
589 TestAwContentsClient contentViewClient) throws Throwable { | 589 TestAwContentsClient contentViewClient) throws Throwable { |
590 super(awContents, contentViewClient, true); | 590 super(contentViewCore, contentViewClient, true); |
591 mXhrContainerUrl = UrlUtils.getTestFileUrl("webview/xhr_access.html"
); | 591 mXhrContainerUrl = UrlUtils.getTestFileUrl("webview/xhr_access.html"
); |
592 mContentSettings.setAllowUniversalAccessFromFileURLs(false); | 592 mContentSettings.setAllowUniversalAccessFromFileURLs(false); |
593 // The value of the setting depends on the SDK version. | 593 // The value of the setting depends on the SDK version. |
594 mContentSettings.setAllowFileAccessFromFileURLs(false); | 594 mContentSettings.setAllowFileAccessFromFileURLs(false); |
595 } | 595 } |
596 | 596 |
597 @Override | 597 @Override |
598 protected Boolean getAlteredValue() { | 598 protected Boolean getAlteredValue() { |
599 return ENABLED; | 599 return ENABLED; |
600 } | 600 } |
(...skipping 22 matching lines...) Expand all Loading... |
623 } | 623 } |
624 | 624 |
625 private final String mXhrContainerUrl; | 625 private final String mXhrContainerUrl; |
626 } | 626 } |
627 | 627 |
628 class AwSettingsFileUrlAccessTestHelper extends AwSettingsTestHelper<Boolean
> { | 628 class AwSettingsFileUrlAccessTestHelper extends AwSettingsTestHelper<Boolean
> { |
629 private static final String ACCESS_GRANTED_TITLE = "Hello, World!"; | 629 private static final String ACCESS_GRANTED_TITLE = "Hello, World!"; |
630 private static final String ACCESS_DENIED_TITLE = "about:blank"; | 630 private static final String ACCESS_DENIED_TITLE = "about:blank"; |
631 | 631 |
632 AwSettingsFileUrlAccessTestHelper( | 632 AwSettingsFileUrlAccessTestHelper( |
633 AwContents awContents, | 633 ContentViewCore contentViewCore, |
634 TestAwContentsClient contentViewClient, | 634 TestAwContentsClient contentViewClient, |
635 int startIndex) throws Throwable { | 635 int startIndex) throws Throwable { |
636 super(awContents, contentViewClient, true); | 636 super(contentViewCore, contentViewClient, true); |
637 mIndex = startIndex; | 637 mIndex = startIndex; |
638 } | 638 } |
639 | 639 |
640 @Override | 640 @Override |
641 protected Boolean getAlteredValue() { | 641 protected Boolean getAlteredValue() { |
642 return DISABLED; | 642 return DISABLED; |
643 } | 643 } |
644 | 644 |
645 @Override | 645 @Override |
646 protected Boolean getInitialValue() { | 646 protected Boolean getInitialValue() { |
(...skipping 21 matching lines...) Expand all Loading... |
668 getTitleOnUiThread()); | 668 getTitleOnUiThread()); |
669 } | 669 } |
670 | 670 |
671 private int mIndex; | 671 private int mIndex; |
672 } | 672 } |
673 | 673 |
674 class AwSettingsContentUrlAccessTestHelper extends AwSettingsTestHelper<Bool
ean> { | 674 class AwSettingsContentUrlAccessTestHelper extends AwSettingsTestHelper<Bool
ean> { |
675 private final String mTarget; | 675 private final String mTarget; |
676 | 676 |
677 AwSettingsContentUrlAccessTestHelper( | 677 AwSettingsContentUrlAccessTestHelper( |
678 AwContents awContents, | 678 ContentViewCore contentViewCore, |
679 TestAwContentsClient contentViewClient, | 679 TestAwContentsClient contentViewClient, |
680 int index) throws Throwable { | 680 int index) throws Throwable { |
681 super(awContents, contentViewClient, true); | 681 super(contentViewCore, contentViewClient, true); |
682 mTarget = "content_access_" + index; | 682 mTarget = "content_access_" + index; |
683 } | 683 } |
684 | 684 |
685 @Override | 685 @Override |
686 protected Boolean getAlteredValue() { | 686 protected Boolean getAlteredValue() { |
687 return DISABLED; | 687 return DISABLED; |
688 } | 688 } |
689 | 689 |
690 @Override | 690 @Override |
691 protected Boolean getInitialValue() { | 691 protected Boolean getInitialValue() { |
692 return ENABLED; | 692 return ENABLED; |
693 } | 693 } |
694 | 694 |
695 @Override | 695 @Override |
696 protected Boolean getCurrentValue() { | 696 protected Boolean getCurrentValue() { |
697 return mContentSettings.getAllowContentAccess(); | 697 return mContentSettings.getAllowContentAccess(); |
698 } | 698 } |
699 | 699 |
700 @Override | 700 @Override |
701 protected void setCurrentValue(Boolean value) { | 701 protected void setCurrentValue(Boolean value) { |
702 mContentSettings.setAllowContentAccess(value); | 702 mContentSettings.setAllowContentAccess(value); |
703 } | 703 } |
704 | 704 |
705 @Override | 705 @Override |
706 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { | 706 protected void doEnsureSettingHasValue(Boolean value) throws Throwable { |
707 AwSettingsTest.this.resetResourceRequestCountInContentProvider(mTarg
et); | 707 AwSettingsTest.this.resetResourceRequestCountInContentProvider(mTarg
et); |
708 AwSettingsTest.this.loadUrlSync( | 708 AwSettingsTest.this.loadUrlSync( |
709 mAwContents, | 709 mContentViewCore, |
710 mContentViewClient.getOnPageFinishedHelper(), | 710 mContentViewClient.getOnPageFinishedHelper(), |
711 AwSettingsTest.this.createContentUrl(mTarget)); | 711 AwSettingsTest.this.createContentUrl(mTarget)); |
712 if (value == ENABLED) { | 712 if (value == ENABLED) { |
713 AwSettingsTest.this.ensureResourceRequestCountInContentProvider(
mTarget, 1); | 713 AwSettingsTest.this.ensureResourceRequestCountInContentProvider(
mTarget, 1); |
714 } else { | 714 } else { |
715 AwSettingsTest.this.ensureResourceRequestCountInContentProvider(
mTarget, 0); | 715 AwSettingsTest.this.ensureResourceRequestCountInContentProvider(
mTarget, 0); |
716 } | 716 } |
717 } | 717 } |
718 } | 718 } |
719 | 719 |
720 // The test verifies that JavaScript is disabled upon WebView | 720 // The test verifies that JavaScript is disabled upon WebView |
721 // creation without accessing ContentSettings. If the test passes, | 721 // creation without accessing ContentSettings. If the test passes, |
722 // it means that WebView-specific web preferences configuration | 722 // it means that WebView-specific web preferences configuration |
723 // is applied on WebView creation. JS state is used, because it is | 723 // is applied on WebView creation. JS state is used, because it is |
724 // enabled by default in Chrome, but must be disabled by default | 724 // enabled by default in Chrome, but must be disabled by default |
725 // in WebView. | 725 // in WebView. |
726 @SmallTest | 726 @SmallTest |
727 @Feature({"Android-WebView", "Preferences"}) | 727 @Feature({"Android-WebView", "Preferences"}) |
728 public void testJavaScriptDisabledByDefault() throws Throwable { | 728 public void testJavaScriptDisabledByDefault() throws Throwable { |
729 final String JS_ENABLED_STRING = "JS has run"; | 729 final String JS_ENABLED_STRING = "JS has run"; |
730 final String JS_DISABLED_STRING = "JS has not run"; | 730 final String JS_DISABLED_STRING = "JS has not run"; |
731 final String TEST_PAGE_HTML = | 731 final String TEST_PAGE_HTML = |
732 "<html><head><title>" + JS_DISABLED_STRING + "</title>" | 732 "<html><head><title>" + JS_DISABLED_STRING + "</title>" |
733 + "</head><body onload=\"document.title='" + JS_ENABLED_STRING | 733 + "</head><body onload=\"document.title='" + JS_ENABLED_STRING |
734 + "';\"></body></html>"; | 734 + "';\"></body></html>"; |
735 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 735 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
736 final AwTestContainerView testContainerView = | 736 final ContentViewCore contentView = |
737 createAwTestContainerViewOnMainSync(contentClient); | 737 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
738 final AwContents awContents = testContainerView.getAwContents(); | |
739 loadDataSync( | 738 loadDataSync( |
740 awContents, | 739 contentView, |
741 contentClient.getOnPageFinishedHelper(), | 740 contentClient.getOnPageFinishedHelper(), |
742 TEST_PAGE_HTML, | 741 TEST_PAGE_HTML, |
743 "text/html", | 742 "text/html", |
744 false); | 743 false); |
745 assertEquals(JS_DISABLED_STRING, getTitleOnUiThread(awContents)); | 744 assertEquals(JS_DISABLED_STRING, getTitleOnUiThread(contentView)); |
746 } | 745 } |
747 | 746 |
748 @SmallTest | 747 @SmallTest |
749 @Feature({"Android-WebView", "Preferences"}) | 748 @Feature({"Android-WebView", "Preferences"}) |
750 public void testJavaScriptEnabledNormal() throws Throwable { | 749 public void testJavaScriptEnabledNormal() throws Throwable { |
751 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 750 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
752 runPerViewSettingsTest( | 751 runPerViewSettingsTest( |
753 new AwSettingsJavaScriptTestHelper(views.getContents0(), views.getCl
ient0()), | 752 new AwSettingsJavaScriptTestHelper(views.getView0(), views.getClient
0()), |
754 new AwSettingsJavaScriptTestHelper(views.getContents1(), views.getCl
ient1())); | 753 new AwSettingsJavaScriptTestHelper(views.getView1(), views.getClient
1())); |
755 } | 754 } |
756 | 755 |
757 @SmallTest | 756 @SmallTest |
758 @Feature({"Android-WebView", "Preferences"}) | 757 @Feature({"Android-WebView", "Preferences"}) |
759 public void testJavaScriptEnabledIncognito() throws Throwable { | 758 public void testJavaScriptEnabledIncognito() throws Throwable { |
760 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 759 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
761 runPerViewSettingsTest( | 760 runPerViewSettingsTest( |
762 new AwSettingsJavaScriptTestHelper(views.getContents0(), views.getCl
ient0()), | 761 new AwSettingsJavaScriptTestHelper(views.getView0(), views.getClient
0()), |
763 new AwSettingsJavaScriptTestHelper(views.getContents1(), views.getCl
ient1())); | 762 new AwSettingsJavaScriptTestHelper(views.getView1(), views.getClient
1())); |
764 } | 763 } |
765 | 764 |
766 @SmallTest | 765 @SmallTest |
767 @Feature({"Android-WebView", "Preferences"}) | 766 @Feature({"Android-WebView", "Preferences"}) |
768 public void testJavaScriptEnabledBoth() throws Throwable { | 767 public void testJavaScriptEnabledBoth() throws Throwable { |
769 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 768 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
770 runPerViewSettingsTest( | 769 runPerViewSettingsTest( |
771 new AwSettingsJavaScriptTestHelper(views.getContents0(), views.getCl
ient0()), | 770 new AwSettingsJavaScriptTestHelper(views.getView0(), views.getClient
0()), |
772 new AwSettingsJavaScriptTestHelper(views.getContents1(), views.getCl
ient1())); | 771 new AwSettingsJavaScriptTestHelper(views.getView1(), views.getClient
1())); |
773 } | 772 } |
774 | 773 |
775 @SmallTest | 774 @SmallTest |
776 @Feature({"Android-WebView", "Preferences"}) | 775 @Feature({"Android-WebView", "Preferences"}) |
777 public void testJavaScriptEnabledDynamicNormal() throws Throwable { | 776 public void testJavaScriptEnabledDynamicNormal() throws Throwable { |
778 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 777 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
779 runPerViewSettingsTest( | 778 runPerViewSettingsTest( |
780 new AwSettingsJavaScriptDynamicTestHelper(views.getContents0(), view
s.getClient0()), | 779 new AwSettingsJavaScriptDynamicTestHelper(views.getView0(), views.ge
tClient0()), |
781 new AwSettingsJavaScriptDynamicTestHelper(views.getContents1(), view
s.getClient1())); | 780 new AwSettingsJavaScriptDynamicTestHelper(views.getView1(), views.ge
tClient1())); |
782 } | 781 } |
783 | 782 |
784 @SmallTest | 783 @SmallTest |
785 @Feature({"Android-WebView", "Preferences"}) | 784 @Feature({"Android-WebView", "Preferences"}) |
786 public void testJavaScriptEnabledDynamicIncognito() throws Throwable { | 785 public void testJavaScriptEnabledDynamicIncognito() throws Throwable { |
787 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 786 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
788 runPerViewSettingsTest( | 787 runPerViewSettingsTest( |
789 new AwSettingsJavaScriptDynamicTestHelper(views.getContents0(), view
s.getClient0()), | 788 new AwSettingsJavaScriptDynamicTestHelper(views.getView0(), views.ge
tClient0()), |
790 new AwSettingsJavaScriptDynamicTestHelper(views.getContents1(), view
s.getClient1())); | 789 new AwSettingsJavaScriptDynamicTestHelper(views.getView1(), views.ge
tClient1())); |
791 } | 790 } |
792 | 791 |
793 @SmallTest | 792 @SmallTest |
794 @Feature({"Android-WebView", "Preferences"}) | 793 @Feature({"Android-WebView", "Preferences"}) |
795 public void testJavaScriptEnabledDynamicBoth() throws Throwable { | 794 public void testJavaScriptEnabledDynamicBoth() throws Throwable { |
796 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 795 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
797 runPerViewSettingsTest( | 796 runPerViewSettingsTest( |
798 new AwSettingsJavaScriptDynamicTestHelper(views.getContents0(), view
s.getClient0()), | 797 new AwSettingsJavaScriptDynamicTestHelper(views.getView0(), views.ge
tClient0()), |
799 new AwSettingsJavaScriptDynamicTestHelper(views.getContents1(), view
s.getClient1())); | 798 new AwSettingsJavaScriptDynamicTestHelper(views.getView1(), views.ge
tClient1())); |
800 } | 799 } |
801 | 800 |
802 @SmallTest | 801 @SmallTest |
803 @Feature({"Android-WebView", "Preferences"}) | 802 @Feature({"Android-WebView", "Preferences"}) |
804 public void testPluginsEnabledNormal() throws Throwable { | 803 public void testPluginsEnabledNormal() throws Throwable { |
805 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 804 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
806 runPerViewSettingsTest( | 805 runPerViewSettingsTest( |
807 new AwSettingsPluginsTestHelper(views.getContents0(), views.getClien
t0()), | 806 new AwSettingsPluginsTestHelper(views.getView0(), views.getClient0()
), |
808 new AwSettingsPluginsTestHelper(views.getContents1(), views.getClien
t1())); | 807 new AwSettingsPluginsTestHelper(views.getView1(), views.getClient1()
)); |
809 } | 808 } |
810 | 809 |
811 @SmallTest | 810 @SmallTest |
812 @Feature({"Android-WebView", "Preferences"}) | 811 @Feature({"Android-WebView", "Preferences"}) |
813 public void testPluginsEnabledIncognito() throws Throwable { | 812 public void testPluginsEnabledIncognito() throws Throwable { |
814 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 813 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
815 runPerViewSettingsTest( | 814 runPerViewSettingsTest( |
816 new AwSettingsPluginsTestHelper(views.getContents0(), views.getClien
t0()), | 815 new AwSettingsPluginsTestHelper(views.getView0(), views.getClient0()
), |
817 new AwSettingsPluginsTestHelper(views.getContents1(), views.getClien
t1())); | 816 new AwSettingsPluginsTestHelper(views.getView1(), views.getClient1()
)); |
818 } | 817 } |
819 | 818 |
820 @SmallTest | 819 @SmallTest |
821 @Feature({"Android-WebView", "Preferences"}) | 820 @Feature({"Android-WebView", "Preferences"}) |
822 public void testPluginsEnabledBoth() throws Throwable { | 821 public void testPluginsEnabledBoth() throws Throwable { |
823 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 822 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
824 runPerViewSettingsTest( | 823 runPerViewSettingsTest( |
825 new AwSettingsPluginsTestHelper(views.getContents0(), views.getClien
t0()), | 824 new AwSettingsPluginsTestHelper(views.getView0(), views.getClient0()
), |
826 new AwSettingsPluginsTestHelper(views.getContents1(), views.getClien
t1())); | 825 new AwSettingsPluginsTestHelper(views.getView1(), views.getClient1()
)); |
827 } | 826 } |
828 | 827 |
829 @SmallTest | 828 @SmallTest |
830 @Feature({"Android-WebView", "Preferences"}) | 829 @Feature({"Android-WebView", "Preferences"}) |
831 public void testStandardFontFamilyNormal() throws Throwable { | 830 public void testStandardFontFamilyNormal() throws Throwable { |
832 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 831 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
833 runPerViewSettingsTest( | 832 runPerViewSettingsTest( |
834 new AwSettingsStandardFontFamilyTestHelper(views.getContents0(), vie
ws.getClient0()), | 833 new AwSettingsStandardFontFamilyTestHelper(views.getView0(), views.g
etClient0()), |
835 new AwSettingsStandardFontFamilyTestHelper(views.getContents1(), vie
ws.getClient1())); | 834 new AwSettingsStandardFontFamilyTestHelper(views.getView1(), views.g
etClient1())); |
836 } | 835 } |
837 | 836 |
838 @SmallTest | 837 @SmallTest |
839 @Feature({"Android-WebView", "Preferences"}) | 838 @Feature({"Android-WebView", "Preferences"}) |
840 public void testStandardFontFamilyIncognito() throws Throwable { | 839 public void testStandardFontFamilyIncognito() throws Throwable { |
841 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 840 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
842 runPerViewSettingsTest( | 841 runPerViewSettingsTest( |
843 new AwSettingsStandardFontFamilyTestHelper(views.getContents0(), vie
ws.getClient0()), | 842 new AwSettingsStandardFontFamilyTestHelper(views.getView0(), views.g
etClient0()), |
844 new AwSettingsStandardFontFamilyTestHelper(views.getContents1(), vie
ws.getClient1())); | 843 new AwSettingsStandardFontFamilyTestHelper(views.getView1(), views.g
etClient1())); |
845 } | 844 } |
846 | 845 |
847 @SmallTest | 846 @SmallTest |
848 @Feature({"Android-WebView", "Preferences"}) | 847 @Feature({"Android-WebView", "Preferences"}) |
849 public void testStandardFontFamilyBoth() throws Throwable { | 848 public void testStandardFontFamilyBoth() throws Throwable { |
850 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 849 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
851 runPerViewSettingsTest( | 850 runPerViewSettingsTest( |
852 new AwSettingsStandardFontFamilyTestHelper(views.getContents0(), vie
ws.getClient0()), | 851 new AwSettingsStandardFontFamilyTestHelper(views.getView0(), views.g
etClient0()), |
853 new AwSettingsStandardFontFamilyTestHelper(views.getContents1(), vie
ws.getClient1())); | 852 new AwSettingsStandardFontFamilyTestHelper(views.getView1(), views.g
etClient1())); |
854 } | 853 } |
855 | 854 |
856 @SmallTest | 855 @SmallTest |
857 @Feature({"Android-WebView", "Preferences"}) | 856 @Feature({"Android-WebView", "Preferences"}) |
858 public void testDefaultFontSizeNormal() throws Throwable { | 857 public void testDefaultFontSizeNormal() throws Throwable { |
859 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 858 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
860 runPerViewSettingsTest( | 859 runPerViewSettingsTest( |
861 new AwSettingsDefaultFontSizeTestHelper(views.getContents0(), views.
getClient0()), | 860 new AwSettingsDefaultFontSizeTestHelper(views.getView0(), views.getC
lient0()), |
862 new AwSettingsDefaultFontSizeTestHelper(views.getContents1(), views.
getClient1())); | 861 new AwSettingsDefaultFontSizeTestHelper(views.getView1(), views.getC
lient1())); |
863 } | 862 } |
864 | 863 |
865 @SmallTest | 864 @SmallTest |
866 @Feature({"Android-WebView", "Preferences"}) | 865 @Feature({"Android-WebView", "Preferences"}) |
867 public void testDefaultFontSizeIncognito() throws Throwable { | 866 public void testDefaultFontSizeIncognito() throws Throwable { |
868 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 867 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
869 runPerViewSettingsTest( | 868 runPerViewSettingsTest( |
870 new AwSettingsDefaultFontSizeTestHelper(views.getContents0(), views.
getClient0()), | 869 new AwSettingsDefaultFontSizeTestHelper(views.getView0(), views.getC
lient0()), |
871 new AwSettingsDefaultFontSizeTestHelper(views.getContents1(), views.
getClient1())); | 870 new AwSettingsDefaultFontSizeTestHelper(views.getView1(), views.getC
lient1())); |
872 } | 871 } |
873 | 872 |
874 @SmallTest | 873 @SmallTest |
875 @Feature({"Android-WebView", "Preferences"}) | 874 @Feature({"Android-WebView", "Preferences"}) |
876 public void testDefaultFontSizeBoth() throws Throwable { | 875 public void testDefaultFontSizeBoth() throws Throwable { |
877 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 876 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
878 runPerViewSettingsTest( | 877 runPerViewSettingsTest( |
879 new AwSettingsDefaultFontSizeTestHelper(views.getContents0(), views.
getClient0()), | 878 new AwSettingsDefaultFontSizeTestHelper(views.getView0(), views.getC
lient0()), |
880 new AwSettingsDefaultFontSizeTestHelper(views.getContents1(), views.
getClient1())); | 879 new AwSettingsDefaultFontSizeTestHelper(views.getView1(), views.getC
lient1())); |
881 } | 880 } |
882 | 881 |
883 // The test verifies that disabling images loading by setting | 882 // The test verifies that disabling images loading by setting |
884 // setLoadsImagesAutomatically to false doesn't prevent images already | 883 // setLoadsImagesAutomatically to false doesn't prevent images already |
885 // contained in the memory cache to be displayed. The cache is shared among | 884 // contained in the memory cache to be displayed. The cache is shared among |
886 // all views, so the image can be put there by another view. | 885 // all views, so the image can be put there by another view. |
887 @Feature({"Android-WebView", "Preferences"}) | 886 @Feature({"Android-WebView", "Preferences"}) |
888 @SmallTest | 887 @SmallTest |
889 public void testLoadsImagesAutomaticallyWithCachedImage() throws Throwable { | 888 public void testLoadsImagesAutomaticallyWithCachedImage() throws Throwable { |
890 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 889 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
891 ContentSettings settings0 = getContentSettingsOnUiThread(views.getConten
ts0()); | 890 ContentSettings settings0 = getContentSettingsOnUiThread(views.getView0(
)); |
892 settings0.setJavaScriptEnabled(true); | 891 settings0.setJavaScriptEnabled(true); |
893 ContentSettings settings1 = getContentSettingsOnUiThread(views.getConten
ts1()); | 892 ContentSettings settings1 = getContentSettingsOnUiThread(views.getView1(
)); |
894 settings1.setJavaScriptEnabled(true); | 893 settings1.setJavaScriptEnabled(true); |
895 ImagePageGenerator generator = new ImagePageGenerator(0, false); | 894 ImagePageGenerator generator = new ImagePageGenerator(0, false); |
896 | 895 |
897 // First disable images loading and verify it. | 896 // First disable images loading and verify it. |
898 settings0.setLoadsImagesAutomatically(false); | 897 settings0.setLoadsImagesAutomatically(false); |
899 settings1.setLoadsImagesAutomatically(false); | 898 settings1.setLoadsImagesAutomatically(false); |
900 loadDataSync(views.getContents0(), | 899 loadDataSync(views.getView0(), |
901 views.getClient0().getOnPageFinishedHelper(), | 900 views.getClient0().getOnPageFinishedHelper(), |
902 generator.getPageSource(), | 901 generator.getPageSource(), |
903 "text/html", false); | 902 "text/html", false); |
904 loadDataSync(views.getContents1(), | 903 loadDataSync(views.getView1(), |
905 views.getClient1().getOnPageFinishedHelper(), | 904 views.getClient1().getOnPageFinishedHelper(), |
906 generator.getPageSource(), | 905 generator.getPageSource(), |
907 "text/html", false); | 906 "text/html", false); |
908 assertEquals(ImagePageGenerator.IMAGE_NOT_LOADED_STRING, | 907 assertEquals(ImagePageGenerator.IMAGE_NOT_LOADED_STRING, |
909 getTitleOnUiThread(views.getContents0())); | 908 getTitleOnUiThread(views.getView0())); |
910 assertEquals(ImagePageGenerator.IMAGE_NOT_LOADED_STRING, | 909 assertEquals(ImagePageGenerator.IMAGE_NOT_LOADED_STRING, |
911 getTitleOnUiThread(views.getContents1())); | 910 getTitleOnUiThread(views.getView1())); |
912 | 911 |
913 // Now enable images loading only for view 0. | 912 // Now enable images loading only for view 0. |
914 settings0.setLoadsImagesAutomatically(true); | 913 settings0.setLoadsImagesAutomatically(true); |
915 loadDataSync(views.getContents0(), | 914 loadDataSync(views.getView0(), |
916 views.getClient0().getOnPageFinishedHelper(), | 915 views.getClient0().getOnPageFinishedHelper(), |
917 generator.getPageSource(), | 916 generator.getPageSource(), |
918 "text/html", false); | 917 "text/html", false); |
919 loadDataSync(views.getContents1(), | 918 loadDataSync(views.getView1(), |
920 views.getClient1().getOnPageFinishedHelper(), | 919 views.getClient1().getOnPageFinishedHelper(), |
921 generator.getPageSource(), | 920 generator.getPageSource(), |
922 "text/html", false); | 921 "text/html", false); |
923 | 922 |
924 // Once the image has been cached by contentView0, it is available to co
ntentView1. | 923 // Once the image has been cached by contentView0, it is available to co
ntentView1. |
925 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, | 924 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, getTitleOnUiThread(
views.getView0())); |
926 getTitleOnUiThread(views.getContents0())); | 925 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, getTitleOnUiThread(
views.getView1())); |
927 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, | |
928 getTitleOnUiThread(views.getContents1())); | |
929 ImagePageGenerator generator1 = new ImagePageGenerator(1, false); | 926 ImagePageGenerator generator1 = new ImagePageGenerator(1, false); |
930 | 927 |
931 // This is a new image. view 1 can't load it. | 928 // This is a new image. view 1 can't load it. |
932 loadDataSync(views.getContents1(), | 929 loadDataSync(views.getView1(), |
933 views.getClient1().getOnPageFinishedHelper(), | 930 views.getClient1().getOnPageFinishedHelper(), |
934 generator1.getPageSource(), | 931 generator1.getPageSource(), |
935 "text/html", false); | 932 "text/html", false); |
936 assertEquals(ImagePageGenerator.IMAGE_NOT_LOADED_STRING, | 933 assertEquals(ImagePageGenerator.IMAGE_NOT_LOADED_STRING, |
937 getTitleOnUiThread(views.getContents1())); | 934 getTitleOnUiThread(views.getView1())); |
938 loadDataSync(views.getContents0(), | 935 loadDataSync(views.getView0(), |
939 views.getClient0().getOnPageFinishedHelper(), | 936 views.getClient0().getOnPageFinishedHelper(), |
940 generator1.getPageSource(), | 937 generator1.getPageSource(), |
941 "text/html", false); | 938 "text/html", false); |
942 loadDataSync(views.getContents1(), | 939 loadDataSync(views.getView1(), |
943 views.getClient1().getOnPageFinishedHelper(), | 940 views.getClient1().getOnPageFinishedHelper(), |
944 generator1.getPageSource(), | 941 generator1.getPageSource(), |
945 "text/html", false); | 942 "text/html", false); |
946 | 943 |
947 // Once the image has been cached by contentViewCore0, it is available t
o contentViewCore1. | 944 // Once the image has been cached by contentViewCore0, it is available t
o contentViewCore1. |
948 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, | 945 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, getTitleOnUiThread(
views.getView0())); |
949 getTitleOnUiThread(views.getContents0())); | 946 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, getTitleOnUiThread(
views.getView1())); |
950 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, | |
951 getTitleOnUiThread(views.getContents1())); | |
952 } | 947 } |
953 | 948 |
954 // The test verifies that after changing the LoadsImagesAutomatically | 949 // The test verifies that after changing the LoadsImagesAutomatically |
955 // setting value from false to true previously skipped images are | 950 // setting value from false to true previously skipped images are |
956 // automatically loaded. | 951 // automatically loaded. |
957 @SmallTest | 952 @SmallTest |
958 @Feature({"Android-WebView", "Preferences"}) | 953 @Feature({"Android-WebView", "Preferences"}) |
959 public void testLoadsImagesAutomaticallyNoPageReload() throws Throwable { | 954 public void testLoadsImagesAutomaticallyNoPageReload() throws Throwable { |
960 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 955 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
961 final AwTestContainerView testContainerView = | 956 final ContentViewCore contentView = |
962 createAwTestContainerViewOnMainSync(contentClient); | 957 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
963 final AwContents awContents = testContainerView.getAwContents(); | |
964 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); | 958 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); |
965 ContentSettings settings = getContentSettingsOnUiThread(awContents); | 959 ContentSettings settings = getContentSettingsOnUiThread(contentView); |
966 settings.setJavaScriptEnabled(true); | 960 settings.setJavaScriptEnabled(true); |
967 ImagePageGenerator generator = new ImagePageGenerator(0, false); | 961 ImagePageGenerator generator = new ImagePageGenerator(0, false); |
968 settings.setLoadsImagesAutomatically(false); | 962 settings.setLoadsImagesAutomatically(false); |
969 loadDataSync(awContents, | 963 loadDataSync(contentView, |
970 contentClient.getOnPageFinishedHelper(), | 964 contentClient.getOnPageFinishedHelper(), |
971 generator.getPageSource(), | 965 generator.getPageSource(), |
972 "text/html", false); | 966 "text/html", false); |
973 assertEquals(ImagePageGenerator.IMAGE_NOT_LOADED_STRING, | 967 assertEquals(ImagePageGenerator.IMAGE_NOT_LOADED_STRING, |
974 getTitleOnUiThread(awContents)); | 968 getTitleOnUiThread(contentView)); |
975 settings.setLoadsImagesAutomatically(true); | 969 settings.setLoadsImagesAutomatically(true); |
976 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { | 970 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { |
977 @Override | 971 @Override |
978 public boolean isSatisfied() { | 972 public boolean isSatisfied() { |
979 try { | 973 try { |
980 return !ImagePageGenerator.IMAGE_NOT_LOADED_STRING.equals( | 974 return !ImagePageGenerator.IMAGE_NOT_LOADED_STRING.equals( |
981 getTitleOnUiThread(awContents)); | 975 getTitleOnUiThread(contentView)); |
982 } catch (Throwable t) { | 976 } catch (Throwable t) { |
983 t.printStackTrace(); | 977 t.printStackTrace(); |
984 fail("Failed to getTitleOnUiThread: " + t.toString()); | 978 fail("Failed to getTitleOnUiThread: " + t.toString()); |
985 return false; | 979 return false; |
986 } | 980 } |
987 } | 981 } |
988 }, TEST_TIMEOUT, CHECK_INTERVAL)); | 982 }, TEST_TIMEOUT, CHECK_INTERVAL)); |
989 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, getTitleOnUiThread(
awContents)); | 983 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, getTitleOnUiThread(
contentView)); |
990 } | 984 } |
991 | 985 |
992 @SmallTest | 986 @SmallTest |
993 @Feature({"Android-WebView", "Preferences"}) | 987 @Feature({"Android-WebView", "Preferences"}) |
994 public void testLoadsImagesAutomaticallyNormal() throws Throwable { | 988 public void testLoadsImagesAutomaticallyNormal() throws Throwable { |
995 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 989 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
996 runPerViewSettingsTest( | 990 runPerViewSettingsTest( |
997 new AwSettingsLoadImagesAutomaticallyTestHelper( | 991 new AwSettingsLoadImagesAutomaticallyTestHelper( |
998 views.getContents0(), views.getClient0(), new ImagePageGenerator
(0, true)), | 992 views.getView0(), views.getClient0(), new ImagePageGenerator(0,
true)), |
999 new AwSettingsLoadImagesAutomaticallyTestHelper( | 993 new AwSettingsLoadImagesAutomaticallyTestHelper( |
1000 views.getContents1(), views.getClient1(), new ImagePageGenerator
(1, true))); | 994 views.getView1(), views.getClient1(), new ImagePageGenerator(1,
true))); |
1001 } | 995 } |
1002 | 996 |
1003 @SmallTest | 997 @SmallTest |
1004 @Feature({"Android-WebView", "Preferences"}) | 998 @Feature({"Android-WebView", "Preferences"}) |
1005 public void testLoadsImagesAutomaticallyIncognito() throws Throwable { | 999 public void testLoadsImagesAutomaticallyIncognito() throws Throwable { |
1006 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 1000 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
1007 runPerViewSettingsTest( | 1001 runPerViewSettingsTest( |
1008 new AwSettingsLoadImagesAutomaticallyTestHelper( | 1002 new AwSettingsLoadImagesAutomaticallyTestHelper( |
1009 views.getContents0(), views.getClient0(), new ImagePageGenerator
(0, true)), | 1003 views.getView0(), views.getClient0(), new ImagePageGenerator(0,
true)), |
1010 new AwSettingsLoadImagesAutomaticallyTestHelper( | 1004 new AwSettingsLoadImagesAutomaticallyTestHelper( |
1011 views.getContents1(), views.getClient1(), new ImagePageGenerator
(1, true))); | 1005 views.getView1(), views.getClient1(), new ImagePageGenerator(1,
true))); |
1012 } | 1006 } |
1013 | 1007 |
1014 @SmallTest | 1008 @SmallTest |
1015 @Feature({"Android-WebView", "Preferences"}) | 1009 @Feature({"Android-WebView", "Preferences"}) |
1016 public void testLoadsImagesAutomaticallyBoth() throws Throwable { | 1010 public void testLoadsImagesAutomaticallyBoth() throws Throwable { |
1017 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 1011 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
1018 runPerViewSettingsTest( | 1012 runPerViewSettingsTest( |
1019 new AwSettingsLoadImagesAutomaticallyTestHelper( | 1013 new AwSettingsLoadImagesAutomaticallyTestHelper( |
1020 views.getContents0(), views.getClient0(), new ImagePageGenerator
(0, true)), | 1014 views.getView0(), views.getClient0(), new ImagePageGenerator(0,
true)), |
1021 new AwSettingsLoadImagesAutomaticallyTestHelper( | 1015 new AwSettingsLoadImagesAutomaticallyTestHelper( |
1022 views.getContents1(), views.getClient1(), new ImagePageGenerator
(1, true))); | 1016 views.getView1(), views.getClient1(), new ImagePageGenerator(1,
true))); |
1023 } | 1017 } |
1024 | 1018 |
1025 @SmallTest | 1019 @SmallTest |
1026 @Feature({"Android-WebView", "Preferences"}) | 1020 @Feature({"Android-WebView", "Preferences"}) |
1027 public void testDefaultTextEncodingNormal() throws Throwable { | 1021 public void testDefaultTextEncodingNormal() throws Throwable { |
1028 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 1022 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
1029 runPerViewSettingsTest( | 1023 runPerViewSettingsTest( |
1030 new AwSettingsDefaultTextEncodingTestHelper(views.getContents0(), vi
ews.getClient0()), | 1024 new AwSettingsDefaultTextEncodingTestHelper(views.getView0(), views.
getClient0()), |
1031 new AwSettingsDefaultTextEncodingTestHelper(views.getContents1(), vi
ews.getClient1())); | 1025 new AwSettingsDefaultTextEncodingTestHelper(views.getView1(), views.
getClient1())); |
1032 } | 1026 } |
1033 | 1027 |
1034 @SmallTest | 1028 @SmallTest |
1035 @Feature({"Android-WebView", "Preferences"}) | 1029 @Feature({"Android-WebView", "Preferences"}) |
1036 public void testDefaultTextEncodingIncognito() throws Throwable { | 1030 public void testDefaultTextEncodingIncognito() throws Throwable { |
1037 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 1031 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
1038 runPerViewSettingsTest( | 1032 runPerViewSettingsTest( |
1039 new AwSettingsDefaultTextEncodingTestHelper(views.getContents0(), vi
ews.getClient0()), | 1033 new AwSettingsDefaultTextEncodingTestHelper(views.getView0(), views.
getClient0()), |
1040 new AwSettingsDefaultTextEncodingTestHelper(views.getContents1(), vi
ews.getClient1())); | 1034 new AwSettingsDefaultTextEncodingTestHelper(views.getView1(), views.
getClient1())); |
1041 } | 1035 } |
1042 | 1036 |
1043 @SmallTest | 1037 @SmallTest |
1044 @Feature({"Android-WebView", "Preferences"}) | 1038 @Feature({"Android-WebView", "Preferences"}) |
1045 public void testDefaultTextEncodingBoth() throws Throwable { | 1039 public void testDefaultTextEncodingBoth() throws Throwable { |
1046 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 1040 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
1047 runPerViewSettingsTest( | 1041 runPerViewSettingsTest( |
1048 new AwSettingsDefaultTextEncodingTestHelper(views.getContents0(), vi
ews.getClient0()), | 1042 new AwSettingsDefaultTextEncodingTestHelper(views.getView0(), views.
getClient0()), |
1049 new AwSettingsDefaultTextEncodingTestHelper(views.getContents1(), vi
ews.getClient1())); | 1043 new AwSettingsDefaultTextEncodingTestHelper(views.getView1(), views.
getClient1())); |
1050 } | 1044 } |
1051 | 1045 |
1052 // The test verifies that the default user agent string follows the format | 1046 // The test verifies that the default user agent string follows the format |
1053 // defined in Android CTS tests: | 1047 // defined in Android CTS tests: |
1054 // | 1048 // |
1055 // Mozilla/5.0 (Linux;[ U;] Android <version>;[ <language>-<country>;] | 1049 // Mozilla/5.0 (Linux;[ U;] Android <version>;[ <language>-<country>;] |
1056 // [<devicemodel>;] Build/<buildID>) AppleWebKit/<major>.<minor> (KHTML, lik
e Gecko) | 1050 // [<devicemodel>;] Build/<buildID>) AppleWebKit/<major>.<minor> (KHTML, lik
e Gecko) |
1057 // Version/<major>.<minor>[ Mobile] Safari/<major>.<minor> | 1051 // Version/<major>.<minor>[ Mobile] Safari/<major>.<minor> |
1058 @SmallTest | 1052 @SmallTest |
1059 @Feature({"Android-WebView", "Preferences"}) | 1053 @Feature({"Android-WebView", "Preferences"}) |
1060 public void testUserAgentStringDefault() throws Throwable { | 1054 public void testUserAgentStringDefault() throws Throwable { |
1061 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1055 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1062 final AwTestContainerView testContainerView = | 1056 final ContentViewCore contentView = |
1063 createAwTestContainerViewOnMainSync(contentClient); | 1057 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1064 final AwContents awContents = testContainerView.getAwContents(); | 1058 ContentSettings settings = getContentSettingsOnUiThread(contentView); |
1065 ContentSettings settings = getContentSettingsOnUiThread(awContents); | |
1066 final String actualUserAgentString = settings.getUserAgentString(); | 1059 final String actualUserAgentString = settings.getUserAgentString(); |
1067 final String patternString = | 1060 final String patternString = |
1068 "Mozilla/5\\.0 \\(Linux;( U;)? Android ([^;]+);( (\\w+)-(\\w+);)
?" + | 1061 "Mozilla/5\\.0 \\(Linux;( U;)? Android ([^;]+);( (\\w+)-(\\w+);)
?" + |
1069 "\\s?(.*)\\sBuild/(.+)\\) AppleWebKit/(\\d+)\\.(\\d+) \\(KHTML,
like Gecko\\) " + | 1062 "\\s?(.*)\\sBuild/(.+)\\) AppleWebKit/(\\d+)\\.(\\d+) \\(KHTML,
like Gecko\\) " + |
1070 "Version/\\d+\\.\\d+( Mobile)? Safari/(\\d+)\\.(\\d+)"; | 1063 "Version/\\d+\\.\\d+( Mobile)? Safari/(\\d+)\\.(\\d+)"; |
1071 final Pattern userAgentExpr = Pattern.compile(patternString); | 1064 final Pattern userAgentExpr = Pattern.compile(patternString); |
1072 Matcher patternMatcher = userAgentExpr.matcher(actualUserAgentString); | 1065 Matcher patternMatcher = userAgentExpr.matcher(actualUserAgentString); |
1073 assertTrue(String.format("User agent string did not match expected patte
rn. \nExpected " + | 1066 assertTrue(String.format("User agent string did not match expected patte
rn. \nExpected " + |
1074 "pattern:\n%s\nActual:\n%s", patternString, actualUserAg
entString), | 1067 "pattern:\n%s\nActual:\n%s", patternString, actualUserAg
entString), |
1075 patternMatcher.find()); | 1068 patternMatcher.find()); |
1076 // No country-language code token. | 1069 // No country-language code token. |
1077 assertEquals(null, patternMatcher.group(3)); | 1070 assertEquals(null, patternMatcher.group(3)); |
1078 if ("REL".equals(Build.VERSION.CODENAME)) { | 1071 if ("REL".equals(Build.VERSION.CODENAME)) { |
1079 // Model is only added in release builds | 1072 // Model is only added in release builds |
1080 assertEquals(Build.MODEL, patternMatcher.group(6)); | 1073 assertEquals(Build.MODEL, patternMatcher.group(6)); |
1081 // Release version is valid only in release builds | 1074 // Release version is valid only in release builds |
1082 assertEquals(Build.VERSION.RELEASE, patternMatcher.group(2)); | 1075 assertEquals(Build.VERSION.RELEASE, patternMatcher.group(2)); |
1083 } | 1076 } |
1084 assertEquals(Build.ID, patternMatcher.group(7)); | 1077 assertEquals(Build.ID, patternMatcher.group(7)); |
1085 } | 1078 } |
1086 | 1079 |
1087 @SmallTest | 1080 @SmallTest |
1088 @Feature({"Android-WebView", "Preferences"}) | 1081 @Feature({"Android-WebView", "Preferences"}) |
1089 public void testUserAgentStringOverride() throws Throwable { | 1082 public void testUserAgentStringOverride() throws Throwable { |
1090 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1083 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1091 final AwTestContainerView testContainerView = | 1084 final ContentViewCore contentView = |
1092 createAwTestContainerViewOnMainSync(contentClient); | 1085 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1093 final AwContents awContents = testContainerView.getAwContents(); | 1086 ContentSettings settings = getContentSettingsOnUiThread(contentView); |
1094 ContentSettings settings = getContentSettingsOnUiThread(awContents); | |
1095 final String defaultUserAgentString = settings.getUserAgentString(); | 1087 final String defaultUserAgentString = settings.getUserAgentString(); |
1096 | 1088 |
1097 // Check that an attempt to reset the default UA string has no effect. | 1089 // Check that an attempt to reset the default UA string has no effect. |
1098 settings.setUserAgentString(null); | 1090 settings.setUserAgentString(null); |
1099 assertEquals(defaultUserAgentString, settings.getUserAgentString()); | 1091 assertEquals(defaultUserAgentString, settings.getUserAgentString()); |
1100 settings.setUserAgentString(""); | 1092 settings.setUserAgentString(""); |
1101 assertEquals(defaultUserAgentString, settings.getUserAgentString()); | 1093 assertEquals(defaultUserAgentString, settings.getUserAgentString()); |
1102 | 1094 |
1103 // Check that we can also set the default value. | 1095 // Check that we can also set the default value. |
1104 settings.setUserAgentString(defaultUserAgentString); | 1096 settings.setUserAgentString(defaultUserAgentString); |
1105 assertEquals(defaultUserAgentString, settings.getUserAgentString()); | 1097 assertEquals(defaultUserAgentString, settings.getUserAgentString()); |
1106 | 1098 |
1107 // Set a custom UA string, verify that it can be reset back to default. | 1099 // Set a custom UA string, verify that it can be reset back to default. |
1108 final String customUserAgentString = "ContentSettingsTest"; | 1100 final String customUserAgentString = "ContentSettingsTest"; |
1109 settings.setUserAgentString(customUserAgentString); | 1101 settings.setUserAgentString(customUserAgentString); |
1110 assertEquals(customUserAgentString, settings.getUserAgentString()); | 1102 assertEquals(customUserAgentString, settings.getUserAgentString()); |
1111 settings.setUserAgentString(null); | 1103 settings.setUserAgentString(null); |
1112 assertEquals(defaultUserAgentString, settings.getUserAgentString()); | 1104 assertEquals(defaultUserAgentString, settings.getUserAgentString()); |
1113 } | 1105 } |
1114 | 1106 |
1115 // Verify that the current UA override setting has a priority over UA | 1107 // Verify that the current UA override setting has a priority over UA |
1116 // overrides in navigation history entries. | 1108 // overrides in navigation history entries. |
1117 @SmallTest | 1109 @SmallTest |
1118 @Feature({"Android-WebView", "Preferences"}) | 1110 @Feature({"Android-WebView", "Preferences"}) |
1119 public void testUserAgentStringOverrideForHistory() throws Throwable { | 1111 public void testUserAgentStringOverrideForHistory() throws Throwable { |
1120 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1112 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1121 final AwTestContainerView testContainerView = | 1113 final ContentViewCore contentView = |
1122 createAwTestContainerViewOnMainSync(contentClient); | 1114 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1123 final AwContents awContents = testContainerView.getAwContents(); | |
1124 final ContentViewCore contentView = testContainerView.getContentViewCore
(); | |
1125 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); | 1115 CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHel
per(); |
1126 ContentSettings settings = getContentSettingsOnUiThread(awContents); | 1116 ContentSettings settings = getContentSettingsOnUiThread(contentView); |
1127 settings.setJavaScriptEnabled(true); | 1117 settings.setJavaScriptEnabled(true); |
1128 final String defaultUserAgentString = settings.getUserAgentString(); | 1118 final String defaultUserAgentString = settings.getUserAgentString(); |
1129 final String customUserAgentString = "ContentSettingsTest"; | 1119 final String customUserAgentString = "ContentSettingsTest"; |
1130 // We are using different page titles to make sure that we are really | 1120 // We are using different page titles to make sure that we are really |
1131 // going back and forward between them. | 1121 // going back and forward between them. |
1132 final String pageTemplate = | 1122 final String pageTemplate = |
1133 "<html><head><title>%s</title></head>" + | 1123 "<html><head><title>%s</title></head>" + |
1134 "<body onload='document.title+=navigator.userAgent'></body>" + | 1124 "<body onload='document.title+=navigator.userAgent'></body>" + |
1135 "</html>"; | 1125 "</html>"; |
1136 final String page1Title = "Page1"; | 1126 final String page1Title = "Page1"; |
1137 final String page2Title = "Page2"; | 1127 final String page2Title = "Page2"; |
1138 final String page1 = String.format(pageTemplate, page1Title); | 1128 final String page1 = String.format(pageTemplate, page1Title); |
1139 final String page2 = String.format(pageTemplate, page2Title); | 1129 final String page2 = String.format(pageTemplate, page2Title); |
1140 settings.setUserAgentString(customUserAgentString); | 1130 settings.setUserAgentString(customUserAgentString); |
1141 loadDataSync( | 1131 loadDataSync( |
1142 awContents, contentClient.getOnPageFinishedHelper(), page1, "text/ht
ml", false); | 1132 contentView, contentClient.getOnPageFinishedHelper(), page1, "text/h
tml", false); |
1143 assertEquals(page1Title + customUserAgentString, getTitleOnUiThread(awCo
ntents)); | 1133 assertEquals(page1Title + customUserAgentString, getTitleOnUiThread(cont
entView)); |
1144 loadDataSync( | 1134 loadDataSync( |
1145 awContents, contentClient.getOnPageFinishedHelper(), page2, "text/ht
ml", false); | 1135 contentView, contentClient.getOnPageFinishedHelper(), page2, "text/h
tml", false); |
1146 assertEquals(page2Title + customUserAgentString, getTitleOnUiThread(awCo
ntents)); | 1136 assertEquals(page2Title + customUserAgentString, getTitleOnUiThread(cont
entView)); |
1147 settings.setUserAgentString(null); | 1137 settings.setUserAgentString(null); |
1148 // Must not cause any changes until the next page loading. | 1138 // Must not cause any changes until the next page loading. |
1149 assertEquals(page2Title + customUserAgentString, getTitleOnUiThread(awCo
ntents)); | 1139 assertEquals(page2Title + customUserAgentString, getTitleOnUiThread(cont
entView)); |
1150 HistoryUtils.goBackSync(getInstrumentation(), contentView, onPageFinishe
dHelper); | 1140 HistoryUtils.goBackSync(getInstrumentation(), contentView, onPageFinishe
dHelper); |
1151 assertEquals(page1Title + defaultUserAgentString, getTitleOnUiThread(awC
ontents)); | 1141 assertEquals(page1Title + defaultUserAgentString, getTitleOnUiThread(con
tentView)); |
1152 HistoryUtils.goForwardSync(getInstrumentation(), contentView, | 1142 HistoryUtils.goForwardSync(getInstrumentation(), contentView, |
1153 onPageFinishedHelper); | 1143 onPageFinishedHelper); |
1154 assertEquals(page2Title + defaultUserAgentString, getTitleOnUiThread(awC
ontents)); | 1144 assertEquals(page2Title + defaultUserAgentString, getTitleOnUiThread(con
tentView)); |
1155 } | 1145 } |
1156 | 1146 |
1157 @SmallTest | 1147 @SmallTest |
1158 @Feature({"Android-WebView", "Preferences"}) | 1148 @Feature({"Android-WebView", "Preferences"}) |
1159 public void testUserAgentStringNormal() throws Throwable { | 1149 public void testUserAgentStringNormal() throws Throwable { |
1160 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 1150 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
1161 runPerViewSettingsTest( | 1151 runPerViewSettingsTest( |
1162 new AwSettingsUserAgentStringTestHelper(views.getContents0(), views.
getClient0()), | 1152 new AwSettingsUserAgentStringTestHelper(views.getView0(), views.getC
lient0()), |
1163 new AwSettingsUserAgentStringTestHelper(views.getContents1(), views.
getClient1())); | 1153 new AwSettingsUserAgentStringTestHelper(views.getView1(), views.getC
lient1())); |
1164 } | 1154 } |
1165 | 1155 |
1166 @SmallTest | 1156 @SmallTest |
1167 @Feature({"Android-WebView", "Preferences"}) | 1157 @Feature({"Android-WebView", "Preferences"}) |
1168 public void testUserAgentStringIncognito() throws Throwable { | 1158 public void testUserAgentStringIncognito() throws Throwable { |
1169 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 1159 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
1170 runPerViewSettingsTest( | 1160 runPerViewSettingsTest( |
1171 new AwSettingsUserAgentStringTestHelper(views.getContents0(), views.
getClient0()), | 1161 new AwSettingsUserAgentStringTestHelper(views.getView0(), views.getC
lient0()), |
1172 new AwSettingsUserAgentStringTestHelper(views.getContents1(), views.
getClient1())); | 1162 new AwSettingsUserAgentStringTestHelper(views.getView1(), views.getC
lient1())); |
1173 } | 1163 } |
1174 | 1164 |
1175 @SmallTest | 1165 @SmallTest |
1176 @Feature({"Android-WebView", "Preferences"}) | 1166 @Feature({"Android-WebView", "Preferences"}) |
1177 public void testUserAgentStringBoth() throws Throwable { | 1167 public void testUserAgentStringBoth() throws Throwable { |
1178 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 1168 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
1179 runPerViewSettingsTest( | 1169 runPerViewSettingsTest( |
1180 new AwSettingsUserAgentStringTestHelper(views.getContents0(), views.
getClient0()), | 1170 new AwSettingsUserAgentStringTestHelper(views.getView0(), views.getC
lient0()), |
1181 new AwSettingsUserAgentStringTestHelper(views.getContents1(), views.
getClient1())); | 1171 new AwSettingsUserAgentStringTestHelper(views.getView1(), views.getC
lient1())); |
1182 } | 1172 } |
1183 | 1173 |
1184 @SmallTest | 1174 @SmallTest |
1185 @Feature({"Android-WebView", "Preferences"}) | 1175 @Feature({"Android-WebView", "Preferences"}) |
1186 public void testDomStorageEnabledNormal() throws Throwable { | 1176 public void testDomStorageEnabledNormal() throws Throwable { |
1187 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 1177 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
1188 runPerViewSettingsTest( | 1178 runPerViewSettingsTest( |
1189 new AwSettingsDomStorageEnabledTestHelper(views.getContents0(), view
s.getClient0()), | 1179 new AwSettingsDomStorageEnabledTestHelper(views.getView0(), views.ge
tClient0()), |
1190 new AwSettingsDomStorageEnabledTestHelper(views.getContents1(), view
s.getClient1())); | 1180 new AwSettingsDomStorageEnabledTestHelper(views.getView1(), views.ge
tClient1())); |
1191 } | 1181 } |
1192 | 1182 |
1193 @SmallTest | 1183 @SmallTest |
1194 @Feature({"Android-WebView", "Preferences"}) | 1184 @Feature({"Android-WebView", "Preferences"}) |
1195 public void testDomStorageEnabledIncognito() throws Throwable { | 1185 public void testDomStorageEnabledIncognito() throws Throwable { |
1196 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 1186 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
1197 runPerViewSettingsTest( | 1187 runPerViewSettingsTest( |
1198 new AwSettingsDomStorageEnabledTestHelper(views.getContents0(), view
s.getClient0()), | 1188 new AwSettingsDomStorageEnabledTestHelper(views.getView0(), views.ge
tClient0()), |
1199 new AwSettingsDomStorageEnabledTestHelper(views.getContents1(), view
s.getClient1())); | 1189 new AwSettingsDomStorageEnabledTestHelper(views.getView1(), views.ge
tClient1())); |
1200 } | 1190 } |
1201 | 1191 |
1202 @SmallTest | 1192 @SmallTest |
1203 @Feature({"Android-WebView", "Preferences"}) | 1193 @Feature({"Android-WebView", "Preferences"}) |
1204 public void testDomStorageEnabledBoth() throws Throwable { | 1194 public void testDomStorageEnabledBoth() throws Throwable { |
1205 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 1195 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
1206 runPerViewSettingsTest( | 1196 runPerViewSettingsTest( |
1207 new AwSettingsDomStorageEnabledTestHelper(views.getContents0(), view
s.getClient0()), | 1197 new AwSettingsDomStorageEnabledTestHelper(views.getView0(), views.ge
tClient0()), |
1208 new AwSettingsDomStorageEnabledTestHelper(views.getContents1(), view
s.getClient1())); | 1198 new AwSettingsDomStorageEnabledTestHelper(views.getView1(), views.ge
tClient1())); |
1209 } | 1199 } |
1210 | 1200 |
1211 @SmallTest | 1201 @SmallTest |
1212 @Feature({"Android-WebView", "Preferences"}) | 1202 @Feature({"Android-WebView", "Preferences"}) |
1213 public void testUniversalAccessFromFilesNormal() throws Throwable { | 1203 public void testUniversalAccessFromFilesNormal() throws Throwable { |
1214 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 1204 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
1215 runPerViewSettingsTest( | 1205 runPerViewSettingsTest( |
1216 new AwSettingsUniversalAccessFromFilesTestHelper(views.getContents0(
), | 1206 new AwSettingsUniversalAccessFromFilesTestHelper(views.getView0(), v
iews.getClient0()), |
1217 views.getClient0()), | 1207 new AwSettingsUniversalAccessFromFilesTestHelper(views.getView1(), v
iews.getClient1())); |
1218 new AwSettingsUniversalAccessFromFilesTestHelper(views.getContents1(
), | |
1219 views.getClient1())); | |
1220 } | 1208 } |
1221 | 1209 |
1222 @SmallTest | 1210 @SmallTest |
1223 @Feature({"Android-WebView", "Preferences"}) | 1211 @Feature({"Android-WebView", "Preferences"}) |
1224 public void testUniversalAccessFromFilesIncognito() throws Throwable { | 1212 public void testUniversalAccessFromFilesIncognito() throws Throwable { |
1225 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 1213 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
1226 runPerViewSettingsTest( | 1214 runPerViewSettingsTest( |
1227 new AwSettingsUniversalAccessFromFilesTestHelper(views.getContents0(
), | 1215 new AwSettingsUniversalAccessFromFilesTestHelper(views.getView0(), v
iews.getClient0()), |
1228 views.getClient0()), | 1216 new AwSettingsUniversalAccessFromFilesTestHelper(views.getView1(), v
iews.getClient1())); |
1229 new AwSettingsUniversalAccessFromFilesTestHelper(views.getContents1(
), | |
1230 views.getClient1())); | |
1231 } | 1217 } |
1232 | 1218 |
1233 @SmallTest | 1219 @SmallTest |
1234 @Feature({"Android-WebView", "Preferences"}) | 1220 @Feature({"Android-WebView", "Preferences"}) |
1235 public void testUniversalAccessFromFilesBoth() throws Throwable { | 1221 public void testUniversalAccessFromFilesBoth() throws Throwable { |
1236 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 1222 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
1237 runPerViewSettingsTest( | 1223 runPerViewSettingsTest( |
1238 new AwSettingsUniversalAccessFromFilesTestHelper(views.getContents0(
), | 1224 new AwSettingsUniversalAccessFromFilesTestHelper(views.getView0(), v
iews.getClient0()), |
1239 views.getClient0()), | 1225 new AwSettingsUniversalAccessFromFilesTestHelper(views.getView1(), v
iews.getClient1())); |
1240 new AwSettingsUniversalAccessFromFilesTestHelper(views.getContents1(
), | |
1241 views.getClient1())); | |
1242 } | 1226 } |
1243 | 1227 |
1244 // This test verifies that local image resources can be loaded from file: | 1228 // This test verifies that local image resources can be loaded from file: |
1245 // URLs regardless of file access state. | 1229 // URLs regardless of file access state. |
1246 @SmallTest | 1230 @SmallTest |
1247 @Feature({"Android-WebView", "Preferences"}) | 1231 @Feature({"Android-WebView", "Preferences"}) |
1248 public void testFileAccessFromFilesImage() throws Throwable { | 1232 public void testFileAccessFromFilesImage() throws Throwable { |
1249 final String imageContainerUrl = UrlUtils.getTestFileUrl("webview/image_
access.html"); | 1233 final String imageContainerUrl = UrlUtils.getTestFileUrl("webview/image_
access.html"); |
1250 final String imageHeight = "16"; | 1234 final String imageHeight = "16"; |
1251 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1235 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1252 final AwTestContainerView testContainerView = | 1236 final ContentViewCore contentView = |
1253 createAwTestContainerViewOnMainSync(contentClient); | 1237 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1254 final AwContents awContents = testContainerView.getAwContents(); | 1238 ContentSettings settings = getContentSettingsOnUiThread(contentView); |
1255 ContentSettings settings = getContentSettingsOnUiThread(awContents); | |
1256 settings.setJavaScriptEnabled(true); | 1239 settings.setJavaScriptEnabled(true); |
1257 settings.setAllowUniversalAccessFromFileURLs(false); | 1240 settings.setAllowUniversalAccessFromFileURLs(false); |
1258 settings.setAllowFileAccessFromFileURLs(false); | 1241 settings.setAllowFileAccessFromFileURLs(false); |
1259 loadUrlSync(awContents, contentClient.getOnPageFinishedHelper(), imageCo
ntainerUrl); | 1242 loadUrlSync(contentView, contentClient.getOnPageFinishedHelper(), imageC
ontainerUrl); |
1260 assertEquals(imageHeight, getTitleOnUiThread(awContents)); | 1243 assertEquals(imageHeight, getTitleOnUiThread(contentView)); |
1261 } | 1244 } |
1262 | 1245 |
1263 @SmallTest | 1246 @SmallTest |
1264 @Feature({"Android-WebView", "Preferences"}) | 1247 @Feature({"Android-WebView", "Preferences"}) |
1265 public void testFileAccessFromFilesIframeNormal() throws Throwable { | 1248 public void testFileAccessFromFilesIframeNormal() throws Throwable { |
1266 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 1249 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
1267 runPerViewSettingsTest( | 1250 runPerViewSettingsTest( |
1268 new AwSettingsFileAccessFromFilesIframeTestHelper( | 1251 new AwSettingsFileAccessFromFilesIframeTestHelper( |
1269 views.getContents0(), views.getClient0()), | 1252 views.getView0(), views.getClient0()), |
1270 new AwSettingsFileAccessFromFilesIframeTestHelper( | 1253 new AwSettingsFileAccessFromFilesIframeTestHelper( |
1271 views.getContents1(), views.getClient1())); | 1254 views.getView1(), views.getClient1())); |
1272 } | 1255 } |
1273 | 1256 |
1274 @SmallTest | 1257 @SmallTest |
1275 @Feature({"Android-WebView", "Preferences"}) | 1258 @Feature({"Android-WebView", "Preferences"}) |
1276 public void testFileAccessFromFilesIframeIncognito() throws Throwable { | 1259 public void testFileAccessFromFilesIframeIncognito() throws Throwable { |
1277 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 1260 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
1278 runPerViewSettingsTest( | 1261 runPerViewSettingsTest( |
1279 new AwSettingsFileAccessFromFilesIframeTestHelper( | 1262 new AwSettingsFileAccessFromFilesIframeTestHelper( |
1280 views.getContents0(), views.getClient0()), | 1263 views.getView0(), views.getClient0()), |
1281 new AwSettingsFileAccessFromFilesIframeTestHelper( | 1264 new AwSettingsFileAccessFromFilesIframeTestHelper( |
1282 views.getContents1(), views.getClient1())); | 1265 views.getView1(), views.getClient1())); |
1283 } | 1266 } |
1284 | 1267 |
1285 @SmallTest | 1268 @SmallTest |
1286 @Feature({"Android-WebView", "Preferences"}) | 1269 @Feature({"Android-WebView", "Preferences"}) |
1287 public void testFileAccessFromFilesIframeBoth() throws Throwable { | 1270 public void testFileAccessFromFilesIframeBoth() throws Throwable { |
1288 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 1271 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
1289 runPerViewSettingsTest( | 1272 runPerViewSettingsTest( |
1290 new AwSettingsFileAccessFromFilesIframeTestHelper( | 1273 new AwSettingsFileAccessFromFilesIframeTestHelper( |
1291 views.getContents0(), views.getClient0()), | 1274 views.getView0(), views.getClient0()), |
1292 new AwSettingsFileAccessFromFilesIframeTestHelper( | 1275 new AwSettingsFileAccessFromFilesIframeTestHelper( |
1293 views.getContents1(), views.getClient1())); | 1276 views.getView1(), views.getClient1())); |
1294 } | 1277 } |
1295 | 1278 |
1296 @SmallTest | 1279 @SmallTest |
1297 @Feature({"Android-WebView", "Preferences"}) | 1280 @Feature({"Android-WebView", "Preferences"}) |
1298 public void testFileAccessFromFilesXhrNormal() throws Throwable { | 1281 public void testFileAccessFromFilesXhrNormal() throws Throwable { |
1299 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 1282 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
1300 runPerViewSettingsTest( | 1283 runPerViewSettingsTest( |
1301 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getContents0(), | 1284 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getView0(), vie
ws.getClient0()), |
1302 views.getClient0()), | 1285 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getView1(), vie
ws.getClient1())); |
1303 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getContents1(), | |
1304 views.getClient1())); | |
1305 } | 1286 } |
1306 | 1287 |
1307 @SmallTest | 1288 @SmallTest |
1308 @Feature({"Android-WebView", "Preferences"}) | 1289 @Feature({"Android-WebView", "Preferences"}) |
1309 public void testFileAccessFromFilesXhrIncognito() throws Throwable { | 1290 public void testFileAccessFromFilesXhrIncognito() throws Throwable { |
1310 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 1291 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
1311 runPerViewSettingsTest( | 1292 runPerViewSettingsTest( |
1312 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getContents0(), | 1293 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getView0(), vie
ws.getClient0()), |
1313 views.getClient0()), | 1294 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getView1(), vie
ws.getClient1())); |
1314 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getContents1(), | |
1315 views.getClient1())); | |
1316 } | 1295 } |
1317 | 1296 |
1318 @SmallTest | 1297 @SmallTest |
1319 @Feature({"Android-WebView", "Preferences"}) | 1298 @Feature({"Android-WebView", "Preferences"}) |
1320 public void testFileAccessFromFilesXhrBoth() throws Throwable { | 1299 public void testFileAccessFromFilesXhrBoth() throws Throwable { |
1321 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 1300 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
1322 runPerViewSettingsTest( | 1301 runPerViewSettingsTest( |
1323 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getContents0(), | 1302 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getView0(), vie
ws.getClient0()), |
1324 views.getClient0()), | 1303 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getView1(), vie
ws.getClient1())); |
1325 new AwSettingsFileAccessFromFilesXhrTestHelper(views.getContents1(), | |
1326 views.getClient1())); | |
1327 } | 1304 } |
1328 | 1305 |
1329 /** | 1306 /** |
1330 * @SmallTest | 1307 * @SmallTest |
1331 * @Feature({"Android-WebView", "Preferences"}) | 1308 * @Feature({"Android-WebView", "Preferences"}) |
1332 * BUG=153516 | 1309 * BUG=153516 |
1333 */ | 1310 */ |
1334 @FlakyTest | 1311 @FlakyTest |
1335 public void testFileUrlAccessNormal() throws Throwable { | 1312 public void testFileUrlAccessNormal() throws Throwable { |
1336 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 1313 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
1337 runPerViewSettingsTest( | 1314 runPerViewSettingsTest( |
1338 new AwSettingsFileUrlAccessTestHelper(views.getContents0(), views.ge
tClient0(), 0), | 1315 new AwSettingsFileUrlAccessTestHelper(views.getView0(), views.getCli
ent0(), 0), |
1339 new AwSettingsFileUrlAccessTestHelper(views.getContents1(), views.ge
tClient1(), 1)); | 1316 new AwSettingsFileUrlAccessTestHelper(views.getView1(), views.getCli
ent1(), 1)); |
1340 } | 1317 } |
1341 | 1318 |
1342 /** | 1319 /** |
1343 * @SmallTest | 1320 * @SmallTest |
1344 * @Feature({"Android-WebView", "Preferences"}) | 1321 * @Feature({"Android-WebView", "Preferences"}) |
1345 * BUG=153516 | 1322 * BUG=153516 |
1346 */ | 1323 */ |
1347 @FlakyTest | 1324 @FlakyTest |
1348 public void testFileUrlAccessIncognito() throws Throwable { | 1325 public void testFileUrlAccessIncognito() throws Throwable { |
1349 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 1326 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
1350 runPerViewSettingsTest( | 1327 runPerViewSettingsTest( |
1351 new AwSettingsFileUrlAccessTestHelper(views.getContents0(), views.ge
tClient0(), 0), | 1328 new AwSettingsFileUrlAccessTestHelper(views.getView0(), views.getCli
ent0(), 0), |
1352 new AwSettingsFileUrlAccessTestHelper(views.getContents1(), views.ge
tClient1(), 1)); | 1329 new AwSettingsFileUrlAccessTestHelper(views.getView1(), views.getCli
ent1(), 1)); |
1353 } | 1330 } |
1354 | 1331 |
1355 /** | 1332 /** |
1356 * @SmallTest | 1333 * @SmallTest |
1357 * @Feature({"Android-WebView", "Preferences"}) | 1334 * @Feature({"Android-WebView", "Preferences"}) |
1358 * BUG=153516 | 1335 * BUG=153516 |
1359 */ | 1336 */ |
1360 @FlakyTest | 1337 @FlakyTest |
1361 public void testFileUrlAccessBoth() throws Throwable { | 1338 public void testFileUrlAccessBoth() throws Throwable { |
1362 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 1339 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
1363 runPerViewSettingsTest( | 1340 runPerViewSettingsTest( |
1364 new AwSettingsFileUrlAccessTestHelper(views.getContents0(), views.ge
tClient0(), 0), | 1341 new AwSettingsFileUrlAccessTestHelper(views.getView0(), views.getCli
ent0(), 0), |
1365 new AwSettingsFileUrlAccessTestHelper(views.getContents1(), views.ge
tClient1(), 1)); | 1342 new AwSettingsFileUrlAccessTestHelper(views.getView1(), views.getCli
ent1(), 1)); |
1366 } | 1343 } |
1367 | 1344 |
1368 /** | 1345 /** |
1369 * @SmallTest | 1346 * @SmallTest |
1370 * @Feature({"Android-WebView", "Preferences"}) | 1347 * @Feature({"Android-WebView", "Preferences"}) |
1371 * BUG=153516 | 1348 * BUG=153516 |
1372 */ | 1349 */ |
1373 @FlakyTest | 1350 @FlakyTest |
1374 public void testContentUrlAccessNormal() throws Throwable { | 1351 public void testContentUrlAccessNormal() throws Throwable { |
1375 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); | 1352 ViewPair views = createViews(NORMAL_VIEW, NORMAL_VIEW); |
1376 runPerViewSettingsTest( | 1353 runPerViewSettingsTest( |
1377 new AwSettingsContentUrlAccessTestHelper(views.getContents0(), views
.getClient0(), 0), | 1354 new AwSettingsContentUrlAccessTestHelper(views.getView0(), views.get
Client0(), 0), |
1378 new AwSettingsContentUrlAccessTestHelper(views.getContents1(), views
.getClient1(), 1)); | 1355 new AwSettingsContentUrlAccessTestHelper(views.getView1(), views.get
Client1(), 1)); |
1379 } | 1356 } |
1380 | 1357 |
1381 /** | 1358 /** |
1382 * @SmallTest | 1359 * @SmallTest |
1383 * @Feature({"Android-WebView", "Preferences"}) | 1360 * @Feature({"Android-WebView", "Preferences"}) |
1384 * BUG=153516 | 1361 * BUG=153516 |
1385 */ | 1362 */ |
1386 @FlakyTest | 1363 @FlakyTest |
1387 public void testContentUrlAccessIncognito() throws Throwable { | 1364 public void testContentUrlAccessIncognito() throws Throwable { |
1388 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); | 1365 ViewPair views = createViews(INCOGNITO_VIEW, INCOGNITO_VIEW); |
1389 runPerViewSettingsTest( | 1366 runPerViewSettingsTest( |
1390 new AwSettingsContentUrlAccessTestHelper(views.getContents0(), views
.getClient0(), 0), | 1367 new AwSettingsContentUrlAccessTestHelper(views.getView0(), views.get
Client0(), 0), |
1391 new AwSettingsContentUrlAccessTestHelper(views.getContents1(), views
.getClient1(), 1)); | 1368 new AwSettingsContentUrlAccessTestHelper(views.getView1(), views.get
Client1(), 1)); |
1392 } | 1369 } |
1393 | 1370 |
1394 /** | 1371 /** |
1395 * @SmallTest | 1372 * @SmallTest |
1396 * @Feature({"Android-WebView", "Preferences"}) | 1373 * @Feature({"Android-WebView", "Preferences"}) |
1397 * BUG=153516 | 1374 * BUG=153516 |
1398 */ | 1375 */ |
1399 @FlakyTest | 1376 @FlakyTest |
1400 public void testContentUrlAccessBoth() throws Throwable { | 1377 public void testContentUrlAccessBoth() throws Throwable { |
1401 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); | 1378 ViewPair views = createViews(NORMAL_VIEW, INCOGNITO_VIEW); |
1402 runPerViewSettingsTest( | 1379 runPerViewSettingsTest( |
1403 new AwSettingsContentUrlAccessTestHelper(views.getContents0(), views
.getClient0(), 0), | 1380 new AwSettingsContentUrlAccessTestHelper(views.getView0(), views.get
Client0(), 0), |
1404 new AwSettingsContentUrlAccessTestHelper(views.getContents1(), views
.getClient1(), 1)); | 1381 new AwSettingsContentUrlAccessTestHelper(views.getView1(), views.get
Client1(), 1)); |
1405 } | 1382 } |
1406 | 1383 |
1407 @SmallTest | 1384 @SmallTest |
1408 @Feature({"Android-WebView", "Preferences", "Navigation"}) | 1385 @Feature({"Android-WebView", "Preferences", "Navigation"}) |
1409 public void testBlockingContentUrlsFromDataUrls() throws Throwable { | 1386 public void testBlockingContentUrlsFromDataUrls() throws Throwable { |
1410 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1387 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1411 final AwTestContainerView testContainerView = | 1388 final ContentViewCore contentView = |
1412 createAwTestContainerViewOnMainSync(contentClient); | 1389 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1413 final AwContents awContents = testContainerView.getAwContents(); | |
1414 final String target = "content_from_data"; | 1390 final String target = "content_from_data"; |
1415 final String page = "<html><body>" + | 1391 final String page = "<html><body>" + |
1416 "<img src=\"" + | 1392 "<img src=\"" + |
1417 createContentUrl(target) + "\">" + | 1393 createContentUrl(target) + "\">" + |
1418 "</body></html>"; | 1394 "</body></html>"; |
1419 resetResourceRequestCountInContentProvider(target); | 1395 resetResourceRequestCountInContentProvider(target); |
1420 loadDataSync( | 1396 loadDataSync( |
1421 awContents, | 1397 contentView, |
1422 contentClient.getOnPageFinishedHelper(), | 1398 contentClient.getOnPageFinishedHelper(), |
1423 page, | 1399 page, |
1424 "text/html", | 1400 "text/html", |
1425 false); | 1401 false); |
1426 ensureResourceRequestCountInContentProvider(target, 0); | 1402 ensureResourceRequestCountInContentProvider(target, 0); |
1427 } | 1403 } |
1428 | 1404 |
1429 private void doTestContentUrlFromFile(boolean addQueryParameters) throws Thr
owable { | 1405 private void doTestContentUrlFromFile(boolean addQueryParameters) throws Thr
owable { |
1430 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1406 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1431 final AwTestContainerView testContainerView = | 1407 final ContentViewCore contentView = |
1432 createAwTestContainerViewOnMainSync(contentClient); | 1408 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1433 final AwContents awContents = testContainerView.getAwContents(); | |
1434 final String target = "content_from_file_" + addQueryParameters; | 1409 final String target = "content_from_file_" + addQueryParameters; |
1435 Context context = getInstrumentation().getTargetContext(); | 1410 Context context = getInstrumentation().getTargetContext(); |
1436 final String fileName = context.getCacheDir() + "/" + target + ".html"; | 1411 final String fileName = context.getCacheDir() + "/" + target + ".html"; |
1437 try { | 1412 try { |
1438 resetResourceRequestCountInContentProvider(target); | 1413 resetResourceRequestCountInContentProvider(target); |
1439 TestFileUtil.createNewHtmlFile( | 1414 TestFileUtil.createNewHtmlFile( |
1440 fileName, | 1415 fileName, |
1441 target, | 1416 target, |
1442 "<img src=\"" + createContentUrl(target) + | 1417 "<img src=\"" + createContentUrl(target) + |
1443 (addQueryParameters ? "?weather=sunny&life=good" : "") + | 1418 (addQueryParameters ? "?weather=sunny&life=good" : "") + |
1444 "\">"); | 1419 "\">"); |
1445 loadUrlSync( | 1420 loadUrlSync( |
1446 awContents, | 1421 contentView, |
1447 contentClient.getOnPageFinishedHelper(), | 1422 contentClient.getOnPageFinishedHelper(), |
1448 "file:///" + fileName); | 1423 "file:///" + fileName); |
1449 ensureResourceRequestCountInContentProvider(target, 1); | 1424 ensureResourceRequestCountInContentProvider(target, 1); |
1450 } finally { | 1425 } finally { |
1451 TestFileUtil.deleteFile(fileName); | 1426 TestFileUtil.deleteFile(fileName); |
1452 } | 1427 } |
1453 } | 1428 } |
1454 | 1429 |
1455 /** | 1430 /** |
1456 * @SmallTest | 1431 * @SmallTest |
(...skipping 13 matching lines...) Expand all Loading... |
1470 */ | 1445 */ |
1471 @FlakyTest | 1446 @FlakyTest |
1472 public void testContentUrlWithQueryParametersFromFile() throws Throwable { | 1447 public void testContentUrlWithQueryParametersFromFile() throws Throwable { |
1473 doTestContentUrlFromFile(true); | 1448 doTestContentUrlFromFile(true); |
1474 } | 1449 } |
1475 | 1450 |
1476 @SmallTest | 1451 @SmallTest |
1477 @Feature({"Android-WebView", "Preferences"}) | 1452 @Feature({"Android-WebView", "Preferences"}) |
1478 public void testBlockNetworkImagesDoesNotBlockDataUrlImage() throws Throwabl
e { | 1453 public void testBlockNetworkImagesDoesNotBlockDataUrlImage() throws Throwabl
e { |
1479 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1454 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1480 final AwTestContainerView testContainerView = | 1455 final ContentViewCore contentView = |
1481 createAwTestContainerViewOnMainSync(contentClient); | 1456 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1482 final AwContents awContents = testContainerView.getAwContents(); | 1457 final ContentSettings settings = getContentSettingsOnUiThread(contentVie
w); |
1483 final ContentSettings settings = getContentSettingsOnUiThread(awContents
); | |
1484 ImagePageGenerator generator = new ImagePageGenerator(0, false); | 1458 ImagePageGenerator generator = new ImagePageGenerator(0, false); |
1485 | 1459 |
1486 settings.setJavaScriptEnabled(true); | 1460 settings.setJavaScriptEnabled(true); |
1487 settings.setImagesEnabled(false); | 1461 settings.setImagesEnabled(false); |
1488 loadDataSync(awContents, | 1462 loadDataSync(contentView, |
1489 contentClient.getOnPageFinishedHelper(), | 1463 contentClient.getOnPageFinishedHelper(), |
1490 generator.getPageSource(), | 1464 generator.getPageSource(), |
1491 "text/html", | 1465 "text/html", |
1492 false); | 1466 false); |
1493 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, getTitleOnUiThread(
awContents)); | 1467 assertEquals(ImagePageGenerator.IMAGE_LOADED_STRING, getTitleOnUiThread(
contentView)); |
1494 } | 1468 } |
1495 | 1469 |
1496 @SmallTest | 1470 @SmallTest |
1497 @Feature({"Android-WebView", "Preferences"}) | 1471 @Feature({"Android-WebView", "Preferences"}) |
1498 public void testBlockNetworkImagesBlocksNetworkImageAndReloadInPlace() throw
s Throwable { | 1472 public void testBlockNetworkImagesBlocksNetworkImageAndReloadInPlace() throw
s Throwable { |
1499 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1473 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1500 final AwTestContainerView testContainerView = | 1474 final ContentViewCore contentView = |
1501 createAwTestContainerViewOnMainSync(contentClient); | 1475 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1502 final AwContents awContents = testContainerView.getAwContents(); | 1476 final ContentSettings settings = getContentSettingsOnUiThread(contentVie
w); |
1503 final ContentSettings settings = getContentSettingsOnUiThread(awContents
); | |
1504 settings.setJavaScriptEnabled(true); | 1477 settings.setJavaScriptEnabled(true); |
1505 ImagePageGenerator generator = new ImagePageGenerator(0, false); | 1478 ImagePageGenerator generator = new ImagePageGenerator(0, false); |
1506 | 1479 |
1507 TestWebServer webServer = null; | 1480 TestWebServer webServer = null; |
1508 try { | 1481 try { |
1509 webServer = new TestWebServer(false); | 1482 webServer = new TestWebServer(false); |
1510 final String imagePath = "/image.png"; | 1483 final String imagePath = "/image.png"; |
1511 webServer.setResponseBase64(imagePath, generator.getImageSourceNoAdv
ance(), | 1484 webServer.setResponseBase64(imagePath, generator.getImageSourceNoAdv
ance(), |
1512 CommonResources.getImagePngHeaders(false)); | 1485 CommonResources.getImagePngHeaders(false)); |
1513 | 1486 |
1514 final String pagePath = "/html_image.html"; | 1487 final String pagePath = "/html_image.html"; |
1515 final String httpUrlImageHtml = generator.getPageTemplateSource(imag
ePath); | 1488 final String httpUrlImageHtml = generator.getPageTemplateSource(imag
ePath); |
1516 final String httpImageUrl = webServer.setResponse(pagePath, httpUrlI
mageHtml, null); | 1489 final String httpImageUrl = webServer.setResponse(pagePath, httpUrlI
mageHtml, null); |
1517 | 1490 |
1518 settings.setImagesEnabled(false); | 1491 settings.setImagesEnabled(false); |
1519 loadUrlSync(awContents, contentClient.getOnPageFinishedHelper(), htt
pImageUrl); | 1492 loadUrlSync(contentView, contentClient.getOnPageFinishedHelper(), ht
tpImageUrl); |
1520 assertEquals(ImagePageGenerator.IMAGE_NOT_LOADED_STRING, | 1493 assertEquals(ImagePageGenerator.IMAGE_NOT_LOADED_STRING, |
1521 getTitleOnUiThread(awContents)); | 1494 getTitleOnUiThread(contentView)); |
1522 | 1495 |
1523 settings.setImagesEnabled(true); | 1496 settings.setImagesEnabled(true); |
1524 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { | 1497 assertTrue(CriteriaHelper.pollForCriteria(new Criteria() { |
1525 @Override | 1498 @Override |
1526 public boolean isSatisfied() { | 1499 public boolean isSatisfied() { |
1527 try { | 1500 try { |
1528 return ImagePageGenerator.IMAGE_NOT_LOADED_STRING.equals
( | 1501 return ImagePageGenerator.IMAGE_NOT_LOADED_STRING.equals
( |
1529 getTitleOnUiThread(awContents)); | 1502 getTitleOnUiThread(contentView)); |
1530 } catch (Throwable t) { | 1503 } catch (Throwable t) { |
1531 t.printStackTrace(); | 1504 t.printStackTrace(); |
1532 fail("Failed to getTitleOnUIThread: " + t.toString()); | 1505 fail("Failed to getTitleOnUIThread: " + t.toString()); |
1533 return false; | 1506 return false; |
1534 } | 1507 } |
1535 } | 1508 } |
1536 }, WAIT_TIMEOUT_SECONDS * 1000, CHECK_INTERVAL)); | 1509 }, WAIT_TIMEOUT_SECONDS * 1000, CHECK_INTERVAL)); |
1537 } finally { | 1510 } finally { |
1538 if (webServer != null) webServer.shutdown(); | 1511 if (webServer != null) webServer.shutdown(); |
1539 } | 1512 } |
1540 } | 1513 } |
1541 | 1514 |
1542 // Test an assert URL (file:///android_asset/) | 1515 // Test an assert URL (file:///android_asset/) |
1543 @SmallTest | 1516 @SmallTest |
1544 @Feature({"Android-WebView", "Navigation"}) | 1517 @Feature({"Android-WebView", "Navigation"}) |
1545 public void testAssetUrl() throws Throwable { | 1518 public void testAssetUrl() throws Throwable { |
1546 // Note: this text needs to be kept in sync with the contents of the htm
l file referenced | 1519 // Note: this text needs to be kept in sync with the contents of the htm
l file referenced |
1547 // below. | 1520 // below. |
1548 final String expectedTitle = "Asset File"; | 1521 final String expectedTitle = "Asset File"; |
1549 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1522 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1550 final AwTestContainerView testContainerView = | 1523 final ContentViewCore contentView = |
1551 createAwTestContainerViewOnMainSync(contentClient); | 1524 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1552 final AwContents awContents = testContainerView.getAwContents(); | |
1553 try { | 1525 try { |
1554 useTestResourceContext(); | 1526 useTestResourceContext(); |
1555 loadUrlSync(awContents, | 1527 loadUrlSync(contentView, |
1556 contentClient.getOnPageFinishedHelper(), | 1528 contentClient.getOnPageFinishedHelper(), |
1557 "file:///android_asset/asset_file.html"); | 1529 "file:///android_asset/asset_file.html"); |
1558 assertEquals(expectedTitle, getTitleOnUiThread(awContents)); | 1530 assertEquals(expectedTitle, getTitleOnUiThread(contentView)); |
1559 } finally { | 1531 } finally { |
1560 resetResourceContext(); | 1532 resetResourceContext(); |
1561 } | 1533 } |
1562 } | 1534 } |
1563 | 1535 |
1564 // Test a resource URL (file:///android_res/). | 1536 // Test a resource URL (file:///android_res/). |
1565 @SmallTest | 1537 @SmallTest |
1566 @Feature({"Android-WebView", "Navigation"}) | 1538 @Feature({"Android-WebView", "Navigation"}) |
1567 public void testResourceUrl() throws Throwable { | 1539 public void testResourceUrl() throws Throwable { |
1568 // Note: this text needs to be kept in sync with the contents of the htm
l file referenced | 1540 // Note: this text needs to be kept in sync with the contents of the htm
l file referenced |
1569 // below. | 1541 // below. |
1570 final String expectedTitle = "Resource File"; | 1542 final String expectedTitle = "Resource File"; |
1571 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1543 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1572 final AwTestContainerView testContainerView = | 1544 final ContentViewCore contentView = |
1573 createAwTestContainerViewOnMainSync(contentClient); | 1545 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1574 final AwContents awContents = testContainerView.getAwContents(); | |
1575 try { | 1546 try { |
1576 useTestResourceContext(); | 1547 useTestResourceContext(); |
1577 loadUrlSync(awContents, | 1548 loadUrlSync(contentView, |
1578 contentClient.getOnPageFinishedHelper(), | 1549 contentClient.getOnPageFinishedHelper(), |
1579 "file:///android_res/raw/resource_file.html"); | 1550 "file:///android_res/raw/resource_file.html"); |
1580 assertEquals(expectedTitle, getTitleOnUiThread(awContents)); | 1551 assertEquals(expectedTitle, getTitleOnUiThread(contentView)); |
1581 } finally { | 1552 } finally { |
1582 resetResourceContext(); | 1553 resetResourceContext(); |
1583 } | 1554 } |
1584 } | 1555 } |
1585 | 1556 |
1586 // Test that the file URL access toggle does not affect asset URLs. | 1557 // Test that the file URL access toggle does not affect asset URLs. |
1587 @SmallTest | 1558 @SmallTest |
1588 @Feature({"Android-WebView", "Navigation"}) | 1559 @Feature({"Android-WebView", "Navigation"}) |
1589 public void testFileUrlAccessToggleDoesNotBlockAssetUrls() throws Throwable
{ | 1560 public void testFileUrlAccessToggleDoesNotBlockAssetUrls() throws Throwable
{ |
1590 // Note: this text needs to be kept in sync with the contents of the htm
l file referenced | 1561 // Note: this text needs to be kept in sync with the contents of the htm
l file referenced |
1591 // below. | 1562 // below. |
1592 final String expectedTitle = "Asset File"; | 1563 final String expectedTitle = "Asset File"; |
1593 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1564 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1594 final AwTestContainerView testContainerView = | 1565 final ContentViewCore contentView = |
1595 createAwTestContainerViewOnMainSync(contentClient); | 1566 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1596 final AwContents awContents = testContainerView.getAwContents(); | 1567 final ContentSettings settings = getContentSettingsOnUiThread(contentVie
w); |
1597 final ContentSettings settings = getContentSettingsOnUiThread(awContents
); | |
1598 try { | 1568 try { |
1599 useTestResourceContext(); | 1569 useTestResourceContext(); |
1600 settings.setAllowFileAccess(false); | 1570 settings.setAllowFileAccess(false); |
1601 loadUrlSync(awContents, | 1571 loadUrlSync(contentView, |
1602 contentClient.getOnPageFinishedHelper(), | 1572 contentClient.getOnPageFinishedHelper(), |
1603 "file:///android_asset/asset_file.html"); | 1573 "file:///android_asset/asset_file.html"); |
1604 assertEquals(expectedTitle, getTitleOnUiThread(awContents)); | 1574 assertEquals(expectedTitle, getTitleOnUiThread(contentView)); |
1605 } finally { | 1575 } finally { |
1606 resetResourceContext(); | 1576 resetResourceContext(); |
1607 } | 1577 } |
1608 } | 1578 } |
1609 | 1579 |
1610 // Test that the file URL access toggle does not affect resource URLs. | 1580 // Test that the file URL access toggle does not affect resource URLs. |
1611 @SmallTest | 1581 @SmallTest |
1612 @Feature({"Android-WebView", "Navigation"}) | 1582 @Feature({"Android-WebView", "Navigation"}) |
1613 public void testFileUrlAccessToggleDoesNotBlockResourceUrls() throws Throwab
le { | 1583 public void testFileUrlAccessToggleDoesNotBlockResourceUrls() throws Throwab
le { |
1614 // Note: this text needs to be kept in sync with the contents of the htm
l file referenced | 1584 // Note: this text needs to be kept in sync with the contents of the htm
l file referenced |
1615 // below. | 1585 // below. |
1616 final String expectedTitle = "Resource File"; | 1586 final String expectedTitle = "Resource File"; |
1617 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1587 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1618 final AwTestContainerView testContainerView = | 1588 final ContentViewCore contentView = |
1619 createAwTestContainerViewOnMainSync(contentClient); | 1589 createAwTestContainerViewOnMainSync(false, contentClient).getCon
tentViewCore(); |
1620 final AwContents awContents = testContainerView.getAwContents(); | 1590 final ContentSettings settings = getContentSettingsOnUiThread(contentVie
w); |
1621 final ContentSettings settings = getContentSettingsOnUiThread(awContents
); | |
1622 try { | 1591 try { |
1623 useTestResourceContext(); | 1592 useTestResourceContext(); |
1624 settings.setAllowFileAccess(false); | 1593 settings.setAllowFileAccess(false); |
1625 loadUrlSync(awContents, | 1594 loadUrlSync(contentView, |
1626 contentClient.getOnPageFinishedHelper(), | 1595 contentClient.getOnPageFinishedHelper(), |
1627 "file:///android_res/raw/resource_file.html"); | 1596 "file:///android_res/raw/resource_file.html"); |
1628 assertEquals(expectedTitle, getTitleOnUiThread(awContents)); | 1597 assertEquals(expectedTitle, getTitleOnUiThread(contentView)); |
1629 } finally { | 1598 } finally { |
1630 resetResourceContext(); | 1599 resetResourceContext(); |
1631 } | 1600 } |
1632 } | 1601 } |
1633 | 1602 |
1634 class ViewPair { | 1603 class ViewPair { |
1635 private final AwContents contents0; | 1604 private final ContentViewCore view0; |
1636 private final TestAwContentsClient client0; | 1605 private final TestAwContentsClient client0; |
1637 private final AwContents contents1; | 1606 private final ContentViewCore view1; |
1638 private final TestAwContentsClient client1; | 1607 private final TestAwContentsClient client1; |
1639 | 1608 |
1640 ViewPair(AwContents contents0, TestAwContentsClient client0, | 1609 ViewPair(ContentViewCore view0, TestAwContentsClient client0, |
1641 AwContents contents1, TestAwContentsClient client1) { | 1610 ContentViewCore view1, TestAwContentsClient client1) { |
1642 this.contents0 = contents0; | 1611 this.view0 = view0; |
1643 this.client0 = client0; | 1612 this.client0 = client0; |
1644 this.contents1 = contents1; | 1613 this.view1 = view1; |
1645 this.client1 = client1; | 1614 this.client1 = client1; |
1646 } | 1615 } |
1647 | 1616 |
1648 AwContents getContents0() { | 1617 ContentViewCore getView0() { |
1649 return contents0; | 1618 return view0; |
1650 } | 1619 } |
1651 | 1620 |
1652 TestAwContentsClient getClient0() { | 1621 TestAwContentsClient getClient0() { |
1653 return client0; | 1622 return client0; |
1654 } | 1623 } |
1655 | 1624 |
1656 AwContents getContents1() { | 1625 ContentViewCore getView1() { |
1657 return contents1; | 1626 return view1; |
1658 } | 1627 } |
1659 | 1628 |
1660 TestAwContentsClient getClient1() { | 1629 TestAwContentsClient getClient1() { |
1661 return client1; | 1630 return client1; |
1662 } | 1631 } |
1663 } | 1632 } |
1664 | 1633 |
1665 /** | 1634 /** |
1666 * Runs the tests to check if a setting works properly in the case of | 1635 * Runs the tests to check if a setting works properly in the case of |
1667 * multiple WebViews. | 1636 * multiple WebViews. |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1708 helper1.ensureSettingHasInitialValue(); | 1677 helper1.ensureSettingHasInitialValue(); |
1709 } | 1678 } |
1710 | 1679 |
1711 private ViewPair createViews( | 1680 private ViewPair createViews( |
1712 boolean firstIsIncognito, | 1681 boolean firstIsIncognito, |
1713 boolean secondIsIncognito) throws Throwable { | 1682 boolean secondIsIncognito) throws Throwable { |
1714 TestAwContentsClient client0 = new TestAwContentsClient(); | 1683 TestAwContentsClient client0 = new TestAwContentsClient(); |
1715 TestAwContentsClient client1 = new TestAwContentsClient(); | 1684 TestAwContentsClient client1 = new TestAwContentsClient(); |
1716 return new ViewPair( | 1685 return new ViewPair( |
1717 createAwTestContainerViewOnMainSync( | 1686 createAwTestContainerViewOnMainSync( |
1718 firstIsIncognito, client0).getAwContents(), | 1687 firstIsIncognito, client0).getContentViewCore(), |
1719 client0, | 1688 client0, |
1720 createAwTestContainerViewOnMainSync( | 1689 createAwTestContainerViewOnMainSync( |
1721 secondIsIncognito, client1).getAwContents(), | 1690 secondIsIncognito, client1).getContentViewCore(), |
1722 client1); | 1691 client1); |
1723 } | 1692 } |
1724 | 1693 |
1725 /** | 1694 /** |
1726 * Verifies the number of resource requests made to the content provider. | 1695 * Verifies the number of resource requests made to the content provider. |
1727 * @param resource Resource name | 1696 * @param resource Resource name |
1728 * @param expectedCount Expected resource requests count | 1697 * @param expectedCount Expected resource requests count |
1729 */ | 1698 */ |
1730 private void ensureResourceRequestCountInContentProvider(String resource, in
t expectedCount) { | 1699 private void ensureResourceRequestCountInContentProvider(String resource, in
t expectedCount) { |
1731 Context context = getInstrumentation().getTargetContext(); | 1700 Context context = getInstrumentation().getTargetContext(); |
(...skipping 24 matching lines...) Expand all Loading... |
1756 private void resetResourceContext() { | 1725 private void resetResourceContext() { |
1757 AndroidProtocolHandler.setResourceContextForTesting(null); | 1726 AndroidProtocolHandler.setResourceContextForTesting(null); |
1758 } | 1727 } |
1759 | 1728 |
1760 @SmallTest | 1729 @SmallTest |
1761 @Feature({"Android-WebView", "Preferences"}) | 1730 @Feature({"Android-WebView", "Preferences"}) |
1762 public void testBlockNetworkLoadsWithHttpResources() throws Throwable { | 1731 public void testBlockNetworkLoadsWithHttpResources() throws Throwable { |
1763 final TestAwContentsClient contentClient = new TestAwContentsClient(); | 1732 final TestAwContentsClient contentClient = new TestAwContentsClient(); |
1764 final AwTestContainerView testContainer = | 1733 final AwTestContainerView testContainer = |
1765 createAwTestContainerViewOnMainSync(false, contentClient); | 1734 createAwTestContainerViewOnMainSync(false, contentClient); |
1766 final AwContents awContents = testContainer.getAwContents(); | 1735 final ContentViewCore contentView = testContainer.getContentViewCore(); |
1767 final ContentSettings contentSettings = getContentSettingsOnUiThread(awC
ontents); | 1736 final ContentSettings contentSettings = getContentSettingsOnUiThread(con
tentView); |
1768 final AwSettings awSettings = getAwSettingsOnUiThread(testContainer.getA
wContents()); | 1737 final AwSettings awSettings = getAwSettingsOnUiThread(testContainer.getA
wContents()); |
1769 contentSettings.setJavaScriptEnabled(true); | 1738 contentSettings.setJavaScriptEnabled(true); |
1770 ImagePageGenerator generator = new ImagePageGenerator(0, false); | 1739 ImagePageGenerator generator = new ImagePageGenerator(0, false); |
1771 | 1740 |
1772 TestWebServer webServer = null; | 1741 TestWebServer webServer = null; |
1773 String fileName = null; | 1742 String fileName = null; |
1774 try { | 1743 try { |
1775 // Set up http image. | 1744 // Set up http image. |
1776 webServer = new TestWebServer(false); | 1745 webServer = new TestWebServer(false); |
1777 final String httpPath = "/image.png"; | 1746 final String httpPath = "/image.png"; |
1778 final String imageUrl = webServer.setResponseBase64( | 1747 final String imageUrl = webServer.setResponseBase64( |
1779 httpPath, generator.getImageSourceNoAdvance(), | 1748 httpPath, generator.getImageSourceNoAdvance(), |
1780 CommonResources.getImagePngHeaders(true)); | 1749 CommonResources.getImagePngHeaders(true)); |
1781 | 1750 |
1782 // Set up file html that loads http iframe. | 1751 // Set up file html that loads http iframe. |
1783 String pageHtml ="<img src='" + imageUrl + "' " + | 1752 String pageHtml ="<img src='" + imageUrl + "' " + |
1784 "onload=\"document.title='img_onload_fired';\" " + | 1753 "onload=\"document.title='img_onload_fired';\" " + |
1785 "onerror=\"document.title='img_onerror_fired';\" />"; | 1754 "onerror=\"document.title='img_onerror_fired';\" />"; |
1786 Context context = getInstrumentation().getTargetContext(); | 1755 Context context = getInstrumentation().getTargetContext(); |
1787 fileName = context.getCacheDir() + "/block_network_loads_test.html"; | 1756 fileName = context.getCacheDir() + "/block_network_loads_test.html"; |
1788 TestFileUtil.deleteFile(fileName); // Remove leftover file if any. | 1757 TestFileUtil.deleteFile(fileName); // Remove leftover file if any. |
1789 TestFileUtil.createNewHtmlFile(fileName, "unset", pageHtml); | 1758 TestFileUtil.createNewHtmlFile(fileName, "unset", pageHtml); |
1790 | 1759 |
1791 // Actual test. Blocking should trigger onerror handler. | 1760 // Actual test. Blocking should trigger onerror handler. |
1792 awSettings.setBlockNetworkLoads(true); | 1761 awSettings.setBlockNetworkLoads(true); |
1793 loadUrlSync( | 1762 loadUrlSync( |
1794 awContents, | 1763 contentView, |
1795 contentClient.getOnPageFinishedHelper(), | 1764 contentClient.getOnPageFinishedHelper(), |
1796 "file:///" + fileName); | 1765 "file:///" + fileName); |
1797 assertEquals(0, webServer.getRequestCount(httpPath)); | 1766 assertEquals(0, webServer.getRequestCount(httpPath)); |
1798 assertEquals("img_onerror_fired", getTitleOnUiThread(awContents)); | 1767 assertEquals("img_onerror_fired", getTitleOnUiThread(contentView)); |
1799 | 1768 |
1800 // Unblock should load normally. | 1769 // Unblock should load normally. |
1801 awSettings.setBlockNetworkLoads(false); | 1770 awSettings.setBlockNetworkLoads(false); |
1802 loadUrlSync( | 1771 loadUrlSync( |
1803 awContents, | 1772 contentView, |
1804 contentClient.getOnPageFinishedHelper(), | 1773 contentClient.getOnPageFinishedHelper(), |
1805 "file:///" + fileName); | 1774 "file:///" + fileName); |
1806 assertEquals(1, webServer.getRequestCount(httpPath)); | 1775 assertEquals(1, webServer.getRequestCount(httpPath)); |
1807 assertEquals("img_onload_fired", getTitleOnUiThread(awContents)); | 1776 assertEquals("img_onload_fired", getTitleOnUiThread(contentView)); |
1808 } finally { | 1777 } finally { |
1809 if (fileName != null) TestFileUtil.deleteFile(fileName); | 1778 if (fileName != null) TestFileUtil.deleteFile(fileName); |
1810 if (webServer != null) webServer.shutdown(); | 1779 if (webServer != null) webServer.shutdown(); |
1811 } | 1780 } |
1812 } | 1781 } |
1813 } | 1782 } |
OLD | NEW |