Chromium Code Reviews| Index: chrome/browser/favicon/content_favicon_driver_browsertest.cc |
| diff --git a/chrome/browser/favicon/content_favicon_driver_browsertest.cc b/chrome/browser/favicon/content_favicon_driver_browsertest.cc |
| index 601e39174478fa44a6c5c7f99ab3e2182ddb5800..a7a6970fec6794db1eb6b20f2a96d8201e9eefa7 100644 |
| --- a/chrome/browser/favicon/content_favicon_driver_browsertest.cc |
| +++ b/chrome/browser/favicon/content_favicon_driver_browsertest.cc |
| @@ -179,7 +179,9 @@ class ContentFaviconDriverTest : public InProcessBrowserTest, |
| ->HasPendingTasksForTest(); |
| } |
| - favicon_base::FaviconRawBitmapResult GetFaviconForPageURL(const GURL& url) { |
| + favicon_base::FaviconRawBitmapResult GetFaviconForPageURL( |
| + const GURL& url, |
| + favicon_base::IconType icon_type) { |
| favicon::FaviconService* favicon_service = |
| FaviconServiceFactory::GetForProfile( |
| browser()->profile(), ServiceAccessType::EXPLICIT_ACCESS); |
| @@ -188,7 +190,7 @@ class ContentFaviconDriverTest : public InProcessBrowserTest, |
| base::CancelableTaskTracker tracker; |
| base::RunLoop loop; |
| favicon_service->GetFaviconForPageURL( |
| - url, favicon_base::FAVICON, /*desired_size_in_dip=*/0, |
| + url, icon_type, /*desired_size_in_dip=*/0, |
| base::Bind( |
| [](std::vector<favicon_base::FaviconRawBitmapResult>* save_results, |
| base::RunLoop* loop, |
| @@ -281,6 +283,9 @@ IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, LoadIconFromWebManifest) { |
| #if defined(OS_ANDROID) |
| EXPECT_TRUE(delegate->was_requested()); |
| + EXPECT_NE( |
| + nullptr, |
| + GetFaviconForPageURL(url, favicon_base::WEB_MANIFEST_ICON).bitmap_data); |
| #else |
| EXPECT_FALSE(delegate->was_requested()); |
| #endif |
| @@ -304,7 +309,8 @@ IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, |
| ui_test_utils::BROWSER_TEST_NONE); |
| waiter.Wait(); |
| } |
| - ASSERT_NE(nullptr, GetFaviconForPageURL(url).bitmap_data); |
| + ASSERT_NE(nullptr, |
| + GetFaviconForPageURL(url, favicon_base::FAVICON).bitmap_data); |
| ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)); |
| @@ -320,5 +326,113 @@ IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, |
| waiter.Wait(); |
| } |
| - EXPECT_NE(nullptr, GetFaviconForPageURL(url).bitmap_data); |
| + EXPECT_NE(nullptr, |
| + GetFaviconForPageURL(url, favicon_base::FAVICON).bitmap_data); |
| } |
| + |
| +IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, |
| + LoadFaviconDespiteFragmentLocationOverride) { |
| + ASSERT_TRUE(embedded_test_server()->Start()); |
| + GURL url = embedded_test_server()->GetURL( |
| + "/favicon/page_with_location_override.html"); |
| + GURL url_with_fragment = embedded_test_server()->GetURL( |
| + "/favicon/page_with_location_override.html#foo"); |
| + |
| + PendingTaskWaiter waiter(web_contents(), this); |
| + ui_test_utils::NavigateToURLWithDisposition( |
| + browser(), url, WindowOpenDisposition::CURRENT_TAB, |
| + ui_test_utils::BROWSER_TEST_NONE); |
| + waiter.Wait(); |
| + |
| + EXPECT_NE(nullptr, |
| + GetFaviconForPageURL(url, favicon_base::FAVICON).bitmap_data); |
| + EXPECT_NE(nullptr, |
| + GetFaviconForPageURL(url_with_fragment, favicon_base::FAVICON) |
| + .bitmap_data); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, |
| + LoadFaviconDespiteHashOverride) { |
| + ASSERT_TRUE(embedded_test_server()->Start()); |
| + GURL url = |
| + embedded_test_server()->GetURL("/favicon/page_with_hash_override.html"); |
| + GURL url_with_fragment = embedded_test_server()->GetURL( |
| + "/favicon/page_with_hash_override.html#foo"); |
| + |
| + PendingTaskWaiter waiter(web_contents(), this); |
| + ui_test_utils::NavigateToURLWithDisposition( |
| + browser(), url, WindowOpenDisposition::CURRENT_TAB, |
| + ui_test_utils::BROWSER_TEST_NONE); |
| + waiter.Wait(); |
| + |
| + EXPECT_NE(nullptr, |
| + GetFaviconForPageURL(url, favicon_base::FAVICON).bitmap_data); |
| + EXPECT_NE(nullptr, |
| + GetFaviconForPageURL(url_with_fragment, favicon_base::FAVICON) |
| + .bitmap_data); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, LoadFaviconDespitePushState) { |
| + ASSERT_TRUE(embedded_test_server()->Start()); |
| + GURL url = |
| + embedded_test_server()->GetURL("/favicon/pushstate_with_favicon.html"); |
| + GURL pushstate_url = embedded_test_server()->GetURL( |
| + "/favicon/pushstate_with_favicon_pushed.html"); |
| + |
| + PendingTaskWaiter waiter(web_contents(), this); |
| + ui_test_utils::NavigateToURLWithDisposition( |
| + browser(), url, WindowOpenDisposition::CURRENT_TAB, |
| + ui_test_utils::BROWSER_TEST_NONE); |
| + waiter.Wait(); |
| + |
| + EXPECT_NE(nullptr, |
| + GetFaviconForPageURL(url, favicon_base::FAVICON).bitmap_data); |
| + EXPECT_NE( |
| + nullptr, |
| + GetFaviconForPageURL(pushstate_url, favicon_base::FAVICON).bitmap_data); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, |
| + LoadFaviconDespiteReplaceState) { |
| + ASSERT_TRUE(embedded_test_server()->Start()); |
| + GURL url = |
| + embedded_test_server()->GetURL("/favicon/replacestate_with_favicon.html"); |
| + GURL replacestate_url = embedded_test_server()->GetURL( |
| + "/favicon/replacestate_with_favicon_replaced.html"); |
| + |
| + PendingTaskWaiter waiter(web_contents(), this); |
| + ui_test_utils::NavigateToURLWithDisposition( |
| + browser(), url, WindowOpenDisposition::CURRENT_TAB, |
| + ui_test_utils::BROWSER_TEST_NONE); |
| + waiter.Wait(); |
| + |
| + EXPECT_NE(nullptr, |
| + GetFaviconForPageURL(url, favicon_base::FAVICON).bitmap_data); |
| + EXPECT_NE(nullptr, |
| + GetFaviconForPageURL(replacestate_url, favicon_base::FAVICON) |
| + .bitmap_data); |
| +} |
| + |
| +#if defined(OS_ANDROID) || defined(OS_IOS) |
| +IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, |
|
sky
2017/06/22 15:26:38
What is android/i-os specific here?
|
| + LoadIconFromWebManifestDespitePushState) { |
| + base::test::ScopedFeatureList override_features; |
| + override_features.InitAndEnableFeature(favicon::kFaviconsFromWebManifest); |
| + |
| + ASSERT_TRUE(embedded_test_server()->Start()); |
| + GURL url = |
| + embedded_test_server()->GetURL("/favicon/pushstate_with_manifest.html"); |
| + GURL pushstate_url = embedded_test_server()->GetURL( |
| + "/favicon/pushstate_with_manifest.html#pushState"); |
| + |
| + PendingTaskWaiter waiter(web_contents(), this); |
| + ui_test_utils::NavigateToURLWithDisposition( |
| + browser(), url, WindowOpenDisposition::CURRENT_TAB, |
| + ui_test_utils::BROWSER_TEST_NONE); |
| + waiter.Wait(); |
| + |
| + EXPECT_NE(nullptr, |
| + GetFaviconForPageURL(pushstate_url, favicon_base::WEB_MANIFEST_ICON) |
| + .bitmap_data); |
| +} |
| +#endif |