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

Unified Diff: components/favicon/core/favicon_handler_unittest.cc

Issue 1407353012: Refactor FaviconDriver::OnFaviconAvailable() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@initial_simplify
Patch Set: Created 5 years, 1 month 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/core/favicon_handler_unittest.cc
diff --git a/components/favicon/core/favicon_handler_unittest.cc b/components/favicon/core/favicon_handler_unittest.cc
index ddd7159c2a44eccff88b3b885deba6c857cf2372..12b4458cda85c4ef5dface3b57425994121d8fb2 100644
--- a/components/favicon/core/favicon_handler_unittest.cc
+++ b/components/favicon/core/favicon_handler_unittest.cc
@@ -186,10 +186,7 @@ class HistoryRequestHandler {
class TestFaviconDriver : public FaviconDriver {
public:
TestFaviconDriver()
- : favicon_validity_(false),
- num_active_favicon_(0),
- num_favicon_available_(0),
- update_active_favicon_(false) {}
+ : num_notifications_(0u) {}
~TestFaviconDriver() override {}
@@ -205,6 +202,12 @@ class TestFaviconDriver : public FaviconDriver {
return gfx::Image();
}
+ GURL GetFaviconURL() const override {
+ ADD_FAILURE() << "TestFaviconDriver::GetFaviconURL() "
+ << "should never be called in tests.";
+ return GURL();
+ }
+
bool FaviconIsValid() const override {
ADD_FAILURE() << "TestFaviconDriver::FaviconIsValid() "
<< "should never be called in tests.";
@@ -227,70 +230,34 @@ class TestFaviconDriver : public FaviconDriver {
bool IsBookmarked(const GURL& url) override { return false; }
- GURL GetActiveURL() override { return url_; }
-
- bool GetActiveFaviconValidity() { return favicon_validity_; }
-
- void SetActiveFaviconValidity(bool favicon_validity) override {
- favicon_validity_ = favicon_validity;
- }
-
- GURL GetActiveFaviconURL() override { return favicon_url_; }
-
- void SetActiveFaviconURL(const GURL& favicon_url) override {
- favicon_url_ = favicon_url;
+ GURL GetActiveURL() override {
+ ADD_FAILURE() << "TestFaviconDriver::GetActiveURL() "
+ << "should never be called in tests.";
+ return GURL();
}
- gfx::Image GetActiveFaviconImage() { return image_; }
-
- void SetActiveFaviconImage(const gfx::Image& image) override {
+ void OnFaviconUpdated(
+ const GURL& page_url,
+ FaviconDriverObserver::NotificationIconType notification_icon_type,
+ const GURL& icon_url,
+ bool icon_url_changed,
+ const gfx::Image& image) override {
+ ++num_notifications_;
+ icon_url_ = icon_url;
image_ = image;
}
- void OnFaviconAvailable(const GURL& page_url,
- const GURL& icon_url,
- const gfx::Image& image,
- bool update_active_favicon) override {
- ++num_favicon_available_;
- available_image_ = image;
- available_icon_url_ = icon_url;
- update_active_favicon_ = update_active_favicon;
- if (!update_active_favicon)
- return;
-
- ++num_active_favicon_;
- SetActiveFaviconURL(icon_url);
- SetActiveFaviconValidity(true);
- SetActiveFaviconImage(image);
- }
-
- size_t num_active_favicon() const { return num_active_favicon_; }
- size_t num_favicon_available() const { return num_favicon_available_; }
- void ResetNumActiveFavicon() { num_active_favicon_ = 0; }
- void ResetNumFaviconAvailable() { num_favicon_available_ = 0; }
+ const GURL& icon_url() const { return icon_url_; }
- void SetActiveURL(GURL url) { url_ = url; }
+ const gfx::Image& image() const { return image_; }
- const gfx::Image& available_favicon() { return available_image_; }
-
- const GURL& available_icon_url() { return available_icon_url_; }
-
- bool update_active_favicon() { return update_active_favicon_; }
+ size_t num_notifications() const { return num_notifications_; }
+ void ResetNumNotifications() { num_notifications_ = 0; }
private:
- GURL favicon_url_;
- GURL url_;
+ GURL icon_url_;
gfx::Image image_;
- bool favicon_validity_;
-
- // The number of times that NotifyFaviconAvailable() has been called with
- // |is_active_favicon| is true.
- size_t num_active_favicon_;
- // The number of times that NotifyFaviconAvailable() has been called.
- size_t num_favicon_available_;
- gfx::Image available_image_;
- GURL available_icon_url_;
- bool update_active_favicon_;
+ size_t num_notifications_;
DISALLOW_COPY_AND_ASSIGN(TestFaviconDriver);
};
@@ -304,12 +271,10 @@ class TestFaviconHandler : public FaviconHandler {
return FaviconHandler::GetMaximalIconSize(icon_type);
}
- TestFaviconHandler(const GURL& page_url,
- TestFaviconDriver* driver,
- Type type)
- : FaviconHandler(nullptr, driver, type),
+ TestFaviconHandler(TestFaviconDriver* driver,
+ FaviconDriverObserver::NotificationIconType handler_type)
+ : FaviconHandler(nullptr, driver, handler_type),
download_id_(0) {
- driver->SetActiveURL(page_url);
download_handler_.reset(new DownloadHandler(this));
}
@@ -469,6 +434,8 @@ class FaviconHandlerTest : public testing::Test {
const GURL& page_url,
const std::vector<FaviconURL>& candidate_icons,
const int* candidate_icon_sizes) {
+ size_t old_num_notifications = favicon_driver->num_notifications();
+
UpdateFaviconURL(
favicon_driver, favicon_handler, page_url, candidate_icons);
EXPECT_EQ(candidate_icons.size(), favicon_handler->image_urls().size());
@@ -487,7 +454,7 @@ class FaviconHandlerTest : public testing::Test {
download_handler->Reset();
- if (favicon_driver->num_active_favicon())
+ if (favicon_driver->num_notifications() > old_num_notifications)
return;
}
}
@@ -496,7 +463,7 @@ class FaviconHandlerTest : public testing::Test {
TestFaviconHandler* favicon_handler,
const GURL& page_url,
const std::vector<FaviconURL>& candidate_icons) {
- favicon_driver->ResetNumActiveFavicon();
+ favicon_driver->ResetNumNotifications();
favicon_handler->FetchFavicon(page_url);
favicon_handler->history_handler()->InvokeCallback();
@@ -528,7 +495,7 @@ TEST_F(FaviconHandlerTest, GetFaviconFromHistory) {
const GURL icon_url("http://www.google.com/favicon");
TestFaviconDriver driver;
- TestFaviconHandler helper(page_url, &driver, FaviconHandler::FAVICON);
+ TestFaviconHandler helper(&driver, FaviconDriverObserver::NON_TOUCH_16_DIP);
helper.FetchFavicon(page_url);
HistoryRequestHandler* history_handler = helper.history_handler();
@@ -543,8 +510,8 @@ TEST_F(FaviconHandlerTest, GetFaviconFromHistory) {
// Send history response.
history_handler->InvokeCallback();
// Verify FaviconHandler status
- EXPECT_TRUE(driver.GetActiveFaviconValidity());
- EXPECT_EQ(icon_url, driver.GetActiveFaviconURL());
+ EXPECT_EQ(1u, driver.num_notifications());
+ EXPECT_EQ(icon_url, driver.icon_url());
// Simulates update favicon url.
std::vector<FaviconURL> urls;
@@ -567,7 +534,7 @@ TEST_F(FaviconHandlerTest, DownloadFavicon) {
const GURL icon_url("http://www.google.com/favicon");
TestFaviconDriver driver;
- TestFaviconHandler helper(page_url, &driver, FaviconHandler::FAVICON);
+ TestFaviconHandler helper(&driver, FaviconDriverObserver::NON_TOUCH_16_DIP);
helper.FetchFavicon(page_url);
HistoryRequestHandler* history_handler = helper.history_handler();
@@ -585,8 +552,8 @@ TEST_F(FaviconHandlerTest, DownloadFavicon) {
// Send history response.
history_handler->InvokeCallback();
// Verify FaviconHandler status
- EXPECT_TRUE(driver.GetActiveFaviconValidity());
- EXPECT_EQ(icon_url, driver.GetActiveFaviconURL());
+ EXPECT_EQ(1u, driver.num_notifications());
+ EXPECT_EQ(icon_url, driver.icon_url());
// Simulates update favicon url.
std::vector<FaviconURL> urls;
@@ -622,10 +589,10 @@ TEST_F(FaviconHandlerTest, DownloadFavicon) {
EXPECT_EQ(page_url, history_handler->page_url_);
// Verify NavigationEntry.
- EXPECT_EQ(icon_url, driver.GetActiveFaviconURL());
- EXPECT_TRUE(driver.GetActiveFaviconValidity());
- EXPECT_FALSE(driver.GetActiveFaviconImage().IsEmpty());
- EXPECT_EQ(gfx::kFaviconSize, driver.GetActiveFaviconImage().Width());
+ EXPECT_EQ(2u, driver.num_notifications());
+ EXPECT_EQ(icon_url, driver.icon_url());
+ EXPECT_FALSE(driver.image().IsEmpty());
+ EXPECT_EQ(gfx::kFaviconSize, driver.image().Width());
}
TEST_F(FaviconHandlerTest, UpdateAndDownloadFavicon) {
@@ -634,7 +601,7 @@ TEST_F(FaviconHandlerTest, UpdateAndDownloadFavicon) {
const GURL new_icon_url("http://www.google.com/new_favicon");
TestFaviconDriver driver;
- TestFaviconHandler helper(page_url, &driver, FaviconHandler::FAVICON);
+ TestFaviconHandler helper(&driver, FaviconDriverObserver::NON_TOUCH_16_DIP);
helper.FetchFavicon(page_url);
HistoryRequestHandler* history_handler = helper.history_handler();
@@ -650,8 +617,8 @@ TEST_F(FaviconHandlerTest, UpdateAndDownloadFavicon) {
// Send history response.
history_handler->InvokeCallback();
// Verify FaviconHandler status.
- EXPECT_TRUE(driver.GetActiveFaviconValidity());
- EXPECT_EQ(icon_url, driver.GetActiveFaviconURL());
+ EXPECT_EQ(1u, driver.num_notifications());
+ EXPECT_EQ(icon_url, driver.icon_url());
// Reset the history_handler to verify whether new icon is requested from
// history.
@@ -702,10 +669,10 @@ TEST_F(FaviconHandlerTest, UpdateAndDownloadFavicon) {
EXPECT_EQ(page_url, history_handler->page_url_);
// Verify NavigationEntry.
- EXPECT_EQ(new_icon_url, driver.GetActiveFaviconURL());
- EXPECT_TRUE(driver.GetActiveFaviconValidity());
- EXPECT_FALSE(driver.GetActiveFaviconImage().IsEmpty());
- EXPECT_EQ(gfx::kFaviconSize, driver.GetActiveFaviconImage().Width());
+ EXPECT_EQ(2u, driver.num_notifications());
+ EXPECT_EQ(new_icon_url, driver.icon_url());
+ EXPECT_FALSE(driver.image().IsEmpty());
+ EXPECT_EQ(gfx::kFaviconSize, driver.image().Width());
}
TEST_F(FaviconHandlerTest, FaviconInHistoryInvalid) {
@@ -713,7 +680,7 @@ TEST_F(FaviconHandlerTest, FaviconInHistoryInvalid) {
const GURL icon_url("http://www.google.com/favicon");
TestFaviconDriver driver;
- TestFaviconHandler helper(page_url, &driver, FaviconHandler::FAVICON);
+ TestFaviconHandler helper(&driver, FaviconDriverObserver::NON_TOUCH_16_DIP);
helper.FetchFavicon(page_url);
HistoryRequestHandler* history_handler = helper.history_handler();
@@ -737,8 +704,8 @@ TEST_F(FaviconHandlerTest, FaviconInHistoryInvalid) {
// Send history response.
history_handler->InvokeCallback();
// The NavigationEntry should not be set yet as the history data is invalid.
- EXPECT_FALSE(driver.GetActiveFaviconValidity());
- EXPECT_EQ(GURL(), driver.GetActiveFaviconURL());
+ EXPECT_EQ(0u, driver.num_notifications());
+ EXPECT_EQ(GURL(), driver.icon_url());
// Reset the history_handler to verify whether new icon is requested from
// history.
@@ -771,10 +738,10 @@ TEST_F(FaviconHandlerTest, FaviconInHistoryInvalid) {
EXPECT_EQ(page_url, history_handler->page_url_);
// Verify NavigationEntry.
- EXPECT_EQ(icon_url, driver.GetActiveFaviconURL());
- EXPECT_TRUE(driver.GetActiveFaviconValidity());
- EXPECT_FALSE(driver.GetActiveFaviconImage().IsEmpty());
- EXPECT_EQ(gfx::kFaviconSize, driver.GetActiveFaviconImage().Width());
+ EXPECT_EQ(1u, driver.num_notifications());
+ EXPECT_EQ(icon_url, driver.icon_url());
+ EXPECT_FALSE(driver.image().IsEmpty());
+ EXPECT_EQ(gfx::kFaviconSize, driver.image().Width());
}
TEST_F(FaviconHandlerTest, UpdateFavicon) {
@@ -783,7 +750,7 @@ TEST_F(FaviconHandlerTest, UpdateFavicon) {
const GURL new_icon_url("http://www.google.com/new_favicon");
TestFaviconDriver driver;
- TestFaviconHandler helper(page_url, &driver, FaviconHandler::FAVICON);
+ TestFaviconHandler helper(&driver, FaviconDriverObserver::NON_TOUCH_16_DIP);
helper.FetchFavicon(page_url);
HistoryRequestHandler* history_handler = helper.history_handler();
@@ -798,8 +765,8 @@ TEST_F(FaviconHandlerTest, UpdateFavicon) {
// Send history response.
history_handler->InvokeCallback();
// Verify FaviconHandler status.
- EXPECT_TRUE(driver.GetActiveFaviconValidity());
- EXPECT_EQ(icon_url, driver.GetActiveFaviconURL());
+ EXPECT_EQ(1u, driver.num_notifications());
+ EXPECT_EQ(icon_url, driver.icon_url());
// Reset the history_handler to verify whether new icon is requested from
// history.
@@ -832,9 +799,9 @@ TEST_F(FaviconHandlerTest, UpdateFavicon) {
EXPECT_FALSE(helper.download_handler()->HasDownload());
// Verify the favicon status.
- EXPECT_EQ(new_icon_url, driver.GetActiveFaviconURL());
- EXPECT_TRUE(driver.GetActiveFaviconValidity());
- EXPECT_FALSE(driver.GetActiveFaviconImage().IsEmpty());
+ EXPECT_EQ(2u, driver.num_notifications());
+ EXPECT_EQ(new_icon_url, driver.icon_url());
+ EXPECT_FALSE(driver.image().IsEmpty());
}
TEST_F(FaviconHandlerTest, Download2ndFaviconURLCandidate) {
@@ -843,7 +810,7 @@ TEST_F(FaviconHandlerTest, Download2ndFaviconURLCandidate) {
const GURL new_icon_url("http://www.google.com/new_favicon");
TestFaviconDriver driver;
- TestFaviconHandler helper(page_url, &driver, FaviconHandler::LARGEST_TOUCH);
+ TestFaviconHandler helper(&driver, FaviconDriverObserver::TOUCH_LARGEST);
std::set<GURL> fail_downloads;
fail_downloads.insert(icon_url);
helper.download_handler()->FailDownloadForIconURLs(fail_downloads);
@@ -862,8 +829,8 @@ TEST_F(FaviconHandlerTest, Download2ndFaviconURLCandidate) {
// Send history response.
history_handler->InvokeCallback();
// Verify FaviconHandler status.
- EXPECT_FALSE(driver.GetActiveFaviconValidity());
- EXPECT_EQ(GURL(), driver.GetActiveFaviconURL());
+ EXPECT_EQ(0u, driver.num_notifications());
+ EXPECT_EQ(GURL(), driver.icon_url());
// Reset the history_handler to verify whether new icon is requested from
// history.
@@ -958,7 +925,7 @@ TEST_F(FaviconHandlerTest, UpdateDuringDownloading) {
const GURL new_icon_url("http://www.google.com/new_favicon");
TestFaviconDriver driver;
- TestFaviconHandler helper(page_url, &driver, FaviconHandler::LARGEST_TOUCH);
+ TestFaviconHandler helper(&driver, FaviconDriverObserver::TOUCH_LARGEST);
helper.FetchFavicon(page_url);
HistoryRequestHandler* history_handler = helper.history_handler();
@@ -974,8 +941,8 @@ TEST_F(FaviconHandlerTest, UpdateDuringDownloading) {
// Send history response.
history_handler->InvokeCallback();
// Verify FaviconHandler status.
- EXPECT_FALSE(driver.GetActiveFaviconValidity());
- EXPECT_EQ(GURL(), driver.GetActiveFaviconURL());
+ EXPECT_EQ(0u, driver.num_notifications());
+ EXPECT_EQ(GURL(), driver.icon_url());
// Reset the history_handler to verify whether new icon is requested from
// history.
@@ -1080,7 +1047,7 @@ TEST_F(FaviconHandlerTest, UpdateSameIconURLs) {
std::vector<gfx::Size>()));
TestFaviconDriver driver;
- TestFaviconHandler helper(page_url, &driver, FaviconHandler::FAVICON);
+ TestFaviconHandler helper(&driver, FaviconDriverObserver::NON_TOUCH_16_DIP);
// Initiate a request for favicon data for |page_url|. History does not know
// about the page URL or the icon URLs.
@@ -1126,7 +1093,7 @@ TEST_F(FaviconHandlerTest,
const GURL kIconURL2("http://wwww.page_which_animates_favicon.com/frame2.png");
TestFaviconDriver driver;
- TestFaviconHandler helper(kPageURL, &driver, FaviconHandler::FAVICON);
+ TestFaviconHandler helper(&driver, FaviconDriverObserver::NON_TOUCH_16_DIP);
// Initial state:
// - The database does not know about |kPageURL|.
@@ -1147,13 +1114,9 @@ TEST_F(FaviconHandlerTest,
// FaviconHandler should request from history and download |kIconURL1| and
// |kIconURL2|. |kIconURL1| is the better match. A
- // FaviconDriver::OnFaviconAvailable() notification should be sent for
+ // FaviconDriver::OnFaviconUpdated() notification should be sent for
// |kIconURL1|.
-
- // Clear the favicon validity so that we can use it to detect whether
- // OnFaviconAvailable() is invoked.
- driver.SetActiveFaviconValidity(false);
-
+ ASSERT_EQ(0u, driver.num_notifications());
ASSERT_TRUE(helper.history_handler());
SetFaviconRawBitmapResult(kIconURL1,
favicon_base::FAVICON,
@@ -1179,8 +1142,8 @@ TEST_F(FaviconHandlerTest,
helper.download_handler()->InvokeCallback();
helper.download_handler()->Reset();
- ASSERT_TRUE(driver.GetActiveFaviconValidity());
- ASSERT_EQ(kIconURL1, driver.GetActiveFaviconURL());
+ ASSERT_LT(0u, driver.num_notifications());
+ ASSERT_EQ(kIconURL1, driver.icon_url());
// Clear the history handler because SetHistoryFavicons() sets it.
helper.set_history_handler(nullptr);
@@ -1193,10 +1156,9 @@ TEST_F(FaviconHandlerTest,
std::vector<gfx::Size>())));
// FaviconHandler should request from history and download |kIconURL2|. A
- // FaviconDriver::OnFaviconAvailable() notification should be sent for
+ // FaviconDriver::OnFaviconUpdated() notification should be sent for
// |kIconURL2|.
- driver.SetActiveFaviconValidity(false);
-
+ driver.ResetNumNotifications();
ASSERT_TRUE(helper.history_handler());
SetFaviconRawBitmapResult(kIconURL2,
favicon_base::FAVICON,
@@ -1207,8 +1169,8 @@ TEST_F(FaviconHandlerTest,
ASSERT_TRUE(helper.download_handler()->HasDownload());
helper.download_handler()->InvokeCallback();
helper.download_handler()->Reset();
- EXPECT_TRUE(driver.GetActiveFaviconValidity());
- EXPECT_EQ(kIconURL2, driver.GetActiveFaviconURL());
+ ASSERT_LT(0u, driver.num_notifications());
+ EXPECT_EQ(kIconURL2, driver.icon_url());
}
// Test the favicon which is selected when the web page provides several
@@ -1244,7 +1206,8 @@ TEST_F(FaviconHandlerTest, MultipleFavicons) {
// 1) Test that if there are several single resolution favicons to choose from
// that the largest exact match is chosen.
TestFaviconDriver driver1;
- TestFaviconHandler handler1(kPageURL, &driver1, FaviconHandler::FAVICON);
+ TestFaviconHandler handler1(&driver1,
+ FaviconDriverObserver::NON_TOUCH_16_DIP);
const int kSizes1[] = { 16, 24, 32, 48, 256 };
std::vector<FaviconURL> urls1(kSourceIconURLs,
@@ -1253,60 +1216,59 @@ TEST_F(FaviconHandlerTest, MultipleFavicons) {
&driver1, &handler1, kPageURL, urls1, kSizes1);
EXPECT_EQ(nullptr, handler1.current_candidate());
- EXPECT_TRUE(driver1.GetActiveFaviconValidity());
- EXPECT_FALSE(driver1.GetActiveFaviconImage().IsEmpty());
- EXPECT_EQ(gfx::kFaviconSize, driver1.GetActiveFaviconImage().Width());
+ EXPECT_EQ(1u, driver1.num_notifications());
+ EXPECT_FALSE(driver1.image().IsEmpty());
+ EXPECT_EQ(gfx::kFaviconSize, driver1.image().Width());
size_t expected_index = 2u;
EXPECT_EQ(32, kSizes1[expected_index]);
- EXPECT_EQ(kSourceIconURLs[expected_index].icon_url,
- driver1.GetActiveFaviconURL());
+ EXPECT_EQ(kSourceIconURLs[expected_index].icon_url, driver1.icon_url());
// 2) Test that if there are several single resolution favicons to choose
// from, the exact match is preferred even if it results in upsampling.
TestFaviconDriver driver2;
- TestFaviconHandler handler2(kPageURL, &driver2, FaviconHandler::FAVICON);
+ TestFaviconHandler handler2(&driver2,
+ FaviconDriverObserver::NON_TOUCH_16_DIP);
const int kSizes2[] = { 16, 24, 48, 256 };
std::vector<FaviconURL> urls2(kSourceIconURLs,
kSourceIconURLs + arraysize(kSizes2));
DownloadTillDoneIgnoringHistory(
&driver2, &handler2, kPageURL, urls2, kSizes2);
- EXPECT_TRUE(driver2.GetActiveFaviconValidity());
+ EXPECT_EQ(1u, driver2.num_notifications());
expected_index = 0u;
EXPECT_EQ(16, kSizes2[expected_index]);
- EXPECT_EQ(kSourceIconURLs[expected_index].icon_url,
- driver2.GetActiveFaviconURL());
+ EXPECT_EQ(kSourceIconURLs[expected_index].icon_url, driver2.icon_url());
// 3) Test that favicons which need to be upsampled a little or downsampled
// a little are preferred over huge favicons.
TestFaviconDriver driver3;
- TestFaviconHandler handler3(kPageURL, &driver3, FaviconHandler::FAVICON);
+ TestFaviconHandler handler3(&driver3,
+ FaviconDriverObserver::NON_TOUCH_16_DIP);
const int kSizes3[] = { 256, 48 };
std::vector<FaviconURL> urls3(kSourceIconURLs,
kSourceIconURLs + arraysize(kSizes3));
DownloadTillDoneIgnoringHistory(
&driver3, &handler3, kPageURL, urls3, kSizes3);
- EXPECT_TRUE(driver3.GetActiveFaviconValidity());
+ EXPECT_EQ(1u, driver3.num_notifications());
expected_index = 1u;
EXPECT_EQ(48, kSizes3[expected_index]);
- EXPECT_EQ(kSourceIconURLs[expected_index].icon_url,
- driver3.GetActiveFaviconURL());
+ EXPECT_EQ(kSourceIconURLs[expected_index].icon_url, driver3.icon_url());
TestFaviconDriver driver4;
- TestFaviconHandler handler4(kPageURL, &driver4, FaviconHandler::FAVICON);
+ TestFaviconHandler handler4(&driver4,
+ FaviconDriverObserver::NON_TOUCH_16_DIP);
const int kSizes4[] = { 17, 256 };
std::vector<FaviconURL> urls4(kSourceIconURLs,
kSourceIconURLs + arraysize(kSizes4));
DownloadTillDoneIgnoringHistory(
&driver4, &handler4, kPageURL, urls4, kSizes4);
- EXPECT_TRUE(driver4.GetActiveFaviconValidity());
+ EXPECT_EQ(1u, driver4.num_notifications());
expected_index = 0u;
EXPECT_EQ(17, kSizes4[expected_index]);
- EXPECT_EQ(kSourceIconURLs[expected_index].icon_url,
- driver4.GetActiveFaviconURL());
+ EXPECT_EQ(kSourceIconURLs[expected_index].icon_url, driver4.icon_url());
}
// Test that the best favicon is selected when:
@@ -1329,7 +1291,7 @@ TEST_F(FaviconHandlerTest, MultipleFavicons404) {
};
TestFaviconDriver driver;
- TestFaviconHandler handler(kPageURL, &driver, FaviconHandler::FAVICON);
+ TestFaviconHandler handler(&driver, FaviconDriverObserver::NON_TOUCH_16_DIP);
DownloadHandler* download_handler = handler.download_handler();
std::set<GURL> k404URLs;
@@ -1353,12 +1315,11 @@ TEST_F(FaviconHandlerTest, MultipleFavicons404) {
&driver, &handler, kPageURL, urls2, kSizes2);
EXPECT_EQ(nullptr, handler.current_candidate());
- EXPECT_TRUE(driver.GetActiveFaviconValidity());
- EXPECT_FALSE(driver.GetActiveFaviconImage().IsEmpty());
+ EXPECT_EQ(1u, driver.num_notifications());
+ EXPECT_FALSE(driver.image().IsEmpty());
int expected_index = 2u;
EXPECT_EQ(16, kSizes2[expected_index]);
- EXPECT_EQ(kFaviconURLs[expected_index].icon_url,
- driver.GetActiveFaviconURL());
+ EXPECT_EQ(kFaviconURLs[expected_index].icon_url, driver.icon_url());
}
// Test that no favicon is selected when:
@@ -1379,7 +1340,7 @@ TEST_F(FaviconHandlerTest, MultipleFaviconsAll404) {
};
TestFaviconDriver driver;
- TestFaviconHandler handler(kPageURL, &driver, FaviconHandler::FAVICON);
+ TestFaviconHandler handler(&driver, FaviconDriverObserver::NON_TOUCH_16_DIP);
DownloadHandler* download_handler = handler.download_handler();
std::set<GURL> k404URLs;
@@ -1405,8 +1366,8 @@ TEST_F(FaviconHandlerTest, MultipleFaviconsAll404) {
DownloadTillDoneIgnoringHistory(&driver, &handler, kPageURL, urls, kSizes);
EXPECT_EQ(nullptr, handler.current_candidate());
- EXPECT_FALSE(driver.GetActiveFaviconValidity());
- EXPECT_TRUE(driver.GetActiveFaviconImage().IsEmpty());
+ EXPECT_EQ(0u, driver.num_notifications());
+ EXPECT_TRUE(driver.image().IsEmpty());
}
// Test that no favicon is selected when the page's only icon uses an invalid
@@ -1420,7 +1381,7 @@ TEST_F(FaviconHandlerTest, FaviconInvalidURL) {
std::vector<gfx::Size>());
TestFaviconDriver driver;
- TestFaviconHandler handler(kPageURL, &driver, FaviconHandler::FAVICON);
+ TestFaviconHandler handler(&driver, FaviconDriverObserver::NON_TOUCH_16_DIP);
UpdateFaviconURL(&driver, &handler, kPageURL,
std::vector<FaviconURL>(1u, favicon_url));
EXPECT_EQ(0u, handler.image_urls().size());
@@ -1452,8 +1413,8 @@ TEST_F(FaviconHandlerTest, TestSortFavicon) {
std::vector<gfx::Size>())};
TestFaviconDriver driver1;
- TestFaviconHandler handler1(kPageURL, &driver1,
- FaviconHandler::LARGEST_FAVICON);
+ TestFaviconHandler handler1(&driver1,
+ FaviconDriverObserver::NON_TOUCH_LARGEST);
std::vector<FaviconURL> urls1(kSourceIconURLs,
kSourceIconURLs + arraysize(kSourceIconURLs));
UpdateFaviconURL(&driver1, &handler1, kPageURL, urls1);
@@ -1515,8 +1476,8 @@ TEST_F(FaviconHandlerTest, TestDownloadLargestFavicon) {
std::vector<gfx::Size>())};
TestFaviconDriver driver1;
- TestFaviconHandler handler1(kPageURL, &driver1,
- FaviconHandler::LARGEST_FAVICON);
+ TestFaviconHandler handler1(&driver1,
+ FaviconDriverObserver::NON_TOUCH_LARGEST);
std::set<GURL> fail_icon_urls;
for (size_t i = 0; i < arraysize(kSourceIconURLs); ++i) {
@@ -1583,8 +1544,8 @@ TEST_F(FaviconHandlerTest, TestSelectLargestFavicon) {
GURL("http://www.google.com/c"), favicon_base::FAVICON, two_icons)};
TestFaviconDriver driver1;
- TestFaviconHandler handler1(kPageURL, &driver1,
- FaviconHandler::LARGEST_FAVICON);
+ TestFaviconHandler handler1(&driver1,
+ FaviconDriverObserver::NON_TOUCH_LARGEST);
std::vector<FaviconURL> urls1(kSourceIconURLs,
kSourceIconURLs + arraysize(kSourceIconURLs));
UpdateFaviconURL(&driver1, &handler1, kPageURL, urls1);
@@ -1626,10 +1587,9 @@ TEST_F(FaviconHandlerTest, TestSelectLargestFavicon) {
EXPECT_EQ(kSourceIconURLs[i].icon_sizes[b],
handler1.history_handler()->size_);
// Verify NotifyFaviconAvailable().
- EXPECT_FALSE(driver1.update_active_favicon());
- EXPECT_EQ(kSourceIconURLs[i].icon_url, driver1.available_icon_url());
- EXPECT_EQ(kSourceIconURLs[i].icon_sizes[b],
- driver1.available_favicon().Size());
+ EXPECT_EQ(1u, driver1.num_notifications());
+ EXPECT_EQ(kSourceIconURLs[i].icon_url, driver1.icon_url());
+ EXPECT_EQ(kSourceIconURLs[i].icon_sizes[b], driver1.image().Size());
}
TEST_F(FaviconHandlerTest, TestFaviconWasScaledAfterDownload) {
@@ -1650,8 +1610,8 @@ TEST_F(FaviconHandlerTest, TestFaviconWasScaledAfterDownload) {
GURL("http://www.google.com/c"), favicon_base::FAVICON, icon2)};
TestFaviconDriver driver1;
- TestFaviconHandler handler1(kPageURL, &driver1,
- FaviconHandler::LARGEST_FAVICON);
+ TestFaviconHandler handler1(&driver1,
+ FaviconDriverObserver::NON_TOUCH_LARGEST);
std::vector<FaviconURL> urls1(kSourceIconURLs,
kSourceIconURLs + arraysize(kSourceIconURLs));
UpdateFaviconURL(&driver1, &handler1, kPageURL, urls1);
@@ -1711,8 +1671,8 @@ TEST_F(FaviconHandlerTest, TestKeepDownloadedLargestFavicon) {
std::vector<gfx::Size>())};
TestFaviconDriver driver1;
- TestFaviconHandler handler1(kPageURL, &driver1,
- FaviconHandler::LARGEST_FAVICON);
+ TestFaviconHandler handler1(&driver1,
+ FaviconDriverObserver::NON_TOUCH_LARGEST);
std::vector<FaviconURL> urls1(kSourceIconURLs,
kSourceIconURLs + arraysize(kSourceIconURLs));
UpdateFaviconURL(&driver1, &handler1, kPageURL, urls1);
@@ -1762,86 +1722,5 @@ TEST_F(FaviconHandlerTest, TestKeepDownloadedLargestFavicon) {
handler1.history_handler()->size_);
}
-class FaviconHandlerActiveFaviconValidityParamTest :
- public FaviconHandlerTest,
- public ::testing::WithParamInterface<bool> {
- public:
- FaviconHandlerActiveFaviconValidityParamTest() {}
-
- ~FaviconHandlerActiveFaviconValidityParamTest() override {}
-
- bool GetActiveFaviconValiditySetting() {
- return GetParam();
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(FaviconHandlerActiveFaviconValidityParamTest);
-};
-
-TEST_P(FaviconHandlerActiveFaviconValidityParamTest,
- TestDownloadLargestIconDoesNotImpactActiveFaviconValidity) {
- const GURL page_url("http://www.google.com");
-
- std::vector<gfx::Size> one_icon;
- one_icon.push_back(gfx::Size(15, 15));
-
- const GURL old_favicon_url("http://www.google.com/old");
- const GURL new_favicon_url("http://www.google.com/b");
- const FaviconURL source_icon_urls[] = {
- FaviconURL(new_favicon_url, favicon_base::FAVICON, one_icon)};
- TestFaviconDriver driver1;
- TestFaviconHandler handler1(page_url, &driver1,
- FaviconHandler::LARGEST_FAVICON);
- std::vector<FaviconURL> urls1(source_icon_urls,
- source_icon_urls + arraysize(source_icon_urls));
- UpdateFaviconURL(&driver1, &handler1, page_url, urls1);
-
- HistoryRequestHandler* history_handler = handler1.history_handler();
-
- // Simulate the active favicon is updated, this shouldn't happen in real
- // use case, but we want to verify the behavior below is not impacted by
- // accident.
- driver1.SetActiveFaviconValidity(GetActiveFaviconValiditySetting());
- // Simulate the get favicon from history, but favicon URL didn't match.
- SetFaviconRawBitmapResult(old_favicon_url,
- &history_handler->history_results_);
- history_handler->InvokeCallback();
- // Since we downloaded largest icon, and don't want to set active favicon
- // NotifyFaviconAvaliable() should be called with is_active_favicon as false.
- EXPECT_EQ(old_favicon_url, driver1.available_icon_url());
- EXPECT_FALSE(driver1.update_active_favicon());
- EXPECT_EQ(1u, driver1.num_favicon_available());
-
- // We are trying to get favicon from history again.
- history_handler = handler1.history_handler();
- EXPECT_EQ(new_favicon_url, history_handler->icon_url_);
- // Simulate the get expired favicon from history.
- history_handler->history_results_.clear();
- SetFaviconRawBitmapResult(new_favicon_url, favicon_base::FAVICON, true,
- &history_handler->history_results_);
- history_handler->InvokeCallback();
- // Since we downloaded largest icon, and don't want to set active favicon
- // NotifyFaviconAvaliable() should be called with is_active_favicon as false.
- EXPECT_EQ(new_favicon_url, driver1.available_icon_url());
- EXPECT_FALSE(driver1.update_active_favicon());
- EXPECT_EQ(2u, driver1.num_favicon_available());
-
- // We are trying to download favicon.
- DownloadHandler* download_handler = handler1.download_handler();
- EXPECT_TRUE(download_handler->HasDownload());
- EXPECT_EQ(new_favicon_url, download_handler->GetImageUrl());
- // Simulate the download succeed.
- download_handler->InvokeCallback();
- // Since we downloaded largest icon, and don't want to set active favicon
- // NotifyFaviconAvaliable() should be called with is_active_favicon as false.
- EXPECT_EQ(new_favicon_url, driver1.available_icon_url());
- EXPECT_FALSE(driver1.update_active_favicon());
- EXPECT_EQ(3u, driver1.num_favicon_available());
-}
-
-INSTANTIATE_TEST_CASE_P(FaviconHandlerTestActiveFaviconValidityTrueOrFalse,
- FaviconHandlerActiveFaviconValidityParamTest,
- ::testing::Bool());
-
} // namespace
} // namespace favicon

Powered by Google App Engine
This is Rietveld 408576698