| Index: components/history/core/browser/history_backend_unittest.cc
|
| diff --git a/components/history/core/browser/history_backend_unittest.cc b/components/history/core/browser/history_backend_unittest.cc
|
| index b89d0a76ecceba163ac9d3d04778bf924dd9ce55..4c03989081c5baeed60da5005933cd847be80ad7 100644
|
| --- a/components/history/core/browser/history_backend_unittest.cc
|
| +++ b/components/history/core/browser/history_backend_unittest.cc
|
| @@ -1964,6 +1964,7 @@ TEST_F(HistoryBackendTest, SetFaviconsReplaceBitmapData) {
|
| GetOnlyFaviconBitmap(original_favicon_id, &original_favicon_bitmap));
|
| EXPECT_TRUE(
|
| BitmapColorEqual(SK_ColorBLUE, original_favicon_bitmap.bitmap_data));
|
| + EXPECT_NE(base::Time(), original_favicon_bitmap.last_updated);
|
|
|
| // Call SetFavicons() with completely identical data.
|
| bitmaps[0] = CreateBitmap(SK_ColorBLUE, kSmallEdgeSize);
|
| @@ -1978,6 +1979,7 @@ TEST_F(HistoryBackendTest, SetFaviconsReplaceBitmapData) {
|
| GetOnlyFaviconBitmap(updated_favicon_id, &updated_favicon_bitmap));
|
| EXPECT_TRUE(
|
| BitmapColorEqual(SK_ColorBLUE, updated_favicon_bitmap.bitmap_data));
|
| + EXPECT_NE(base::Time(), updated_favicon_bitmap.last_updated);
|
|
|
| // Call SetFavicons() with a different bitmap of the same size.
|
| bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize);
|
| @@ -2068,6 +2070,96 @@ TEST_F(HistoryBackendTest, SetFaviconsSameFaviconURLForTwoPages) {
|
| EXPECT_EQ(2u, favicon_bitmaps.size());
|
| }
|
|
|
| +// Tests calling SetLastResortFavicons(). Neither |page_url| nor |icon_url| are
|
| +// known to the database.
|
| +TEST_F(HistoryBackendTest, SetLastResortFaviconsForEmptyDB) {
|
| + GURL page_url("http://www.google.com");
|
| + GURL icon_url("http:/www.google.com/favicon.ico");
|
| +
|
| + std::vector<SkBitmap> bitmaps;
|
| + bitmaps.push_back(CreateBitmap(SK_ColorRED, kSmallEdgeSize));
|
| +
|
| + // Call SetLastResortFavicons() with a different icon URL and bitmap data.
|
| + EXPECT_TRUE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON,
|
| + icon_url, bitmaps));
|
| +
|
| + favicon_base::FaviconID favicon_id =
|
| + backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
|
| + icon_url, favicon_base::FAVICON, NULL);
|
| + EXPECT_NE(0, favicon_id);
|
| +
|
| + FaviconBitmap favicon_bitmap;
|
| + ASSERT_TRUE(GetOnlyFaviconBitmap(favicon_id, &favicon_bitmap));
|
| + // The original bitmap should have been retrieved.
|
| + EXPECT_TRUE(BitmapColorEqual(SK_ColorRED, favicon_bitmap.bitmap_data));
|
| + // The favicon should not be marked as expired.
|
| + EXPECT_EQ(base::Time(), favicon_bitmap.last_updated);
|
| +}
|
| +
|
| +// Tests calling SetLastResortFavicons(). |page_url| is known to the database
|
| +// but |icon_url| is not (the second should be irrelevant though).
|
| +TEST_F(HistoryBackendTest, SetLastResortFaviconsForPageInDB) {
|
| + GURL page_url("http://www.google.com");
|
| + GURL icon_url1("http:/www.google.com/favicon1.ico");
|
| + GURL icon_url2("http:/www.google.com/favicon2.ico");
|
| + std::vector<SkBitmap> bitmaps;
|
| + bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
|
| +
|
| + // Add bitmap to the database.
|
| + backend_->SetFavicons(page_url, favicon_base::FAVICON, icon_url1, bitmaps);
|
| + favicon_base::FaviconID original_favicon_id =
|
| + backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
|
| + icon_url1, favicon_base::FAVICON, NULL);
|
| + ASSERT_NE(0, original_favicon_id);
|
| +
|
| + // Call SetLastResortFavicons() with a different icon URL and bitmap data.
|
| + bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize);
|
| + EXPECT_FALSE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON,
|
| + icon_url2, bitmaps));
|
| + EXPECT_EQ(0, backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
|
| + icon_url2, favicon_base::FAVICON, NULL));
|
| +
|
| + FaviconBitmap favicon_bitmap;
|
| + ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap));
|
| + // The original bitmap should have been retrieved.
|
| + EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data));
|
| + // The favicon should not be marked as expired.
|
| + EXPECT_NE(base::Time(), favicon_bitmap.last_updated);
|
| +}
|
| +
|
| +// Tests calling SetLastResortFavicons(). |page_url| is not known to the
|
| +// database but |icon_url| is.
|
| +TEST_F(HistoryBackendTest, SetLastResortFaviconsForIconInDB) {
|
| + const GURL old_page_url("http://www.google.com/old");
|
| + const GURL page_url("http://www.google.com/");
|
| + const GURL icon_url("http://www.google.com/icon");
|
| + std::vector<SkBitmap> bitmaps;
|
| + bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize));
|
| +
|
| + // Add bitmap to the database.
|
| + backend_->SetFavicons(old_page_url, favicon_base::FAVICON, icon_url, bitmaps);
|
| + favicon_base::FaviconID original_favicon_id =
|
| + backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
|
| + icon_url, favicon_base::FAVICON, NULL);
|
| + ASSERT_NE(0, original_favicon_id);
|
| +
|
| + // Call SetLastResortFavicons() with a different bitmap.
|
| + bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize);
|
| + EXPECT_FALSE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON,
|
| + icon_url, bitmaps));
|
| +
|
| + EXPECT_EQ(original_favicon_id,
|
| + backend_->thumbnail_db_->GetFaviconIDForFaviconURL(
|
| + icon_url, favicon_base::FAVICON, NULL));
|
| +
|
| + FaviconBitmap favicon_bitmap;
|
| + ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap));
|
| + // The original bitmap should have been retrieved.
|
| + EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data));
|
| + // The favicon should not be marked as expired.
|
| + EXPECT_NE(base::Time(), favicon_bitmap.last_updated);
|
| +}
|
| +
|
| // Test repeatedly calling MergeFavicon(). |page_url| is initially not known
|
| // to the database.
|
| TEST_F(HistoryBackendTest, MergeFaviconPageURLNotInDB) {
|
|
|