Index: chrome/browser/history/thumbnail_database_unittest.cc |
diff --git a/chrome/browser/history/thumbnail_database_unittest.cc b/chrome/browser/history/thumbnail_database_unittest.cc |
index 9cca3cdd5685755c36f058de8b2cd225360ad81f..4b552d2372a86a4be2d96736ef50feb468841743 100644 |
--- a/chrome/browser/history/thumbnail_database_unittest.cc |
+++ b/chrome/browser/history/thumbnail_database_unittest.cc |
@@ -387,6 +387,31 @@ TEST_F(ThumbnailDatabaseTest, RetainDataForPageUrls) { |
EXPECT_EQ(original_schema, db.db_.GetSchema()); |
} |
+// Test that RetainDataForPageUrls() expires retained favicons. |
+TEST_F(ThumbnailDatabaseTest, RetainDataForPageUrlsExpiresRetainedFavicons) { |
+ ThumbnailDatabase db(NULL); |
+ ASSERT_EQ(sql::INIT_OK, db.Init(file_name_)); |
+ db.BeginTransaction(); |
+ |
+ scoped_refptr<base::RefCountedStaticMemory> favicon1( |
+ new base::RefCountedStaticMemory(kBlob1, sizeof(kBlob1))); |
+ favicon_base::FaviconID kept_id = db.AddFavicon( |
+ kIconUrl1, favicon_base::FAVICON, favicon1, base::Time::Now(), |
+ gfx::Size()); |
+ db.AddIconMapping(kPageUrl1, kept_id); |
+ |
+ EXPECT_TRUE(db.RetainDataForPageUrls(std::vector<GURL>(1u, kPageUrl1))); |
+ |
+ favicon_base::FaviconID new_favicon_id = db.GetFaviconIDForFaviconURL( |
+ kIconUrl1, favicon_base::FAVICON, nullptr); |
+ ASSERT_NE(0, new_favicon_id); |
+ std::vector<FaviconBitmap> new_favicon_bitmaps; |
+ db.GetFaviconBitmaps(new_favicon_id, &new_favicon_bitmaps); |
+ |
+ ASSERT_EQ(1u, new_favicon_bitmaps.size()); |
+ EXPECT_EQ(0, new_favicon_bitmaps[0].last_updated.ToInternalValue()); |
+} |
+ |
// Tests that deleting a favicon deletes the favicon row and favicon bitmap |
// rows from the database. |
TEST_F(ThumbnailDatabaseTest, DeleteFavicon) { |