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

Side by Side Diff: chrome/browser/history/thumbnail_database_unittest.cc

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

Powered by Google App Engine
This is Rietveld 408576698