| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <algorithm> | 5 #include <algorithm> |
| 6 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/file_path.h" | 10 #include "base/file_path.h" |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 // Get a temporary directory for the test DB files. | 63 // Get a temporary directory for the test DB files. |
| 64 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 64 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 65 | 65 |
| 66 file_name_ = temp_dir_.path().AppendASCII("TestThumbnails.db"); | 66 file_name_ = temp_dir_.path().AppendASCII("TestThumbnails.db"); |
| 67 new_file_name_ = temp_dir_.path().AppendASCII("TestFavicons.db"); | 67 new_file_name_ = temp_dir_.path().AppendASCII("TestFavicons.db"); |
| 68 history_db_name_ = temp_dir_.path().AppendASCII("TestHistory.db"); | 68 history_db_name_ = temp_dir_.path().AppendASCII("TestHistory.db"); |
| 69 google_bitmap_.reset( | 69 google_bitmap_.reset( |
| 70 gfx::JPEGCodec::Decode(kGoogleThumbnail, sizeof(kGoogleThumbnail))); | 70 gfx::JPEGCodec::Decode(kGoogleThumbnail, sizeof(kGoogleThumbnail))); |
| 71 } | 71 } |
| 72 | 72 |
| 73 const FaviconSizes& GetFaviconSizesSmallAndLarge() { | 73 const FaviconSizes GetFaviconSizesSmallAndLarge() { |
| 74 CR_DEFINE_STATIC_LOCAL(FaviconSizes, kSizesSmallAndLarge, ()); | 74 FaviconSizes sizes_small_and_large; |
| 75 if (kSizesSmallAndLarge.empty()) { | 75 sizes_small_and_large.push_back(kSmallSize); |
| 76 kSizesSmallAndLarge.push_back(kSmallSize); | 76 sizes_small_and_large.push_back(kLargeSize); |
| 77 kSizesSmallAndLarge.push_back(kLargeSize); | 77 return sizes_small_and_large; |
| 78 } | |
| 79 return kSizesSmallAndLarge; | |
| 80 } | 78 } |
| 81 | 79 |
| 82 scoped_ptr<SkBitmap> google_bitmap_; | 80 scoped_ptr<SkBitmap> google_bitmap_; |
| 83 | 81 |
| 84 ScopedTempDir temp_dir_; | 82 ScopedTempDir temp_dir_; |
| 85 FilePath file_name_; | 83 FilePath file_name_; |
| 86 FilePath new_file_name_; | 84 FilePath new_file_name_; |
| 87 FilePath history_db_name_; | 85 FilePath history_db_name_; |
| 88 }; | 86 }; |
| 89 | 87 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 | 122 |
| 125 TEST_F(ThumbnailDatabaseTest, GetFaviconAfterMigrationToTopSites) { | 123 TEST_F(ThumbnailDatabaseTest, GetFaviconAfterMigrationToTopSites) { |
| 126 ThumbnailDatabase db; | 124 ThumbnailDatabase db; |
| 127 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 125 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 128 db.BeginTransaction(); | 126 db.BeginTransaction(); |
| 129 | 127 |
| 130 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 128 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 131 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 129 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 132 | 130 |
| 133 GURL url("http://google.com"); | 131 GURL url("http://google.com"); |
| 134 FaviconID icon_id = db.AddFavicon(url, FAVICON); | 132 FaviconID icon_id = db.AddFavicon(url, FAVICON, |
| 135 db.SetFaviconSizes(icon_id, GetFaviconSizesSmallAndLarge()); | 133 GetFaviconSizesSmallAndLarge()); |
| 136 base::Time time = base::Time::Now(); | 134 base::Time time = base::Time::Now(); |
| 137 FaviconBitmapID bitmap1_id = db.AddFaviconBitmap(icon_id, favicon, time, | 135 FaviconBitmapID bitmap1_id = db.AddFaviconBitmap(icon_id, favicon, time, |
| 138 kSmallSize); | 136 kSmallSize); |
| 139 FaviconBitmapID bitmap2_id = db.AddFaviconBitmap(icon_id, favicon, time, | 137 FaviconBitmapID bitmap2_id = db.AddFaviconBitmap(icon_id, favicon, time, |
| 140 kLargeSize); | 138 kLargeSize); |
| 141 EXPECT_TRUE(db.RenameAndDropThumbnails(file_name_, new_file_name_)); | 139 EXPECT_TRUE(db.RenameAndDropThumbnails(file_name_, new_file_name_)); |
| 142 EXPECT_TRUE(db.IsLatestVersion()); | 140 EXPECT_TRUE(db.IsLatestVersion()); |
| 143 | 141 |
| 144 GURL url_out; | 142 GURL url_out; |
| 145 IconType icon_type_out; | 143 IconType icon_type_out; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 | 186 |
| 189 TEST_F(ThumbnailDatabaseTest, AddIconMapping) { | 187 TEST_F(ThumbnailDatabaseTest, AddIconMapping) { |
| 190 ThumbnailDatabase db; | 188 ThumbnailDatabase db; |
| 191 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 189 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 192 db.BeginTransaction(); | 190 db.BeginTransaction(); |
| 193 | 191 |
| 194 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 192 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 195 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 193 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 196 | 194 |
| 197 GURL url("http://google.com"); | 195 GURL url("http://google.com"); |
| 198 FaviconID id = db.AddFavicon(url, TOUCH_ICON); | 196 base::Time time = base::Time::Now(); |
| 197 FaviconID id = db.AddFavicon(url, TOUCH_ICON, GetDefaultFaviconSizes(), |
| 198 favicon, time, gfx::Size()); |
| 199 EXPECT_NE(0, id); | 199 EXPECT_NE(0, id); |
| 200 base::Time time = base::Time::Now(); | |
| 201 db.AddFaviconBitmap(id, favicon, time, gfx::Size()); | |
| 202 | 200 |
| 203 EXPECT_NE(0, db.AddIconMapping(url, id)); | 201 EXPECT_NE(0, db.AddIconMapping(url, id)); |
| 204 std::vector<IconMapping> icon_mappings; | 202 std::vector<IconMapping> icon_mappings; |
| 205 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mappings)); | 203 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mappings)); |
| 206 EXPECT_EQ(1u, icon_mappings.size()); | 204 EXPECT_EQ(1u, icon_mappings.size()); |
| 207 EXPECT_EQ(url, icon_mappings.front().page_url); | 205 EXPECT_EQ(url, icon_mappings.front().page_url); |
| 208 EXPECT_EQ(id, icon_mappings.front().icon_id); | 206 EXPECT_EQ(id, icon_mappings.front().icon_id); |
| 209 } | 207 } |
| 210 | 208 |
| 211 TEST_F(ThumbnailDatabaseTest, UpdateIconMapping) { | 209 TEST_F(ThumbnailDatabaseTest, UpdateIconMapping) { |
| 212 ThumbnailDatabase db; | 210 ThumbnailDatabase db; |
| 213 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 211 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 214 db.BeginTransaction(); | 212 db.BeginTransaction(); |
| 215 | 213 |
| 216 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | |
| 217 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | |
| 218 | |
| 219 GURL url("http://google.com"); | 214 GURL url("http://google.com"); |
| 220 FaviconID id = db.AddFavicon(url, TOUCH_ICON); | 215 FaviconID id = db.AddFavicon(url, TOUCH_ICON, GetDefaultFaviconSizes()); |
| 221 base::Time time = base::Time::Now(); | |
| 222 db.AddFaviconBitmap(id, favicon, time, gfx::Size()); | |
| 223 | 216 |
| 224 EXPECT_TRUE(0 < db.AddIconMapping(url, id)); | 217 EXPECT_TRUE(0 < db.AddIconMapping(url, id)); |
| 225 std::vector<IconMapping> icon_mapping; | 218 std::vector<IconMapping> icon_mapping; |
| 226 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); | 219 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); |
| 227 ASSERT_EQ(1u, icon_mapping.size()); | 220 ASSERT_EQ(1u, icon_mapping.size()); |
| 228 EXPECT_EQ(url, icon_mapping.front().page_url); | 221 EXPECT_EQ(url, icon_mapping.front().page_url); |
| 229 EXPECT_EQ(id, icon_mapping.front().icon_id); | 222 EXPECT_EQ(id, icon_mapping.front().icon_id); |
| 230 | 223 |
| 231 GURL url1("http://www.google.com/"); | 224 GURL url1("http://www.google.com/"); |
| 232 FaviconID new_id = db.AddFavicon(url1, TOUCH_ICON); | 225 FaviconID new_id = db.AddFavicon(url1, TOUCH_ICON, GetDefaultFaviconSizes()); |
| 233 EXPECT_TRUE(db.UpdateIconMapping(icon_mapping.front().mapping_id, new_id)); | 226 EXPECT_TRUE(db.UpdateIconMapping(icon_mapping.front().mapping_id, new_id)); |
| 234 | 227 |
| 235 icon_mapping.clear(); | 228 icon_mapping.clear(); |
| 236 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); | 229 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); |
| 237 ASSERT_EQ(1u, icon_mapping.size()); | 230 ASSERT_EQ(1u, icon_mapping.size()); |
| 238 EXPECT_EQ(url, icon_mapping.front().page_url); | 231 EXPECT_EQ(url, icon_mapping.front().page_url); |
| 239 EXPECT_EQ(new_id, icon_mapping.front().icon_id); | 232 EXPECT_EQ(new_id, icon_mapping.front().icon_id); |
| 240 EXPECT_NE(id, icon_mapping.front().icon_id); | 233 EXPECT_NE(id, icon_mapping.front().icon_id); |
| 241 } | 234 } |
| 242 | 235 |
| 243 TEST_F(ThumbnailDatabaseTest, DeleteIconMappings) { | 236 TEST_F(ThumbnailDatabaseTest, DeleteIconMappings) { |
| 244 ThumbnailDatabase db; | 237 ThumbnailDatabase db; |
| 245 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 238 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 246 db.BeginTransaction(); | 239 db.BeginTransaction(); |
| 247 | 240 |
| 248 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 241 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 249 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 242 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 250 | 243 |
| 251 GURL url("http://google.com"); | 244 GURL url("http://google.com"); |
| 252 FaviconID id = db.AddFavicon(url, TOUCH_ICON); | 245 FaviconID id = db.AddFavicon(url, TOUCH_ICON, GetDefaultFaviconSizes()); |
| 253 base::Time time = base::Time::Now(); | 246 base::Time time = base::Time::Now(); |
| 254 db.AddFaviconBitmap(id, favicon, time, gfx::Size()); | 247 db.AddFaviconBitmap(id, favicon, time, gfx::Size()); |
| 255 EXPECT_TRUE(0 < db.AddIconMapping(url, id)); | 248 EXPECT_TRUE(0 < db.AddIconMapping(url, id)); |
| 256 | 249 |
| 257 FaviconID id2 = db.AddFavicon(url, FAVICON); | 250 FaviconID id2 = db.AddFavicon(url, FAVICON, GetDefaultFaviconSizes()); |
| 258 db.AddFaviconBitmap(id2, favicon, time, gfx::Size()); | |
| 259 EXPECT_TRUE(0 < db.AddIconMapping(url, id2)); | 251 EXPECT_TRUE(0 < db.AddIconMapping(url, id2)); |
| 260 ASSERT_NE(id, id2); | 252 ASSERT_NE(id, id2); |
| 261 | 253 |
| 262 std::vector<IconMapping> icon_mapping; | 254 std::vector<IconMapping> icon_mapping; |
| 263 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); | 255 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); |
| 264 ASSERT_EQ(2u, icon_mapping.size()); | 256 ASSERT_EQ(2u, icon_mapping.size()); |
| 265 EXPECT_EQ(icon_mapping.front().icon_type, TOUCH_ICON); | 257 EXPECT_EQ(icon_mapping.front().icon_type, TOUCH_ICON); |
| 266 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, FAVICON, NULL)); | 258 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, FAVICON, NULL)); |
| 267 | 259 |
| 268 db.DeleteIconMappings(url); | 260 db.DeleteIconMappings(url); |
| 269 | 261 |
| 270 EXPECT_FALSE(db.GetIconMappingsForPageURL(url, NULL)); | 262 EXPECT_FALSE(db.GetIconMappingsForPageURL(url, NULL)); |
| 271 EXPECT_FALSE(db.GetIconMappingsForPageURL(url, FAVICON, NULL)); | 263 EXPECT_FALSE(db.GetIconMappingsForPageURL(url, FAVICON, NULL)); |
| 272 } | 264 } |
| 273 | 265 |
| 274 TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURL) { | 266 TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURL) { |
| 275 ThumbnailDatabase db; | 267 ThumbnailDatabase db; |
| 276 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 268 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 277 db.BeginTransaction(); | 269 db.BeginTransaction(); |
| 278 | 270 |
| 279 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 271 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 280 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 272 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 281 | 273 |
| 282 GURL url("http://google.com"); | 274 GURL url("http://google.com"); |
| 283 | 275 |
| 284 FaviconID id1 = db.AddFavicon(url, TOUCH_ICON); | 276 FaviconID id1 = db.AddFavicon(url, TOUCH_ICON, |
| 277 GetFaviconSizesSmallAndLarge()); |
| 285 base::Time time = base::Time::Now(); | 278 base::Time time = base::Time::Now(); |
| 286 db.AddFaviconBitmap(id1, favicon, time, kSmallSize); | 279 db.AddFaviconBitmap(id1, favicon, time, kSmallSize); |
| 287 db.AddFaviconBitmap(id1, favicon, time, kLargeSize); | 280 db.AddFaviconBitmap(id1, favicon, time, kLargeSize); |
| 288 EXPECT_TRUE(0 < db.AddIconMapping(url, id1)); | 281 EXPECT_TRUE(0 < db.AddIconMapping(url, id1)); |
| 289 | 282 |
| 290 FaviconID id2 = db.AddFavicon(url, FAVICON); | 283 FaviconID id2 = db.AddFavicon(url, FAVICON, GetFaviconSizesSmallAndLarge()); |
| 291 EXPECT_NE(id1, id2); | 284 EXPECT_NE(id1, id2); |
| 292 db.AddFaviconBitmap(id2, favicon, time, kSmallSize); | 285 db.AddFaviconBitmap(id2, favicon, time, kSmallSize); |
| 293 EXPECT_TRUE(0 < db.AddIconMapping(url, id2)); | 286 EXPECT_TRUE(0 < db.AddIconMapping(url, id2)); |
| 294 | 287 |
| 295 std::vector<IconMapping> icon_mappings; | 288 std::vector<IconMapping> icon_mappings; |
| 296 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mappings)); | 289 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mappings)); |
| 297 ASSERT_EQ(2u, icon_mappings.size()); | 290 ASSERT_EQ(2u, icon_mappings.size()); |
| 298 EXPECT_EQ(id1, icon_mappings[0].icon_id); | 291 EXPECT_EQ(id1, icon_mappings[0].icon_id); |
| 299 EXPECT_EQ(id2, icon_mappings[1].icon_id); | 292 EXPECT_EQ(id2, icon_mappings[1].icon_id); |
| 300 } | 293 } |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 443 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 436 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 444 | 437 |
| 445 db.BeginTransaction(); | 438 db.BeginTransaction(); |
| 446 | 439 |
| 447 EXPECT_TRUE(db.InitTemporaryTables()); | 440 EXPECT_TRUE(db.InitTemporaryTables()); |
| 448 | 441 |
| 449 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 442 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 450 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 443 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 451 | 444 |
| 452 GURL unkept_url("http://google.com/favicon2.ico"); | 445 GURL unkept_url("http://google.com/favicon2.ico"); |
| 453 FaviconID unkept_id = db.AddFavicon(unkept_url, FAVICON); | 446 FaviconID unkept_id = db.AddFavicon(unkept_url, FAVICON, |
| 447 GetFaviconSizesSmallAndLarge()); |
| 454 db.AddFaviconBitmap(unkept_id, favicon, base::Time::Now(), kSmallSize); | 448 db.AddFaviconBitmap(unkept_id, favicon, base::Time::Now(), kSmallSize); |
| 455 | 449 |
| 456 GURL kept_url("http://google.com/favicon.ico"); | 450 GURL kept_url("http://google.com/favicon.ico"); |
| 457 FaviconID kept_id = db.AddFavicon(kept_url, FAVICON); | 451 FaviconID kept_id = db.AddFavicon(kept_url, FAVICON, |
| 452 GetFaviconSizesSmallAndLarge()); |
| 458 db.AddFaviconBitmap(kept_id, favicon, base::Time::Now(), kLargeSize); | 453 db.AddFaviconBitmap(kept_id, favicon, base::Time::Now(), kLargeSize); |
| 459 | 454 |
| 460 GURL page_url("http://google.com"); | 455 GURL page_url("http://google.com"); |
| 461 db.AddIconMapping(page_url, unkept_id); | 456 db.AddIconMapping(page_url, unkept_id); |
| 462 db.AddIconMapping(page_url, kept_id); | 457 db.AddIconMapping(page_url, kept_id); |
| 463 | 458 |
| 464 FaviconID new_favicon_id = | 459 FaviconID new_favicon_id = |
| 465 db.CopyFaviconAndFaviconBitmapsToTemporaryTables(kept_id); | 460 db.CopyFaviconAndFaviconBitmapsToTemporaryTables(kept_id); |
| 466 EXPECT_NE(0, new_favicon_id); | 461 EXPECT_NE(0, new_favicon_id); |
| 467 EXPECT_TRUE(db.AddToTemporaryIconMappingTable(page_url, new_favicon_id)); | 462 EXPECT_TRUE(db.AddToTemporaryIconMappingTable(page_url, new_favicon_id)); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 491 db.BeginTransaction(); | 486 db.BeginTransaction(); |
| 492 | 487 |
| 493 std::vector<unsigned char> data1(blob1, blob1 + sizeof(blob1)); | 488 std::vector<unsigned char> data1(blob1, blob1 + sizeof(blob1)); |
| 494 scoped_refptr<base::RefCountedBytes> favicon1( | 489 scoped_refptr<base::RefCountedBytes> favicon1( |
| 495 new base::RefCountedBytes(data1)); | 490 new base::RefCountedBytes(data1)); |
| 496 std::vector<unsigned char> data2(blob2, blob2 + sizeof(blob2)); | 491 std::vector<unsigned char> data2(blob2, blob2 + sizeof(blob2)); |
| 497 scoped_refptr<base::RefCountedBytes> favicon2( | 492 scoped_refptr<base::RefCountedBytes> favicon2( |
| 498 new base::RefCountedBytes(data2)); | 493 new base::RefCountedBytes(data2)); |
| 499 | 494 |
| 500 GURL url("http://google.com"); | 495 GURL url("http://google.com"); |
| 501 FaviconID id = db.AddFavicon(url, FAVICON); | 496 FaviconID id = db.AddFavicon(url, FAVICON, GetFaviconSizesSmallAndLarge()); |
| 502 base::Time last_updated = base::Time::Now(); | 497 base::Time last_updated = base::Time::Now(); |
| 503 db.AddFaviconBitmap(id, favicon1, last_updated, kSmallSize); | 498 db.AddFaviconBitmap(id, favicon1, last_updated, kSmallSize); |
| 504 db.AddFaviconBitmap(id, favicon2, last_updated, kLargeSize); | 499 db.AddFaviconBitmap(id, favicon2, last_updated, kLargeSize); |
| 505 | 500 |
| 506 EXPECT_TRUE(db.GetFaviconBitmaps(id, NULL)); | 501 EXPECT_TRUE(db.GetFaviconBitmaps(id, NULL)); |
| 507 | 502 |
| 508 EXPECT_TRUE(db.DeleteFavicon(id)); | 503 EXPECT_TRUE(db.DeleteFavicon(id)); |
| 509 EXPECT_FALSE(db.GetFaviconBitmaps(id, NULL)); | 504 EXPECT_FALSE(db.GetFaviconBitmaps(id, NULL)); |
| 510 } | 505 } |
| 511 | 506 |
| 512 TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURLForReturnOrder) { | 507 TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURLForReturnOrder) { |
| 513 ThumbnailDatabase db; | 508 ThumbnailDatabase db; |
| 514 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 509 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 515 db.BeginTransaction(); | 510 db.BeginTransaction(); |
| 516 | 511 |
| 517 // Add a favicon | 512 // Add a favicon |
| 518 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 513 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 519 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 514 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 520 | 515 |
| 521 GURL url("http://google.com"); | 516 GURL page_url("http://google.com"); |
| 522 FaviconID id = db.AddFavicon(url, FAVICON); | 517 GURL icon_url("http://google.com/favicon.ico"); |
| 523 base::Time time = base::Time::Now(); | 518 base::Time time = base::Time::Now(); |
| 524 db.AddFaviconBitmap(id, favicon, time, gfx::Size()); | |
| 525 | 519 |
| 526 EXPECT_NE(0, db.AddIconMapping(url, id)); | 520 FaviconID id = db.AddFavicon(icon_url, FAVICON, GetDefaultFaviconSizes(), |
| 527 std::vector<IconMapping> icon_mapping; | 521 favicon, time, gfx::Size()); |
| 528 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); | 522 EXPECT_NE(0, db.AddIconMapping(page_url, id)); |
| 523 std::vector<IconMapping> icon_mappings; |
| 524 EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url, &icon_mappings)); |
| 529 | 525 |
| 530 EXPECT_EQ(url, icon_mapping.front().page_url); | 526 EXPECT_EQ(page_url, icon_mappings.front().page_url); |
| 531 EXPECT_EQ(id, icon_mapping.front().icon_id); | 527 EXPECT_EQ(id, icon_mappings.front().icon_id); |
| 532 EXPECT_EQ(FAVICON, icon_mapping.front().icon_type); | 528 EXPECT_EQ(FAVICON, icon_mappings.front().icon_type); |
| 533 | 529 |
| 534 // Add a touch icon | 530 // Add a touch icon |
| 535 std::vector<unsigned char> data2(blob2, blob2 + sizeof(blob2)); | 531 std::vector<unsigned char> data2(blob2, blob2 + sizeof(blob2)); |
| 536 scoped_refptr<base::RefCountedBytes> favicon2 = | 532 scoped_refptr<base::RefCountedBytes> favicon2 = |
| 537 new base::RefCountedBytes(data); | 533 new base::RefCountedBytes(data); |
| 538 | 534 |
| 539 FaviconID id2 = db.AddFavicon(url, TOUCH_ICON); | 535 FaviconID id2 = db.AddFavicon(icon_url, TOUCH_ICON, |
| 540 db.AddFaviconBitmap(id2, favicon2, time, gfx::Size()); | 536 GetDefaultFaviconSizes(), favicon2, time, gfx::Size()); |
| 541 EXPECT_NE(0, db.AddIconMapping(url, id2)); | 537 EXPECT_NE(0, db.AddIconMapping(page_url, id2)); |
| 542 | 538 |
| 543 icon_mapping.clear(); | 539 icon_mappings.clear(); |
| 544 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); | 540 EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url, &icon_mappings)); |
| 545 | 541 |
| 546 EXPECT_EQ(url, icon_mapping.front().page_url); | 542 EXPECT_EQ(page_url, icon_mappings.front().page_url); |
| 547 EXPECT_EQ(id2, icon_mapping.front().icon_id); | 543 EXPECT_EQ(id2, icon_mappings.front().icon_id); |
| 548 EXPECT_EQ(TOUCH_ICON, icon_mapping.front().icon_type); | 544 EXPECT_EQ(TOUCH_ICON, icon_mappings.front().icon_type); |
| 549 | 545 |
| 550 // Add a touch precomposed icon | 546 // Add a touch precomposed icon |
| 551 scoped_refptr<base::RefCountedBytes> favicon3 = | 547 scoped_refptr<base::RefCountedBytes> favicon3 = |
| 552 new base::RefCountedBytes(data2); | 548 new base::RefCountedBytes(data2); |
| 553 | 549 |
| 554 FaviconID id3 = db.AddFavicon(url, TOUCH_PRECOMPOSED_ICON); | 550 FaviconID id3 = db.AddFavicon(icon_url, TOUCH_PRECOMPOSED_ICON, |
| 555 db.AddFaviconBitmap(id3, favicon3, time, gfx::Size()); | 551 GetDefaultFaviconSizes(), favicon3, time, gfx::Size()); |
| 556 EXPECT_NE(0, db.AddIconMapping(url, id3)); | 552 EXPECT_NE(0, db.AddIconMapping(page_url, id3)); |
| 557 | 553 |
| 558 icon_mapping.clear(); | 554 icon_mappings.clear(); |
| 559 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); | 555 EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url, &icon_mappings)); |
| 560 | 556 |
| 561 EXPECT_EQ(url, icon_mapping.front().page_url); | 557 EXPECT_EQ(page_url, icon_mappings.front().page_url); |
| 562 EXPECT_EQ(id3, icon_mapping.front().icon_id); | 558 EXPECT_EQ(id3, icon_mappings.front().icon_id); |
| 563 EXPECT_EQ(TOUCH_PRECOMPOSED_ICON, icon_mapping.front().icon_type); | 559 EXPECT_EQ(TOUCH_PRECOMPOSED_ICON, icon_mappings.front().icon_type); |
| 564 } | 560 } |
| 565 | 561 |
| 566 // Test result of GetIconMappingsForPageURL when an icon type is passed in. | 562 // Test result of GetIconMappingsForPageURL when an icon type is passed in. |
| 567 TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURLWithIconType) { | 563 TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURLWithIconType) { |
| 568 ThumbnailDatabase db; | 564 ThumbnailDatabase db; |
| 569 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 565 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 570 db.BeginTransaction(); | 566 db.BeginTransaction(); |
| 571 | 567 |
| 572 GURL url("http://google.com"); | 568 GURL url("http://google.com"); |
| 573 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 569 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 574 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 570 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 575 base::Time time = base::Time::Now(); | 571 base::Time time = base::Time::Now(); |
| 576 | 572 |
| 577 FaviconID id1 = db.AddFavicon(url, FAVICON, GetDefaultFaviconSizes(), | 573 FaviconID id1 = db.AddFavicon(url, FAVICON, GetDefaultFaviconSizes(), |
| 578 favicon, time, gfx::Size()); | 574 favicon, time, gfx::Size()); |
| 579 EXPECT_NE(0, db.AddIconMapping(url, id1)); | 575 EXPECT_NE(0, db.AddIconMapping(url, id1)); |
| 580 | 576 |
| 581 FaviconID id2 = db.AddFavicon(url, TOUCH_ICON, GetDefaultFaviconSizes(), | 577 FaviconID id2 = db.AddFavicon(url, TOUCH_ICON, GetDefaultFaviconSizes(), |
| 582 favicon, time, gfx::Size()); | 578 favicon, time, gfx::Size()); |
| 583 EXPECT_NE(0, db.AddIconMapping(url, id2)); | 579 EXPECT_NE(0, db.AddIconMapping(url, id2)); |
| 584 | 580 |
| 581 FaviconID id3 = db.AddFavicon(url, TOUCH_ICON, GetDefaultFaviconSizes(), |
| 582 favicon, time, gfx::Size()); |
| 583 EXPECT_NE(0, db.AddIconMapping(url, id3)); |
| 584 |
| 585 // Only the mappings for favicons of type TOUCH_ICON should be returned as |
| 586 // TOUCH_ICON is a larger icon type than FAVICON. |
| 585 std::vector<IconMapping> icon_mappings; | 587 std::vector<IconMapping> icon_mappings; |
| 586 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, FAVICON | TOUCH_ICON, | 588 EXPECT_TRUE(db.GetIconMappingsForPageURL( |
| 587 &icon_mappings)); | 589 url, |
| 590 FAVICON | TOUCH_ICON | TOUCH_PRECOMPOSED_ICON, |
| 591 &icon_mappings)); |
| 592 |
| 588 EXPECT_EQ(2u, icon_mappings.size()); | 593 EXPECT_EQ(2u, icon_mappings.size()); |
| 589 EXPECT_EQ(id2, icon_mappings[0].icon_id); | 594 if (id2 == icon_mappings[0].icon_id) { |
| 590 EXPECT_EQ(id1, icon_mappings[1].icon_id); | 595 EXPECT_EQ(id3, icon_mappings[1].icon_id); |
| 596 } else { |
| 597 EXPECT_EQ(id3, icon_mappings[0].icon_id); |
| 598 EXPECT_EQ(id2, icon_mappings[1].icon_id); |
| 599 } |
| 591 | 600 |
| 592 icon_mappings.clear(); | 601 icon_mappings.clear(); |
| 593 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, TOUCH_ICON, &icon_mappings)); | 602 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, TOUCH_ICON, &icon_mappings)); |
| 603 if (id2 == icon_mappings[0].icon_id) { |
| 604 EXPECT_EQ(id3, icon_mappings[1].icon_id); |
| 605 } else { |
| 606 EXPECT_EQ(id3, icon_mappings[0].icon_id); |
| 607 EXPECT_EQ(id2, icon_mappings[1].icon_id); |
| 608 } |
| 609 |
| 610 icon_mappings.clear(); |
| 611 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, FAVICON, &icon_mappings)); |
| 594 EXPECT_EQ(1u, icon_mappings.size()); | 612 EXPECT_EQ(1u, icon_mappings.size()); |
| 595 EXPECT_EQ(id2, icon_mappings[0].icon_id); | 613 EXPECT_EQ(id1, icon_mappings[0].icon_id); |
| 596 } | 614 } |
| 597 | 615 |
| 598 TEST_F(ThumbnailDatabaseTest, HasMappingFor) { | 616 TEST_F(ThumbnailDatabaseTest, HasMappingFor) { |
| 599 ThumbnailDatabase db; | 617 ThumbnailDatabase db; |
| 600 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 618 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 601 db.BeginTransaction(); | 619 db.BeginTransaction(); |
| 602 | 620 |
| 603 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 621 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 604 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 622 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 605 | 623 |
| 606 // Add a favicon which will have icon_mappings | 624 // Add a favicon which will have icon_mappings |
| 607 FaviconID id1 = db.AddFavicon(GURL("http://google.com"), FAVICON); | 625 base::Time time = base::Time::Now(); |
| 626 FaviconID id1 = db.AddFavicon(GURL("http://google.com"), FAVICON, |
| 627 GetDefaultFaviconSizes(), favicon, time, gfx::Size()); |
| 608 EXPECT_NE(id1, 0); | 628 EXPECT_NE(id1, 0); |
| 609 base::Time time = base::Time::Now(); | |
| 610 db.AddFaviconBitmap(id1, favicon, time, gfx::Size()); | |
| 611 | 629 |
| 612 // Add another type of favicon | 630 // Add another type of favicon |
| 613 FaviconID id2 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON); | 631 time = base::Time::Now(); |
| 632 FaviconID id2 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON, |
| 633 GetDefaultFaviconSizes(), favicon, time, gfx::Size()); |
| 614 EXPECT_NE(id2, 0); | 634 EXPECT_NE(id2, 0); |
| 615 time = base::Time::Now(); | |
| 616 db.AddFaviconBitmap(id2, favicon, time, gfx::Size()); | |
| 617 | 635 |
| 618 // Add 3rd favicon | 636 // Add 3rd favicon |
| 619 FaviconID id3 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON); | 637 time = base::Time::Now(); |
| 638 FaviconID id3 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON, |
| 639 GetDefaultFaviconSizes(), favicon, time, gfx::Size()); |
| 620 EXPECT_NE(id3, 0); | 640 EXPECT_NE(id3, 0); |
| 621 time = base::Time::Now(); | |
| 622 db.AddFaviconBitmap(id3, favicon, time, gfx::Size()); | |
| 623 | 641 |
| 624 // Add 2 icon mapping | 642 // Add 2 icon mapping |
| 625 GURL page_url("http://www.google.com"); | 643 GURL page_url("http://www.google.com"); |
| 626 EXPECT_TRUE(db.AddIconMapping(page_url, id1)); | 644 EXPECT_TRUE(db.AddIconMapping(page_url, id1)); |
| 627 EXPECT_TRUE(db.AddIconMapping(page_url, id2)); | 645 EXPECT_TRUE(db.AddIconMapping(page_url, id2)); |
| 628 | 646 |
| 629 EXPECT_TRUE(db.HasMappingFor(id1)); | 647 EXPECT_TRUE(db.HasMappingFor(id1)); |
| 630 EXPECT_TRUE(db.HasMappingFor(id2)); | 648 EXPECT_TRUE(db.HasMappingFor(id2)); |
| 631 EXPECT_FALSE(db.HasMappingFor(id3)); | 649 EXPECT_FALSE(db.HasMappingFor(id3)); |
| 632 | 650 |
| 633 // Remove all mappings | 651 // Remove all mappings |
| 634 db.DeleteIconMappings(page_url); | 652 db.DeleteIconMappings(page_url); |
| 635 EXPECT_FALSE(db.HasMappingFor(id1)); | 653 EXPECT_FALSE(db.HasMappingFor(id1)); |
| 636 EXPECT_FALSE(db.HasMappingFor(id2)); | 654 EXPECT_FALSE(db.HasMappingFor(id2)); |
| 637 EXPECT_FALSE(db.HasMappingFor(id3)); | 655 EXPECT_FALSE(db.HasMappingFor(id3)); |
| 638 } | 656 } |
| 639 | 657 |
| 640 TEST_F(ThumbnailDatabaseTest, CloneIconMappings) { | 658 TEST_F(ThumbnailDatabaseTest, CloneIconMappings) { |
| 641 ThumbnailDatabase db; | 659 ThumbnailDatabase db; |
| 642 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 660 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 643 db.BeginTransaction(); | 661 db.BeginTransaction(); |
| 644 | 662 |
| 645 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 663 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 646 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 664 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 647 | 665 |
| 648 // Add a favicon which will have icon_mappings | 666 // Add a favicon which will have icon_mappings |
| 649 FaviconID id1 = db.AddFavicon(GURL("http://google.com"), FAVICON); | 667 FaviconID id1 = db.AddFavicon(GURL("http://google.com"), FAVICON, |
| 668 GetDefaultFaviconSizes()); |
| 650 EXPECT_NE(0, id1); | 669 EXPECT_NE(0, id1); |
| 651 base::Time time = base::Time::Now(); | 670 base::Time time = base::Time::Now(); |
| 652 db.AddFaviconBitmap(id1, favicon, time, gfx::Size()); | 671 db.AddFaviconBitmap(id1, favicon, time, gfx::Size()); |
| 653 | 672 |
| 654 // Add another type of favicon | 673 // Add another type of favicon |
| 655 FaviconID id2 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON); | 674 FaviconID id2 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON, |
| 675 GetDefaultFaviconSizes()); |
| 656 EXPECT_NE(0, id2); | 676 EXPECT_NE(0, id2); |
| 657 time = base::Time::Now(); | 677 time = base::Time::Now(); |
| 658 db.AddFaviconBitmap(id2, favicon, time, gfx::Size()); | 678 db.AddFaviconBitmap(id2, favicon, time, gfx::Size()); |
| 659 | 679 |
| 660 // Add 3rd favicon | 680 // Add 3rd favicon |
| 661 FaviconID id3 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON); | 681 FaviconID id3 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON, |
| 682 GetDefaultFaviconSizes()); |
| 662 EXPECT_NE(0, id3); | 683 EXPECT_NE(0, id3); |
| 663 time = base::Time::Now(); | 684 time = base::Time::Now(); |
| 664 db.AddFaviconBitmap(id3, favicon, time, gfx::Size()); | 685 db.AddFaviconBitmap(id3, favicon, time, gfx::Size()); |
| 665 | 686 |
| 666 GURL page1_url("http://page1.com"); | 687 GURL page1_url("http://page1.com"); |
| 667 EXPECT_TRUE(db.AddIconMapping(page1_url, id1)); | 688 EXPECT_TRUE(db.AddIconMapping(page1_url, id1)); |
| 668 EXPECT_TRUE(db.AddIconMapping(page1_url, id2)); | 689 EXPECT_TRUE(db.AddIconMapping(page1_url, id2)); |
| 669 | 690 |
| 670 GURL page2_url("http://page2.com"); | 691 GURL page2_url("http://page2.com"); |
| 671 EXPECT_TRUE(db.AddIconMapping(page2_url, id3)); | 692 EXPECT_TRUE(db.AddIconMapping(page2_url, id3)); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 | 774 |
| 754 TEST_F(ThumbnailDatabaseTest, IconMappingEnumerator) { | 775 TEST_F(ThumbnailDatabaseTest, IconMappingEnumerator) { |
| 755 ThumbnailDatabase db; | 776 ThumbnailDatabase db; |
| 756 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 777 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 757 db.BeginTransaction(); | 778 db.BeginTransaction(); |
| 758 | 779 |
| 759 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 780 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 760 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 781 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 761 | 782 |
| 762 GURL url("http://google.com"); | 783 GURL url("http://google.com"); |
| 763 FaviconID touch_icon_id1 = db.AddFavicon(url, TOUCH_ICON); | 784 GURL icon_url1("http://google.com/favicon.ico"); |
| 785 FaviconID touch_icon_id1 = db.AddFavicon(icon_url1, TOUCH_ICON, |
| 786 GetDefaultFaviconSizes(), favicon, base::Time::Now(), gfx::Size()); |
| 764 ASSERT_NE(0, touch_icon_id1); | 787 ASSERT_NE(0, touch_icon_id1); |
| 765 ASSERT_TRUE(db.AddFaviconBitmap(touch_icon_id1, favicon, base::Time::Now(), | |
| 766 gfx::Size())); | |
| 767 IconMappingID touch_mapping_id1 = db.AddIconMapping(url, touch_icon_id1); | 788 IconMappingID touch_mapping_id1 = db.AddIconMapping(url, touch_icon_id1); |
| 768 ASSERT_NE(0, touch_mapping_id1); | 789 ASSERT_NE(0, touch_mapping_id1); |
| 769 | 790 |
| 770 FaviconID favicon_id1 = db.AddFavicon(url, FAVICON); | 791 FaviconID favicon_id1 = db.AddFavicon(icon_url1, FAVICON, |
| 792 GetDefaultFaviconSizes(), favicon, base::Time::Now(), gfx::Size()); |
| 771 ASSERT_NE(0, favicon_id1); | 793 ASSERT_NE(0, favicon_id1); |
| 772 ASSERT_TRUE(db.AddFaviconBitmap(favicon_id1, favicon, base::Time::Now(), | |
| 773 gfx::Size())); | |
| 774 IconMappingID favicon_mapping_id1 = db.AddIconMapping(url, favicon_id1); | 794 IconMappingID favicon_mapping_id1 = db.AddIconMapping(url, favicon_id1); |
| 775 ASSERT_NE(0, favicon_mapping_id1); | 795 ASSERT_NE(0, favicon_mapping_id1); |
| 776 | 796 |
| 777 GURL url2("http://chromium.org"); | 797 GURL url2("http://chromium.org"); |
| 778 FaviconID favicon_id2 = db.AddFavicon(url2, FAVICON); | 798 GURL icon_url2("http://chromium.org/favicon.ico"); |
| 799 FaviconID favicon_id2 = db.AddFavicon(icon_url2, FAVICON, |
| 800 GetDefaultFaviconSizes(), favicon, base::Time::Now(), gfx::Size()); |
| 779 ASSERT_NE(0, favicon_id2); | 801 ASSERT_NE(0, favicon_id2); |
| 780 ASSERT_TRUE(db.AddFaviconBitmap(favicon_id2, favicon, base::Time::Now(), | |
| 781 gfx::Size())); | |
| 782 IconMappingID favicon_mapping_id2 = db.AddIconMapping(url2, favicon_id2); | 802 IconMappingID favicon_mapping_id2 = db.AddIconMapping(url2, favicon_id2); |
| 783 ASSERT_NE(0, favicon_mapping_id2); | 803 ASSERT_NE(0, favicon_mapping_id2); |
| 784 | 804 |
| 785 IconMapping icon_mapping; | 805 IconMapping icon_mapping; |
| 786 ThumbnailDatabase::IconMappingEnumerator enumerator1; | 806 ThumbnailDatabase::IconMappingEnumerator enumerator1; |
| 787 ASSERT_TRUE(db.InitIconMappingEnumerator(FAVICON, &enumerator1)); | 807 ASSERT_TRUE(db.InitIconMappingEnumerator(FAVICON, &enumerator1)); |
| 788 // There are 2 favicon mappings. | 808 // There are 2 favicon mappings. |
| 789 bool has_favicon_mapping1 = false; | 809 bool has_favicon_mapping1 = false; |
| 790 bool has_favicon_mapping2 = false; | 810 bool has_favicon_mapping2 = false; |
| 791 int mapping_count = 0; | 811 int mapping_count = 0; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 846 } | 866 } |
| 847 | 867 |
| 848 std::string sizes_as_string; | 868 std::string sizes_as_string; |
| 849 ThumbnailDatabase::FaviconSizesToDatabaseString(sizes_valid, | 869 ThumbnailDatabase::FaviconSizesToDatabaseString(sizes_valid, |
| 850 &sizes_as_string); | 870 &sizes_as_string); |
| 851 EXPECT_TRUE(sizes_as_string == "10 15 20 25" || | 871 EXPECT_TRUE(sizes_as_string == "10 15 20 25" || |
| 852 sizes_as_string == "20 25 10 15"); | 872 sizes_as_string == "20 25 10 15"); |
| 853 } | 873 } |
| 854 | 874 |
| 855 } // namespace history | 875 } // namespace history |
| OLD | NEW |