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

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

Issue 2698473004: Split FaviconService and FaviconServiceImpl. (Closed)
Patch Set: Revert changes in ios/.../history_collection_view_controller_unittest.mm 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
« no previous file with comments | « components/favicon/content/BUILD.gn ('k') | components/favicon/core/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..0c75c52a22d38e76bbd200648c50ee2be985e97e 100644
--- a/components/favicon/content/content_favicon_driver_unittest.cc
+++ b/components/favicon/content/content_favicon_driver_unittest.cc
@@ -5,14 +5,15 @@
#include "components/favicon/content/content_favicon_driver.h"
#include <memory>
+#include <vector>
#include "base/macros.h"
#include "components/favicon/core/favicon_client.h"
-#include "components/favicon/core/favicon_handler.h"
-#include "components/favicon/core/favicon_service.h"
+#include "components/favicon/core/test/mock_favicon_service.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/common/favicon_url.h"
#include "content/public/test/test_renderer_host.h"
+#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/gfx/favicon_size.h"
@@ -20,8 +21,11 @@
namespace favicon {
namespace {
+using testing::Mock;
+using testing::Return;
+
class ContentFaviconDriverTest : public content::RenderViewHostTestHarness {
- public:
+ protected:
ContentFaviconDriverTest() {}
~ContentFaviconDriverTest() override {}
@@ -30,26 +34,17 @@ class ContentFaviconDriverTest : public content::RenderViewHostTestHarness {
void SetUp() override {
RenderViewHostTestHarness::SetUp();
- favicon_service_.reset(new FaviconService(nullptr, nullptr));
ContentFaviconDriver::CreateForWebContents(
- web_contents(), favicon_service(), nullptr, nullptr);
- }
-
- FaviconService* favicon_service() {
- return favicon_service_.get();
+ web_contents(), &favicon_service_, nullptr, nullptr);
}
- private:
- std::unique_ptr<FaviconService> favicon_service_;
-
- DISALLOW_COPY_AND_ASSIGN(ContentFaviconDriverTest);
+ testing::StrictMock<MockFaviconService> favicon_service_;
};
// Test that Favicon is not requested repeatedly during the same session if
// server returns HTTP 404 status.
TEST_F(ContentFaviconDriverTest, UnableToDownloadFavicon) {
const GURL missing_icon_url("http://www.google.com/favicon.ico");
- const GURL another_icon_url("http://www.youtube.com/favicon.ico");
ContentFaviconDriver* content_favicon_driver =
ContentFaviconDriver::FromWebContents(web_contents());
@@ -59,54 +54,37 @@ TEST_F(ContentFaviconDriverTest, UnableToDownloadFavicon) {
int download_id = 0;
// Try to download missing icon.
+ EXPECT_CALL(favicon_service_, WasUnableToDownloadFavicon(missing_icon_url))
+ .WillOnce(Return(false));
download_id = content_favicon_driver->StartDownload(missing_icon_url, 0);
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);
- // Icon is not marked as UnableToDownload as HTTP status is not 404.
- EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
+ Mock::VerifyAndClearExpectations(&favicon_service_);
// Try to download again.
+ EXPECT_CALL(favicon_service_, WasUnableToDownloadFavicon(missing_icon_url))
+ .WillOnce(Return(false));
download_id = content_favicon_driver->StartDownload(missing_icon_url, 0);
EXPECT_NE(0, download_id);
- EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
+ Mock::VerifyAndClearExpectations(&favicon_service_);
- // Report download failure with HTTP 404 status.
+ // Report download failure with HTTP 404 status, which causes the icon to be
+ // marked as UnableToDownload.
+ EXPECT_CALL(favicon_service_, UnableToDownloadFavicon(missing_icon_url));
content_favicon_driver->DidDownloadFavicon(download_id, 404, missing_icon_url,
empty_icons, empty_icon_sizes);
- // Icon is marked as UnableToDownload.
- EXPECT_TRUE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
+ Mock::VerifyAndClearExpectations(&favicon_service_);
// Try to download again.
+ EXPECT_CALL(favicon_service_, WasUnableToDownloadFavicon(missing_icon_url))
+ .WillOnce(Return(true));
download_id = content_favicon_driver->StartDownload(missing_icon_url, 0);
// 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 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));
-
- // Clear the list of missing icons.
- favicon_service()->ClearUnableToDownloadFavicons();
- EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
- EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(another_icon_url));
-
- // Try to download again.
- download_id = content_favicon_driver->StartDownload(missing_icon_url, 0);
- 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);
- // Icon is not marked as UnableToDownload as HTTP status is not 404.
- EXPECT_FALSE(favicon_service()->WasUnableToDownloadFavicon(missing_icon_url));
-
- favicon_service()->Shutdown();
+ Mock::VerifyAndClearExpectations(&favicon_service_);
}
// Test that ContentFaviconDriver ignores updated favicon URLs if there is no
« no previous file with comments | « components/favicon/content/BUILD.gn ('k') | components/favicon/core/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698