Chromium Code Reviews| Index: chrome/browser/extensions/extension_navigation_throttle_unittest.cc |
| diff --git a/chrome/browser/extensions/extension_navigation_throttle_unittest.cc b/chrome/browser/extensions/extension_navigation_throttle_unittest.cc |
| index 35a546bc2a0bef1734d17c771b2f89279e7c6c50..d241173060b667300eb8370da8c9920d7077e689 100644 |
| --- a/chrome/browser/extensions/extension_navigation_throttle_unittest.cc |
| +++ b/chrome/browser/extensions/extension_navigation_throttle_unittest.cc |
| @@ -62,19 +62,44 @@ class ExtensionNavigationThrottleUnitTest |
| ChromeRenderViewHostTestHarness::TearDown(); |
| } |
| - // Checks that trying to navigate the given |host| to |url| results in the |
| - // |expected_result|. |
| + // Checks that trying to navigate the given |host| to |extension_url| results |
| + // in the |expected_result|. |
| void CheckTestCase(content::RenderFrameHost* host, |
| - const GURL& url, |
| + const GURL& extension_url, |
| NavigationThrottle::ThrottleCheckResult expected_result) { |
| + // First subtest: direct navigation to |extension_url|. |
| std::unique_ptr<content::NavigationHandle> handle = |
| - content::NavigationHandle::CreateNavigationHandleForTesting(url, host); |
| + content::NavigationHandle::CreateNavigationHandleForTesting( |
| + extension_url, host); |
| EXPECT_EQ(expected_result, |
| handle->CallWillStartRequestForTesting( |
| /*is_post=*/false, content::Referrer(), |
| /*has_user_gesture=*/false, ui::PAGE_TRANSITION_LINK, |
| /*is_external_protocol=*/false)) |
| - << url; |
| + << extension_url; |
| + |
| + // Reset the handle for a second subtest: server redirect to |
| + // |extension_url|. Currently, the same rules apply, but we cancel rather |
| + // than block such requests. |
| + GURL http_url("https://example.com"); |
| + handle = content::NavigationHandle::CreateNavigationHandleForTesting( |
| + http_url, host); |
| + NavigationThrottle::ThrottleCheckResult expected_redirect_result = |
|
Devlin
2017/05/18 15:22:44
This is a bit strange, because now |expected_resul
ncarter (slow)
2017/05/22 22:55:59
Really, it's just a limitation of the throttle sys
|
| + (expected_result == NavigationThrottle::PROCEED) |
| + ? NavigationThrottle::PROCEED |
| + : NavigationThrottle::CANCEL; |
| + EXPECT_EQ(NavigationThrottle::PROCEED, |
| + handle->CallWillStartRequestForTesting( |
| + /*is_post=*/false, content::Referrer(), |
| + /*has_user_gesture=*/false, ui::PAGE_TRANSITION_LINK, |
| + /*is_external_protocol=*/false)) |
| + << http_url; |
| + EXPECT_EQ(expected_redirect_result, |
| + handle->CallWillRedirectRequestForTesting( |
| + extension_url, |
| + /*new_method_is_post=*/false, http_url, |
| + /*new_is_external_protocol=*/false)) |
| + << extension_url; |
| } |
| const Extension* extension() { return extension_.get(); } |