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

Unified Diff: chrome/browser/history/thumbnail_database_unittest.cc

Issue 8469018: Provide assumed favicon for intents if service provider page was never visited. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 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: 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 a4455309e88125bb7f0e1809f676581955494a07..c5b715df4a18ba744dc698bd305683cacdae2d82 100644
--- a/chrome/browser/history/thumbnail_database_unittest.cc
+++ b/chrome/browser/history/thumbnail_database_unittest.cc
@@ -433,6 +433,68 @@ TEST_F(ThumbnailDatabaseTest, HasMappingFor) {
EXPECT_FALSE(db.HasMappingFor(id3));
}
+TEST_F(ThumbnailDatabaseTest, CloneIconMapping) {
+ ThumbnailDatabase db;
+ ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL));
+ db.BeginTransaction();
+
+ std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1));
+ scoped_refptr<RefCountedBytes> favicon(new RefCountedBytes(data));
+
+ // Add a favicon which will have icon_mappings
+ FaviconID id1 = db.AddFavicon(GURL("http://google.com"), FAVICON);
+ EXPECT_NE(id1, 0);
+ base::Time time = base::Time::Now();
+ db.SetFavicon(id1, favicon, time);
+
+ // Add another type of favicon
+ FaviconID id2 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON);
+ EXPECT_NE(id2, 0);
+ time = base::Time::Now();
+ db.SetFavicon(id2, favicon, time);
+
+ // Add 3rd favicon
+ FaviconID id3 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON);
+ EXPECT_NE(id3, 0);
+ time = base::Time::Now();
+ db.SetFavicon(id3, favicon, time);
+
+ GURL page1_url("http://page1.com");
+ EXPECT_TRUE(db.AddIconMapping(page1_url, id1));
+ EXPECT_TRUE(db.AddIconMapping(page1_url, id2));
+
+ GURL page2_url("http://page2.com");
+ EXPECT_TRUE(db.AddIconMapping(page2_url, id3));
+
+ // Test we do nothing with existing mappings.
+ std::vector<IconMapping> icon_mapping;
+ EXPECT_TRUE(db.GetIconMappingsForPageURL(page2_url, &icon_mapping));
+ ASSERT_EQ(1U, icon_mapping.size());
+
+ EXPECT_TRUE(db.CloneIconMapping(page1_url, page2_url));
+
+ icon_mapping.clear();
+ EXPECT_TRUE(db.GetIconMappingsForPageURL(page2_url, &icon_mapping));
+ ASSERT_EQ(1U, icon_mapping.size());
+ EXPECT_EQ(page2_url, icon_mapping[0].page_url);
+ EXPECT_EQ(id3, icon_mapping[0].icon_id);
+
+ // Test we clone if the new page has no mappings.
+ GURL page3_url("http://page3.com");
+ EXPECT_TRUE(db.CloneIconMapping(page1_url, page3_url));
+
+ icon_mapping.clear();
+ EXPECT_TRUE(db.GetIconMappingsForPageURL(page3_url, &icon_mapping));
+
+ ASSERT_EQ(2U, icon_mapping.size());
+ if (icon_mapping[0].icon_id == id2)
+ std::swap(icon_mapping[0], icon_mapping[1]);
+ EXPECT_EQ(page3_url, icon_mapping[0].page_url);
+ EXPECT_EQ(id1, icon_mapping[0].icon_id);
+ EXPECT_EQ(page3_url, icon_mapping[1].page_url);
+ EXPECT_EQ(id2, icon_mapping[1].icon_id);
+}
+
TEST_F(IconMappingMigrationTest, TestIconMappingMigration) {
HistoryDatabase history_db;
ASSERT_TRUE(history_db.db_.Open(history_db_name_));

Powered by Google App Engine
This is Rietveld 408576698