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

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

Issue 2797893002: Prevent Android webview tests from being broken by data URL deprecation (Closed)
Patch Set: Created 3 years, 8 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
« no previous file with comments | « no previous file | android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.android_webview.test; 5 package org.chromium.android_webview.test;
6 6
7 import android.annotation.SuppressLint; 7 import android.annotation.SuppressLint;
8 import android.support.test.filters.SmallTest; 8 import android.support.test.filters.SmallTest;
9 import android.util.Pair; 9 import android.util.Pair;
10 10
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 assertEquals(TITLE, getTitleOnUiThread(mAwContents)); 236 assertEquals(TITLE, getTitleOnUiThread(mAwContents));
237 } 237 }
238 238
239 @SmallTest 239 @SmallTest
240 @Feature({"AndroidWebView", "Navigation"}) 240 @Feature({"AndroidWebView", "Navigation"})
241 public void testCalledBeforeOnPageStarted() throws Throwable { 241 public void testCalledBeforeOnPageStarted() throws Throwable {
242 standardSetup(); 242 standardSetup();
243 OnPageStartedHelper onPageStartedHelper = mContentsClient.getOnPageStart edHelper(); 243 OnPageStartedHelper onPageStartedHelper = mContentsClient.getOnPageStart edHelper();
244 244
245 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), 245 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
246 CommonResources.makeHtmlPageWithSimpleLinkTo(DATA_URL), "text/ht ml", false); 246 CommonResources.makeHtmlPageWithSimpleLinkTo(ABOUT_BLANK_URL), " text/html", false);
247 247
248 final int shouldOverrideUrlLoadingCallCount = 248 final int shouldOverrideUrlLoadingCallCount =
249 mShouldOverrideUrlLoadingHelper.getCallCount(); 249 mShouldOverrideUrlLoadingHelper.getCallCount();
250 final int onPageStartedCallCount = onPageStartedHelper.getCallCount(); 250 final int onPageStartedCallCount = onPageStartedHelper.getCallCount();
251 setShouldOverrideUrlLoadingReturnValueOnUiThread(true); 251 setShouldOverrideUrlLoadingReturnValueOnUiThread(true);
252 clickOnLinkUsingJs(); 252 clickOnLinkUsingJs();
253 253
254 mShouldOverrideUrlLoadingHelper.waitForCallback(shouldOverrideUrlLoading CallCount); 254 mShouldOverrideUrlLoadingHelper.waitForCallback(shouldOverrideUrlLoading CallCount);
255 assertEquals(onPageStartedCallCount, onPageStartedHelper.getCallCount()) ; 255 assertEquals(onPageStartedCallCount, onPageStartedHelper.getCallCount()) ;
256 } 256 }
257 257
258 258
259 @SmallTest 259 @SmallTest
260 @Feature({"AndroidWebView", "Navigation"}) 260 @Feature({"AndroidWebView", "Navigation"})
261 public void testDoesNotCauseOnReceivedError() throws Throwable { 261 public void testDoesNotCauseOnReceivedError() throws Throwable {
262 standardSetup(); 262 standardSetup();
263 OnReceivedErrorHelper onReceivedErrorHelper = mContentsClient.getOnRecei vedErrorHelper(); 263 OnReceivedErrorHelper onReceivedErrorHelper = mContentsClient.getOnRecei vedErrorHelper();
264 final int onReceivedErrorCallCount = onReceivedErrorHelper.getCallCount( ); 264 final int onReceivedErrorCallCount = onReceivedErrorHelper.getCallCount( );
265 265
266 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), 266 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
267 CommonResources.makeHtmlPageWithSimpleLinkTo(DATA_URL), "text/ht ml", false); 267 CommonResources.makeHtmlPageWithSimpleLinkTo(ABOUT_BLANK_URL), " text/html", false);
268 268
269 final int shouldOverrideUrlLoadingCallCount = 269 final int shouldOverrideUrlLoadingCallCount =
270 mShouldOverrideUrlLoadingHelper.getCallCount(); 270 mShouldOverrideUrlLoadingHelper.getCallCount();
271 setShouldOverrideUrlLoadingReturnValueOnUiThread(true); 271 setShouldOverrideUrlLoadingReturnValueOnUiThread(true);
272 clickOnLinkUsingJs(); 272 clickOnLinkUsingJs();
273 mShouldOverrideUrlLoadingHelper.waitForCallback(shouldOverrideUrlLoading CallCount); 273 mShouldOverrideUrlLoadingHelper.waitForCallback(shouldOverrideUrlLoading CallCount);
274 setShouldOverrideUrlLoadingReturnValueOnUiThread(false); 274 setShouldOverrideUrlLoadingReturnValueOnUiThread(false);
275 275
276 // After we load this URL we're certain that any in-flight callbacks for the previous 276 // After we load this URL we're certain that any in-flight callbacks for the previous
277 // navigation have been delivered. 277 // navigation have been delivered.
278 loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), ABOU T_BLANK_URL); 278 loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), DATA _URL);
Torne 2017/04/05 15:28:38 Not sure I follow this; why does this change in th
meacer 2017/04/05 17:40:36 The URL in line 267 is navigated by a click, and t
Torne 2017/04/05 18:07:15 Thanks for the explanation; that looks right, we w
279 279
280 assertEquals(onReceivedErrorCallCount, onReceivedErrorHelper.getCallCoun t()); 280 assertEquals(onReceivedErrorCallCount, onReceivedErrorHelper.getCallCoun t());
281 } 281 }
282 282
283 @SmallTest 283 @SmallTest
284 @Feature({"AndroidWebView", "Navigation"}) 284 @Feature({"AndroidWebView", "Navigation"})
285 public void testNotCalledForAnchorNavigations() throws Throwable { 285 public void testNotCalledForAnchorNavigations() throws Throwable {
286 doTestNotCalledForAnchorNavigations(false); 286 doTestNotCalledForAnchorNavigations(false);
287 } 287 }
288 288
(...skipping 29 matching lines...) Expand all
318 318
319 assertEquals(shouldOverrideUrlLoadingCallCount, 319 assertEquals(shouldOverrideUrlLoadingCallCount,
320 mShouldOverrideUrlLoadingHelper.getCallCount()); 320 mShouldOverrideUrlLoadingHelper.getCallCount());
321 } 321 }
322 322
323 @SmallTest 323 @SmallTest
324 @Feature({"AndroidWebView", "Navigation"}) 324 @Feature({"AndroidWebView", "Navigation"})
325 public void testCalledWhenLinkClicked() throws Throwable { 325 public void testCalledWhenLinkClicked() throws Throwable {
326 standardSetup(); 326 standardSetup();
327 327
328 // We can't go to about:blank from here because we'd get a cross-origin error.
329 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), 328 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
330 CommonResources.makeHtmlPageWithSimpleLinkTo(DATA_URL), "text/ht ml", false); 329 CommonResources.makeHtmlPageWithSimpleLinkTo(ABOUT_BLANK_URL), " text/html", false);
331 330
332 int callCount = mShouldOverrideUrlLoadingHelper.getCallCount(); 331 int callCount = mShouldOverrideUrlLoadingHelper.getCallCount();
333 332
334 clickOnLinkUsingJs(); 333 clickOnLinkUsingJs();
335 334
336 mShouldOverrideUrlLoadingHelper.waitForCallback(callCount); 335 mShouldOverrideUrlLoadingHelper.waitForCallback(callCount);
337 assertEquals(DATA_URL, mShouldOverrideUrlLoadingHelper.getShouldOverride UrlLoadingUrl()); 336 assertEquals(
337 ABOUT_BLANK_URL, mShouldOverrideUrlLoadingHelper.getShouldOverri deUrlLoadingUrl());
338 assertFalse(mShouldOverrideUrlLoadingHelper.isRedirect()); 338 assertFalse(mShouldOverrideUrlLoadingHelper.isRedirect());
339 assertFalse(mShouldOverrideUrlLoadingHelper.hasUserGesture()); 339 assertFalse(mShouldOverrideUrlLoadingHelper.hasUserGesture());
340 assertTrue(mShouldOverrideUrlLoadingHelper.isMainFrame()); 340 assertTrue(mShouldOverrideUrlLoadingHelper.isMainFrame());
341 } 341 }
342 342
343 /* 343 /*
344 @SmallTest 344 @SmallTest
345 @Feature({"AndroidWebView", "Navigation"}) 345 @Feature({"AndroidWebView", "Navigation"})
346 */ 346 */
347 @DisabledTest(message = "crbug.com/462306") 347 @DisabledTest(message = "crbug.com/462306")
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 476
477 loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), sync hronizationUrl); 477 loadUrlSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), sync hronizationUrl);
478 478
479 assertEquals(1, mWebServer.getRequestCount(pageWithLinkToIgnorePath)); 479 assertEquals(1, mWebServer.getRequestCount(pageWithLinkToIgnorePath));
480 assertEquals(1, mWebServer.getRequestCount(synchronizationPath)); 480 assertEquals(1, mWebServer.getRequestCount(synchronizationPath));
481 assertEquals(0, mWebServer.getRequestCount(REDIRECT_TARGET_PATH)); 481 assertEquals(0, mWebServer.getRequestCount(REDIRECT_TARGET_PATH));
482 } 482 }
483 483
484 @SmallTest 484 @SmallTest
485 @Feature({"AndroidWebView", "Navigation"}) 485 @Feature({"AndroidWebView", "Navigation"})
486 public void testCalledForDataUrl() throws Throwable {
487 standardSetup();
488 final String dataUrl =
489 "data:text/html;base64,"
490 + "PGh0bWw+PGhlYWQ+PHRpdGxlPmRhdGFVcmxUZXN0QmFzZTY0PC90a XRsZT48"
491 + "L2hlYWQ+PC9odG1sPg==";
492 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
493 CommonResources.makeHtmlPageWithSimpleLinkTo(dataUrl), "text/htm l", false);
494
495 int callCount = mShouldOverrideUrlLoadingHelper.getCallCount();
496 clickOnLinkUsingJs();
497
498 mShouldOverrideUrlLoadingHelper.waitForCallback(callCount);
499 assertTrue("Expected URL that starts with 'data:' but got: <"
500 + mShouldOverrideUrlLoadingHelper.getShouldOverrideUrlLoadingUrl () + "> instead.",
501 mShouldOverrideUrlLoadingHelper.getShouldOverrideUrlLoadingUrl() .startsWith(
502 "data:"));
503 assertFalse(mShouldOverrideUrlLoadingHelper.isRedirect());
504 assertFalse(mShouldOverrideUrlLoadingHelper.hasUserGesture());
505 assertTrue(mShouldOverrideUrlLoadingHelper.isMainFrame());
506 }
507
508 @SmallTest
509 @Feature({"AndroidWebView", "Navigation"})
510 public void testCalledForUnsupportedSchemes() throws Throwable { 486 public void testCalledForUnsupportedSchemes() throws Throwable {
511 standardSetup(); 487 standardSetup();
512 final String unsupportedSchemeUrl = "foobar://resource/1"; 488 final String unsupportedSchemeUrl = "foobar://resource/1";
513 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), 489 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
514 CommonResources.makeHtmlPageWithSimpleLinkTo(unsupportedSchemeUr l), "text/html", 490 CommonResources.makeHtmlPageWithSimpleLinkTo(unsupportedSchemeUr l), "text/html",
515 false); 491 false);
516 492
517 int callCount = mShouldOverrideUrlLoadingHelper.getCallCount(); 493 int callCount = mShouldOverrideUrlLoadingHelper.getCallCount();
518 clickOnLinkUsingJs(); 494 clickOnLinkUsingJs();
519 495
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 } 811 }
836 812
837 mContentsClient = new DestroyInCallbackClient(); 813 mContentsClient = new DestroyInCallbackClient();
838 setupWithProvidedContentsClient(mContentsClient); 814 setupWithProvidedContentsClient(mContentsClient);
839 mShouldOverrideUrlLoadingHelper = mContentsClient.getShouldOverrideUrlLo adingHelper(); 815 mShouldOverrideUrlLoadingHelper = mContentsClient.getShouldOverrideUrlLo adingHelper();
840 816
841 OnReceivedErrorHelper onReceivedErrorHelper = mContentsClient.getOnRecei vedErrorHelper(); 817 OnReceivedErrorHelper onReceivedErrorHelper = mContentsClient.getOnRecei vedErrorHelper();
842 int onReceivedErrorCallCount = onReceivedErrorHelper.getCallCount(); 818 int onReceivedErrorCallCount = onReceivedErrorHelper.getCallCount();
843 819
844 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), 820 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
845 CommonResources.makeHtmlPageWithSimpleLinkTo(DATA_URL), "text/ht ml", false); 821 CommonResources.makeHtmlPageWithSimpleLinkTo(ABOUT_BLANK_URL), " text/html", false);
846 822
847 int shouldOverrideUrlLoadingCallCount = mShouldOverrideUrlLoadingHelper. getCallCount(); 823 int shouldOverrideUrlLoadingCallCount = mShouldOverrideUrlLoadingHelper. getCallCount();
848 setShouldOverrideUrlLoadingReturnValueOnUiThread(true); 824 setShouldOverrideUrlLoadingReturnValueOnUiThread(true);
849 clickOnLinkUsingJs(); 825 clickOnLinkUsingJs();
850 mShouldOverrideUrlLoadingHelper.waitForCallback(shouldOverrideUrlLoading CallCount); 826 mShouldOverrideUrlLoadingHelper.waitForCallback(shouldOverrideUrlLoading CallCount);
851 827
852 pollUiThread(new Callable<Boolean>() { 828 pollUiThread(new Callable<Boolean>() {
853 @Override 829 @Override
854 public Boolean call() { 830 public Boolean call() {
855 return AwContents.getNativeInstanceCount() == 0; 831 return AwContents.getNativeInstanceCount() == 0;
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
1087 doTestClickableContent(TEST_PHONE, TEST_PHONE_URI, false); 1063 doTestClickableContent(TEST_PHONE, TEST_PHONE_URI, false);
1088 } 1064 }
1089 1065
1090 @SmallTest 1066 @SmallTest
1091 @Feature({"AndroidWebView"}) 1067 @Feature({"AndroidWebView"})
1092 @CommandLineFlags.Add({ContentSwitches.ENABLE_CONTENT_INTENT_DETECTION}) 1068 @CommandLineFlags.Add({ContentSwitches.ENABLE_CONTENT_INTENT_DETECTION})
1093 public void testClickableAddressInIframe() throws Throwable { 1069 public void testClickableAddressInIframe() throws Throwable {
1094 doTestClickableContent(TEST_ADDRESS, TEST_ADDRESS_URI, false); 1070 doTestClickableContent(TEST_ADDRESS, TEST_ADDRESS_URI, false);
1095 } 1071 }
1096 } 1072 }
OLDNEW
« no previous file with comments | « no previous file | android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698