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