| Index: ios/web/web_state/ui/crw_web_controller_unittest.mm
|
| diff --git a/ios/web/web_state/ui/crw_web_controller_unittest.mm b/ios/web/web_state/ui/crw_web_controller_unittest.mm
|
| index 5f076056ecd182d9790b8bde6f0f268879f9eb6b..3a52ccdcb6c4c7aa005c2f8dace62358b52d9b78 100644
|
| --- a/ios/web/web_state/ui/crw_web_controller_unittest.mm
|
| +++ b/ios/web/web_state/ui/crw_web_controller_unittest.mm
|
| @@ -128,6 +128,9 @@ typedef BOOL (^openExternalURLBlockType)(const GURL&);
|
|
|
| namespace {
|
|
|
| +// Syntactically invalid URL per rfc3986.
|
| +const char kInvalidURL[] = "http://%3";
|
| +
|
| const char kTestURLString[] = "http://www.google.com/";
|
| const char kTestAppSpecificURL[] = "testwebui://test/";
|
|
|
| @@ -687,6 +690,28 @@ TEST_F(CRWWebControllerNavigationTest, HTTPCreditCard) {
|
| web::SSLStatus::DISPLAYED_CREDIT_CARD_FIELD_ON_HTTP);
|
| }
|
|
|
| +// Real WKWebView is required for CRWWebControllerInvalidUrlTest.
|
| +typedef web::WebTestWithWebState CRWWebControllerInvalidUrlTest;
|
| +
|
| +// Tests that web controller navigates to about:blank if invalid URL is loaded.
|
| +TEST_F(CRWWebControllerInvalidUrlTest, LoadInvalidURL) {
|
| + GURL url(kInvalidURL);
|
| + ASSERT_FALSE(url.is_valid());
|
| + LoadHtml(@"<html><body></body></html>", url);
|
| + EXPECT_EQ(GURL(url::kAboutBlankURL), web_state()->GetLastCommittedURL());
|
| +}
|
| +
|
| +// Tests that web controller does not navigate to about:blank if iframe src
|
| +// has invalid url. Web controller loads about:blank if page navigates to
|
| +// invalid url, but should do nothing if navigation is performed in iframe. This
|
| +// test prevents crbug.com/694865 regression.
|
| +TEST_F(CRWWebControllerInvalidUrlTest, IFrameWithInvalidURL) {
|
| + GURL url("http://chromium.test");
|
| + ASSERT_FALSE(GURL(kInvalidURL).is_valid());
|
| + LoadHtml([NSString stringWithFormat:@"<iframe src='%s'/>", kInvalidURL], url);
|
| + EXPECT_EQ(url, web_state()->GetLastCommittedURL());
|
| +}
|
| +
|
| // Real WKWebView is required for CRWWebControllerFormActivityTest.
|
| typedef web::WebTestWithWebController CRWWebControllerFormActivityTest;
|
|
|
|
|