OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
426 EXPECT_TRUE(db.HasMappingFor(id2)); | 426 EXPECT_TRUE(db.HasMappingFor(id2)); |
427 EXPECT_FALSE(db.HasMappingFor(id3)); | 427 EXPECT_FALSE(db.HasMappingFor(id3)); |
428 | 428 |
429 // Remove all mappings | 429 // Remove all mappings |
430 db.DeleteIconMappings(page_url); | 430 db.DeleteIconMappings(page_url); |
431 EXPECT_FALSE(db.HasMappingFor(id1)); | 431 EXPECT_FALSE(db.HasMappingFor(id1)); |
432 EXPECT_FALSE(db.HasMappingFor(id2)); | 432 EXPECT_FALSE(db.HasMappingFor(id2)); |
433 EXPECT_FALSE(db.HasMappingFor(id3)); | 433 EXPECT_FALSE(db.HasMappingFor(id3)); |
434 } | 434 } |
435 | 435 |
436 TEST_F(ThumbnailDatabaseTest, CloneIconMapping) { | |
437 ThumbnailDatabase db; | |
438 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | |
439 db.BeginTransaction(); | |
440 | |
441 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | |
442 scoped_refptr<RefCountedBytes> favicon(new RefCountedBytes(data)); | |
443 | |
444 // Add a favicon which will have icon_mappings | |
445 FaviconID id1 = db.AddFavicon(GURL("http://google.com"), FAVICON); | |
446 EXPECT_NE(id1, 0); | |
sky
2011/11/17 04:49:01
assertions should have the format expected, actual
groby-ooo-7-16
2011/11/18 01:11:19
Done.
| |
447 base::Time time = base::Time::Now(); | |
448 db.SetFavicon(id1, favicon, time); | |
449 | |
450 // Add another type of favicon | |
451 FaviconID id2 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON); | |
452 EXPECT_NE(id2, 0); | |
453 time = base::Time::Now(); | |
454 db.SetFavicon(id2, favicon, time); | |
455 | |
456 // Add 3rd favicon | |
457 FaviconID id3 = db.AddFavicon(GURL("http://www.google.com/icon"), TOUCH_ICON); | |
458 EXPECT_NE(id3, 0); | |
459 time = base::Time::Now(); | |
460 db.SetFavicon(id3, favicon, time); | |
461 | |
462 GURL page1_url("http://page1.com"); | |
463 EXPECT_TRUE(db.AddIconMapping(page1_url, id1)); | |
464 EXPECT_TRUE(db.AddIconMapping(page1_url, id2)); | |
465 | |
466 GURL page2_url("http://page2.com"); | |
467 EXPECT_TRUE(db.AddIconMapping(page2_url, id3)); | |
468 | |
469 // Test we do nothing with existing mappings. | |
470 std::vector<IconMapping> icon_mapping; | |
471 EXPECT_TRUE(db.GetIconMappingsForPageURL(page2_url, &icon_mapping)); | |
472 ASSERT_EQ(1U, icon_mapping.size()); | |
473 | |
474 EXPECT_TRUE(db.CloneIconMapping(page1_url, page2_url)); | |
475 | |
476 icon_mapping.clear(); | |
477 EXPECT_TRUE(db.GetIconMappingsForPageURL(page2_url, &icon_mapping)); | |
478 ASSERT_EQ(1U, icon_mapping.size()); | |
479 EXPECT_EQ(page2_url, icon_mapping[0].page_url); | |
480 EXPECT_EQ(id3, icon_mapping[0].icon_id); | |
481 | |
482 // Test we clone if the new page has no mappings. | |
483 GURL page3_url("http://page3.com"); | |
484 EXPECT_TRUE(db.CloneIconMapping(page1_url, page3_url)); | |
485 | |
486 icon_mapping.clear(); | |
487 EXPECT_TRUE(db.GetIconMappingsForPageURL(page3_url, &icon_mapping)); | |
488 | |
489 ASSERT_EQ(2U, icon_mapping.size()); | |
490 if (icon_mapping[0].icon_id == id2) | |
491 std::swap(icon_mapping[0], icon_mapping[1]); | |
492 EXPECT_EQ(page3_url, icon_mapping[0].page_url); | |
493 EXPECT_EQ(id1, icon_mapping[0].icon_id); | |
494 EXPECT_EQ(page3_url, icon_mapping[1].page_url); | |
495 EXPECT_EQ(id2, icon_mapping[1].icon_id); | |
496 } | |
497 | |
436 TEST_F(IconMappingMigrationTest, TestIconMappingMigration) { | 498 TEST_F(IconMappingMigrationTest, TestIconMappingMigration) { |
437 HistoryDatabase history_db; | 499 HistoryDatabase history_db; |
438 ASSERT_TRUE(history_db.db_.Open(history_db_name_)); | 500 ASSERT_TRUE(history_db.db_.Open(history_db_name_)); |
439 history_db.BeginTransaction(); | 501 history_db.BeginTransaction(); |
440 | 502 |
441 const GURL icon1 = GURL("http://www.google.com/favicon.ico"); | 503 const GURL icon1 = GURL("http://www.google.com/favicon.ico"); |
442 const GURL icon2 = GURL("http://www.yahoo.com/favicon.ico"); | 504 const GURL icon2 = GURL("http://www.yahoo.com/favicon.ico"); |
443 | 505 |
444 ThumbnailDatabase db; | 506 ThumbnailDatabase db; |
445 ASSERT_EQ(sql::INIT_OK, db.Init(thumbnail_db_name_, NULL, &history_db)); | 507 ASSERT_EQ(sql::INIT_OK, db.Init(thumbnail_db_name_, NULL, &history_db)); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
481 ASSERT_TRUE(db.GetFavicon( | 543 ASSERT_TRUE(db.GetFavicon( |
482 icon_mappings[0].icon_id, &time, &out_data, &out_icon_url)); | 544 icon_mappings[0].icon_id, &time, &out_data, &out_icon_url)); |
483 EXPECT_EQ(icon2, out_icon_url); | 545 EXPECT_EQ(icon2, out_icon_url); |
484 | 546 |
485 // Test a page without icon | 547 // Test a page without icon |
486 GURL page_url4 = GURL("http://www.google.com/blank.html"); | 548 GURL page_url4 = GURL("http://www.google.com/blank.html"); |
487 EXPECT_FALSE(db.GetIconMappingsForPageURL(page_url4, NULL)); | 549 EXPECT_FALSE(db.GetIconMappingsForPageURL(page_url4, NULL)); |
488 } | 550 } |
489 | 551 |
490 } // namespace history | 552 } // namespace history |
OLD | NEW |