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

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

Issue 10802066: Adds support for saving favicon size into history database. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 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
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 21a649eec71dfdce7f9b1c11491c6269b36ff18a..85a4b7336e114ea154b7a71ac27d4441e95b59f3 100644
--- a/chrome/browser/history/thumbnail_database_unittest.cc
+++ b/chrome/browser/history/thumbnail_database_unittest.cc
@@ -151,7 +151,7 @@ TEST_F(ThumbnailDatabaseTest, GetFaviconAfterMigrationToTopSites) {
FaviconBitmap favicon_bitmap1 = favicon_bitmaps_out[0];
FaviconBitmap favicon_bitmap2 = favicon_bitmaps_out[1];
- // Bitmaps do not need to be in particular order.
+ // Favicon bitmaps do not need to be in particular order.
if (favicon_bitmap1.bitmap_id == bitmap2_id) {
FaviconBitmap tmp_favicon_bitmap = favicon_bitmap1;
favicon_bitmap1 = favicon_bitmap2;
@@ -192,11 +192,11 @@ TEST_F(ThumbnailDatabaseTest, AddIconMapping) {
db.AddFaviconBitmap(id, favicon, time, gfx::Size());
EXPECT_NE(0, db.AddIconMapping(url, id));
- std::vector<IconMapping> icon_mapping;
- EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping));
- EXPECT_EQ(1u, icon_mapping.size());
- EXPECT_EQ(url, icon_mapping.front().page_url);
- EXPECT_EQ(id, icon_mapping.front().icon_id);
+ std::vector<IconMapping> icon_mappings;
+ EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mappings));
+ EXPECT_EQ(1u, icon_mappings.size());
+ EXPECT_EQ(url, icon_mappings.front().page_url);
+ EXPECT_EQ(id, icon_mappings.front().icon_id);
}
TEST_F(ThumbnailDatabaseTest, UpdateIconMapping) {
@@ -254,12 +254,12 @@ TEST_F(ThumbnailDatabaseTest, DeleteIconMappings) {
EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping));
ASSERT_EQ(2u, icon_mapping.size());
EXPECT_EQ(icon_mapping.front().icon_type, TOUCH_ICON);
- EXPECT_TRUE(db.GetIconMappingForPageURL(url, FAVICON, NULL));
+ EXPECT_TRUE(db.GetIconMappingsForPageURL(url, FAVICON, NULL));
db.DeleteIconMappings(url);
EXPECT_FALSE(db.GetIconMappingsForPageURL(url, NULL));
- EXPECT_FALSE(db.GetIconMappingForPageURL(url, FAVICON, NULL));
+ EXPECT_FALSE(db.GetIconMappingsForPageURL(url, FAVICON, NULL));
}
TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURL) {
@@ -460,17 +460,18 @@ TEST_F(ThumbnailDatabaseTest, TemporaryTables) {
EXPECT_TRUE(db.CommitTemporaryTables());
// Only copied data should be left.
- IconMapping icon_mapping;
- EXPECT_TRUE(db.GetIconMappingForPageURL(page_url, FAVICON, &icon_mapping));
- EXPECT_EQ(new_favicon_id, icon_mapping.icon_id);
- EXPECT_EQ(page_url, icon_mapping.page_url);
+ std::vector<IconMapping> icon_mappings;
+ EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url, FAVICON, &icon_mappings));
+ EXPECT_EQ(1u, icon_mappings.size());
+ EXPECT_EQ(new_favicon_id, icon_mappings[0].icon_id);
+ EXPECT_EQ(page_url, icon_mappings[0].page_url);
std::vector<FaviconBitmap> favicon_bitmaps;
- EXPECT_TRUE(db.GetFaviconBitmaps(icon_mapping.icon_id, &favicon_bitmaps));
+ EXPECT_TRUE(db.GetFaviconBitmaps(icon_mappings[0].icon_id, &favicon_bitmaps));
EXPECT_EQ(1u, favicon_bitmaps.size());
EXPECT_EQ(kLargeSize, favicon_bitmaps[0].pixel_size);
- EXPECT_FALSE(db.GetFaviconIDForFaviconURL(unkept_url, false, NULL));
+ EXPECT_FALSE(db.GetFaviconIDForFaviconURL(unkept_url, false));
}
// Tests that deleting a favicon deletes the favicon row and favicon bitmap
@@ -553,6 +554,38 @@ TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURLForReturnOrder) {
EXPECT_EQ(TOUCH_PRECOMPOSED_ICON, icon_mapping.front().icon_type);
}
+// Test result of GetIconMappingsForPageURL when an icon type is passed in.
+TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURLWithIconType) {
+ ThumbnailDatabase db;
+ ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL));
+ db.BeginTransaction();
+
+ GURL url("http://google.com");
+ std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1));
+ scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data));
+ base::Time time = base::Time::Now();
+
+ FaviconID id1 = db.AddFavicon(url, FAVICON, "0 0", favicon, time,
+ gfx::Size());
+ EXPECT_NE(0, db.AddIconMapping(url, id1));
+
+ FaviconID id2 = db.AddFavicon(url, TOUCH_ICON, "0 0", favicon, time,
+ gfx::Size());
+ EXPECT_NE(0, db.AddIconMapping(url, id2));
+
+ std::vector<IconMapping> icon_mappings;
+ EXPECT_TRUE(db.GetIconMappingsForPageURL(url, FAVICON | TOUCH_ICON,
+ &icon_mappings));
+ EXPECT_EQ(2u, icon_mappings.size());
+ EXPECT_EQ(id2, icon_mappings[0].icon_id);
+ EXPECT_EQ(id1, icon_mappings[1].icon_id);
+
+ icon_mappings.clear();
+ EXPECT_TRUE(db.GetIconMappingsForPageURL(url, TOUCH_ICON, &icon_mappings));
+ EXPECT_EQ(1u, icon_mappings.size());
+ EXPECT_EQ(id2, icon_mappings[0].icon_id);
+}
+
TEST_F(ThumbnailDatabaseTest, HasMappingFor) {
ThumbnailDatabase db;
ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL));
@@ -595,7 +628,7 @@ TEST_F(ThumbnailDatabaseTest, HasMappingFor) {
EXPECT_FALSE(db.HasMappingFor(id3));
}
-TEST_F(ThumbnailDatabaseTest, CloneIconMapping) {
+TEST_F(ThumbnailDatabaseTest, CloneIconMappings) {
ThumbnailDatabase db;
ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL));
db.BeginTransaction();
@@ -633,7 +666,7 @@ TEST_F(ThumbnailDatabaseTest, CloneIconMapping) {
EXPECT_TRUE(db.GetIconMappingsForPageURL(page2_url, &icon_mapping));
ASSERT_EQ(1U, icon_mapping.size());
- EXPECT_TRUE(db.CloneIconMapping(page1_url, page2_url));
+ EXPECT_TRUE(db.CloneIconMappings(page1_url, page2_url));
icon_mapping.clear();
EXPECT_TRUE(db.GetIconMappingsForPageURL(page2_url, &icon_mapping));
@@ -643,7 +676,7 @@ TEST_F(ThumbnailDatabaseTest, CloneIconMapping) {
// Test we clone if the new page has no mappings.
GURL page3_url("http://page3.com");
- EXPECT_TRUE(db.CloneIconMapping(page1_url, page3_url));
+ EXPECT_TRUE(db.CloneIconMappings(page1_url, page3_url));
icon_mapping.clear();
EXPECT_TRUE(db.GetIconMappingsForPageURL(page3_url, &icon_mapping));
@@ -678,12 +711,7 @@ TEST_F(IconMappingMigrationTest, TestIconMappingMigration) {
EXPECT_EQ(FAVICON, icon_mappings[0].icon_type);
EXPECT_EQ(page_url1, icon_mappings[0].page_url);
EXPECT_EQ(1, icon_mappings[0].icon_id);
- base::Time time;
- scoped_refptr<base::RefCountedMemory> out_data;
- GURL out_icon_url;
- ASSERT_TRUE(db.GetFavicon(
- icon_mappings[0].icon_id, &time, &out_data, &out_icon_url, NULL));
- EXPECT_EQ(icon1, out_icon_url);
+ EXPECT_EQ(icon1, icon_mappings[0].icon_url);
// Test a page which has the same icon.
GURL page_url3 = GURL("http://www.google.com/");
@@ -693,6 +721,7 @@ TEST_F(IconMappingMigrationTest, TestIconMappingMigration) {
EXPECT_EQ(FAVICON, icon_mappings[0].icon_type);
EXPECT_EQ(page_url3, icon_mappings[0].page_url);
EXPECT_EQ(1, icon_mappings[0].icon_id);
+ EXPECT_EQ(icon1, icon_mappings[0].icon_url);
// Test a icon_mapping with different IconID.
GURL page_url2 = GURL("http://yahoo.com/");
@@ -702,9 +731,7 @@ TEST_F(IconMappingMigrationTest, TestIconMappingMigration) {
EXPECT_EQ(FAVICON, icon_mappings[0].icon_type);
EXPECT_EQ(page_url2, icon_mappings[0].page_url);
EXPECT_EQ(2, icon_mappings[0].icon_id);
- ASSERT_TRUE(db.GetFavicon(
- icon_mappings[0].icon_id, &time, &out_data, &out_icon_url, NULL));
- EXPECT_EQ(icon2, out_icon_url);
+ EXPECT_EQ(icon2, icon_mappings[0].icon_url);
// Test a page without icon
GURL page_url4 = GURL("http://www.google.com/blank.html");
@@ -720,25 +747,24 @@ TEST_F(ThumbnailDatabaseTest, IconMappingEnumerator) {
scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data));
GURL url("http://google.com");
- FaviconID touch_icon_id1 = db.AddFavicon(url, TOUCH_ICON);
+ GURL icon_url1("http://google.com/favicon.ico");
+ FaviconID touch_icon_id1 = db.AddFavicon(icon_url1, TOUCH_ICON,
+ kSizesSmallAndLarge, favicon, base::Time::Now(), kSmallSize);
ASSERT_NE(0, touch_icon_id1);
- ASSERT_TRUE(db.AddFaviconBitmap(touch_icon_id1, favicon, base::Time::Now(),
- gfx::Size()));
IconMappingID touch_mapping_id1 = db.AddIconMapping(url, touch_icon_id1);
ASSERT_NE(0, touch_mapping_id1);
- FaviconID favicon_id1 = db.AddFavicon(url, FAVICON);
+ FaviconID favicon_id1 = db.AddFavicon(icon_url1, FAVICON, kSizesSmallAndLarge,
+ favicon, base::Time::Now(), kSmallSize);
ASSERT_NE(0, favicon_id1);
- ASSERT_TRUE(db.AddFaviconBitmap(favicon_id1, favicon, base::Time::Now(),
- gfx::Size()));
IconMappingID favicon_mapping_id1 = db.AddIconMapping(url, favicon_id1);
ASSERT_NE(0, favicon_mapping_id1);
GURL url2("http://chromium.org");
- FaviconID favicon_id2 = db.AddFavicon(url2, FAVICON);
+ GURL icon_url2("http://chromium.org/favicon.ico");
+ FaviconID favicon_id2 = db.AddFavicon(icon_url2, FAVICON, kSizesSmallAndLarge,
+ favicon, base::Time::Now(), kSmallSize);
ASSERT_NE(0, favicon_id2);
- ASSERT_TRUE(db.AddFaviconBitmap(favicon_id2, favicon, base::Time::Now(),
- gfx::Size()));
IconMappingID favicon_mapping_id2 = db.AddIconMapping(url2, favicon_id2);
ASSERT_NE(0, favicon_mapping_id2);
@@ -755,11 +781,13 @@ TEST_F(ThumbnailDatabaseTest, IconMappingEnumerator) {
has_favicon_mapping1 = true;
EXPECT_EQ(url, icon_mapping.page_url);
EXPECT_EQ(favicon_id1, icon_mapping.icon_id);
+ EXPECT_EQ(icon_url1, icon_mapping.icon_url);
EXPECT_EQ(FAVICON, icon_mapping.icon_type);
} else if (favicon_mapping_id2 == icon_mapping.mapping_id) {
has_favicon_mapping2 = true;
EXPECT_EQ(url2, icon_mapping.page_url);
EXPECT_EQ(favicon_id2, icon_mapping.icon_id);
+ EXPECT_EQ(icon_url2, icon_mapping.icon_url);
EXPECT_EQ(FAVICON, icon_mapping.icon_type);
}
}
@@ -773,6 +801,7 @@ TEST_F(ThumbnailDatabaseTest, IconMappingEnumerator) {
EXPECT_EQ(touch_mapping_id1, icon_mapping.mapping_id);
EXPECT_EQ(url, icon_mapping.page_url);
EXPECT_EQ(touch_icon_id1, icon_mapping.icon_id);
+ EXPECT_EQ(icon_url1, icon_mapping.icon_url);
EXPECT_EQ(TOUCH_ICON, icon_mapping.icon_type);
EXPECT_FALSE(enumerator2.GetNextIconMapping(&icon_mapping));

Powered by Google App Engine
This is Rietveld 408576698