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

Unified Diff: components/favicon/content/content_favicon_driver_unittest.cc

Issue 2691933004: Avoid cyclic dependency FaviconHandler<-->FaviconDriverImpl (Closed)
Patch Set: Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
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));

Powered by Google App Engine
This is Rietveld 408576698