| Index: components/favicon/content/content_favicon_driver_unittest.cc
|
| diff --git a/components/favicon/content/content_favicon_driver_unittest.cc b/components/favicon/content/content_favicon_driver_unittest.cc
|
| index ad19e9523446f9d3d4b69f86267cca5bee0a873d..0174e8f626068dcc6456792f55453cae0cef1c15 100644
|
| --- a/components/favicon/content/content_favicon_driver_unittest.cc
|
| +++ b/components/favicon/content/content_favicon_driver_unittest.cc
|
| @@ -13,6 +13,7 @@
|
| #include "content/public/browser/web_contents_observer.h"
|
| #include "content/public/common/favicon_url.h"
|
| #include "content/public/test/test_renderer_host.h"
|
| +#include "content/public/test/web_contents_tester.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/skia/include/core/SkBitmap.h"
|
| #include "ui/gfx/favicon_size.h"
|
| @@ -33,14 +34,35 @@ class ContentFaviconDriverTest : public content::RenderViewHostTestHarness {
|
| favicon_service_.reset(new FaviconService(nullptr, nullptr));
|
| ContentFaviconDriver::CreateForWebContents(
|
| web_contents(), favicon_service(), nullptr, nullptr);
|
| +
|
| + download_callback_ = base::Bind(
|
| + &ContentFaviconDriverTest::OnImageDownloaded, base::Unretained(this));
|
| }
|
|
|
| FaviconService* favicon_service() {
|
| return favicon_service_.get();
|
| }
|
|
|
| + FaviconHandler::Delegate::ImageDownloadCallback download_callback() {
|
| + return download_callback_;
|
| + }
|
| +
|
| + content::WebContentsTester* web_contents_tester() {
|
| + return content::WebContentsTester::For(web_contents());
|
| + }
|
| +
|
| private:
|
| + void OnImageDownloaded(int id,
|
| + int status_code,
|
| + const GURL& image_url,
|
| + const std::vector<SkBitmap>& bitmaps,
|
| + const std::vector<gfx::Size>& original_bitmap_sizes) {
|
| + // ADD_FAILURE() << "OnImageDownloaded() should never be called in tests "
|
| + // "(not exercised by TestWebContents).";
|
| + }
|
| +
|
| std::unique_ptr<FaviconService> favicon_service_;
|
| + FaviconHandler::Delegate::ImageDownloadCallback download_callback_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ContentFaviconDriverTest);
|
| };
|
| @@ -59,35 +81,39 @@ TEST_F(ContentFaviconDriverTest, UnableToDownloadFavicon) {
|
| int download_id = 0;
|
|
|
| // Try to download missing icon.
|
| - download_id = content_favicon_driver->StartDownload(missing_icon_url, 0);
|
| + download_id = content_favicon_driver->DownloadImage(missing_icon_url, 0,
|
| + download_callback());
|
| EXPECT_NE(0, download_id);
|
| EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
|
|
|
| // Report download failure with HTTP 503 status.
|
| - content_favicon_driver->DidDownloadFavicon(download_id, 503, missing_icon_url,
|
| - empty_icons, empty_icon_sizes);
|
| + EXPECT_TRUE(web_contents_tester()->TestDidDownloadImage(
|
| + download_id, 503, empty_icons, empty_icon_sizes));
|
| // Icon is not marked as UnableToDownload as HTTP status is not 404.
|
| EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
|
|
|
| // Try to download again.
|
| - download_id = content_favicon_driver->StartDownload(missing_icon_url, 0);
|
| + download_id = content_favicon_driver->DownloadImage(missing_icon_url, 0,
|
| + download_callback());
|
| EXPECT_NE(0, download_id);
|
| EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
|
|
|
| // Report download failure with HTTP 404 status.
|
| - content_favicon_driver->DidDownloadFavicon(download_id, 404, missing_icon_url,
|
| - empty_icons, empty_icon_sizes);
|
| + EXPECT_TRUE(web_contents_tester()->TestDidDownloadImage(
|
| + download_id, 404, empty_icons, empty_icon_sizes));
|
| // Icon is marked as UnableToDownload.
|
| EXPECT_TRUE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
|
|
|
| // Try to download again.
|
| - download_id = content_favicon_driver->StartDownload(missing_icon_url, 0);
|
| + download_id = content_favicon_driver->DownloadImage(missing_icon_url, 0,
|
| + download_callback());
|
| // Download is not started and Icon is still marked as UnableToDownload.
|
| EXPECT_EQ(0, download_id);
|
| EXPECT_TRUE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
|
|
|
| // Try to download another icon.
|
| - download_id = content_favicon_driver->StartDownload(another_icon_url, 0);
|
| + download_id = content_favicon_driver->DownloadImage(another_icon_url, 0,
|
| + download_callback());
|
| // Download is started as another icon URL is not same as missing_icon_url.
|
| EXPECT_NE(0, download_id);
|
| EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(another_icon_url));
|
| @@ -98,11 +124,12 @@ TEST_F(ContentFaviconDriverTest, UnableToDownloadFavicon) {
|
| EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(another_icon_url));
|
|
|
| // Try to download again.
|
| - download_id = content_favicon_driver->StartDownload(missing_icon_url, 0);
|
| + download_id = content_favicon_driver->DownloadImage(missing_icon_url, 0,
|
| + download_callback());
|
| EXPECT_NE(0, download_id);
|
| // Report download success with HTTP 200 status.
|
| - content_favicon_driver->DidDownloadFavicon(download_id, 200, missing_icon_url,
|
| - empty_icons, empty_icon_sizes);
|
| + EXPECT_TRUE(web_contents_tester()->TestDidDownloadImage(
|
| + download_id, 200, empty_icons, empty_icon_sizes));
|
| // Icon is not marked as UnableToDownload as HTTP status is not 404.
|
| EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
|
|
|
|
|