Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(412)

Side by Side Diff: android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java

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

Powered by Google App Engine
This is Rietveld 408576698