| 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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 EXPECT_EQ(FAVICON, icon_type_out); | 144 EXPECT_EQ(FAVICON, icon_type_out); |
| 145 EXPECT_STREQ(kSizesSmallAndLarge.c_str(), sizes_out.c_str()); | 145 EXPECT_STREQ(kSizesSmallAndLarge.c_str(), sizes_out.c_str()); |
| 146 | 146 |
| 147 std::vector<FaviconBitmap> favicon_bitmaps_out; | 147 std::vector<FaviconBitmap> favicon_bitmaps_out; |
| 148 EXPECT_TRUE(db.GetFaviconBitmaps(icon_id, &favicon_bitmaps_out)); | 148 EXPECT_TRUE(db.GetFaviconBitmaps(icon_id, &favicon_bitmaps_out)); |
| 149 EXPECT_EQ(2u, favicon_bitmaps_out.size()); | 149 EXPECT_EQ(2u, favicon_bitmaps_out.size()); |
| 150 | 150 |
| 151 FaviconBitmap favicon_bitmap1 = favicon_bitmaps_out[0]; | 151 FaviconBitmap favicon_bitmap1 = favicon_bitmaps_out[0]; |
| 152 FaviconBitmap favicon_bitmap2 = favicon_bitmaps_out[1]; | 152 FaviconBitmap favicon_bitmap2 = favicon_bitmaps_out[1]; |
| 153 | 153 |
| 154 // Bitmaps do not need to be in particular order. | 154 // Favicon bitmaps do not need to be in particular order. |
| 155 if (favicon_bitmap1.bitmap_id == bitmap2_id) { | 155 if (favicon_bitmap1.bitmap_id == bitmap2_id) { |
| 156 FaviconBitmap tmp_favicon_bitmap = favicon_bitmap1; | 156 FaviconBitmap tmp_favicon_bitmap = favicon_bitmap1; |
| 157 favicon_bitmap1 = favicon_bitmap2; | 157 favicon_bitmap1 = favicon_bitmap2; |
| 158 favicon_bitmap2 = tmp_favicon_bitmap; | 158 favicon_bitmap2 = tmp_favicon_bitmap; |
| 159 } | 159 } |
| 160 | 160 |
| 161 EXPECT_EQ(bitmap1_id, favicon_bitmap1.bitmap_id); | 161 EXPECT_EQ(bitmap1_id, favicon_bitmap1.bitmap_id); |
| 162 EXPECT_EQ(icon_id, favicon_bitmap1.icon_id); | 162 EXPECT_EQ(icon_id, favicon_bitmap1.icon_id); |
| 163 EXPECT_EQ(time.ToTimeT(), favicon_bitmap1.last_updated.ToTimeT()); | 163 EXPECT_EQ(time.ToTimeT(), favicon_bitmap1.last_updated.ToTimeT()); |
| 164 EXPECT_EQ(data.size(), favicon_bitmap1.bitmap_data->size()); | 164 EXPECT_EQ(data.size(), favicon_bitmap1.bitmap_data->size()); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 185 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 185 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 186 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 186 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 187 | 187 |
| 188 GURL url("http://google.com"); | 188 GURL url("http://google.com"); |
| 189 FaviconID id = db.AddFavicon(url, TOUCH_ICON); | 189 FaviconID id = db.AddFavicon(url, TOUCH_ICON); |
| 190 EXPECT_NE(0, id); | 190 EXPECT_NE(0, id); |
| 191 base::Time time = base::Time::Now(); | 191 base::Time time = base::Time::Now(); |
| 192 db.AddFaviconBitmap(id, favicon, time, gfx::Size()); | 192 db.AddFaviconBitmap(id, favicon, time, gfx::Size()); |
| 193 | 193 |
| 194 EXPECT_NE(0, db.AddIconMapping(url, id)); | 194 EXPECT_NE(0, db.AddIconMapping(url, id)); |
| 195 std::vector<IconMapping> icon_mapping; | 195 std::vector<IconMapping> icon_mappings; |
| 196 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); | 196 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mappings)); |
| 197 EXPECT_EQ(1u, icon_mapping.size()); | 197 EXPECT_EQ(1u, icon_mappings.size()); |
| 198 EXPECT_EQ(url, icon_mapping.front().page_url); | 198 EXPECT_EQ(url, icon_mappings.front().page_url); |
| 199 EXPECT_EQ(id, icon_mapping.front().icon_id); | 199 EXPECT_EQ(id, icon_mappings.front().icon_id); |
| 200 } | 200 } |
| 201 | 201 |
| 202 TEST_F(ThumbnailDatabaseTest, UpdateIconMapping) { | 202 TEST_F(ThumbnailDatabaseTest, UpdateIconMapping) { |
| 203 ThumbnailDatabase db; | 203 ThumbnailDatabase db; |
| 204 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 204 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 205 db.BeginTransaction(); | 205 db.BeginTransaction(); |
| 206 | 206 |
| 207 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 207 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 208 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 208 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 209 | 209 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 | 247 |
| 248 FaviconID id2 = db.AddFavicon(url, FAVICON); | 248 FaviconID id2 = db.AddFavicon(url, FAVICON); |
| 249 db.AddFaviconBitmap(id2, favicon, time, gfx::Size()); | 249 db.AddFaviconBitmap(id2, favicon, time, gfx::Size()); |
| 250 EXPECT_TRUE(0 < db.AddIconMapping(url, id2)); | 250 EXPECT_TRUE(0 < db.AddIconMapping(url, id2)); |
| 251 ASSERT_NE(id, id2); | 251 ASSERT_NE(id, id2); |
| 252 | 252 |
| 253 std::vector<IconMapping> icon_mapping; | 253 std::vector<IconMapping> icon_mapping; |
| 254 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); | 254 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, &icon_mapping)); |
| 255 ASSERT_EQ(2u, icon_mapping.size()); | 255 ASSERT_EQ(2u, icon_mapping.size()); |
| 256 EXPECT_EQ(icon_mapping.front().icon_type, TOUCH_ICON); | 256 EXPECT_EQ(icon_mapping.front().icon_type, TOUCH_ICON); |
| 257 EXPECT_TRUE(db.GetIconMappingForPageURL(url, FAVICON, NULL)); | 257 EXPECT_TRUE(db.GetIconMappingsForPageURL(url, FAVICON, NULL)); |
| 258 | 258 |
| 259 db.DeleteIconMappings(url); | 259 db.DeleteIconMappings(url); |
| 260 | 260 |
| 261 EXPECT_FALSE(db.GetIconMappingsForPageURL(url, NULL)); | 261 EXPECT_FALSE(db.GetIconMappingsForPageURL(url, NULL)); |
| 262 EXPECT_FALSE(db.GetIconMappingForPageURL(url, FAVICON, NULL)); | 262 EXPECT_FALSE(db.GetIconMappingsForPageURL(url, FAVICON, NULL)); |
| 263 } | 263 } |
| 264 | 264 |
| 265 TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURL) { | 265 TEST_F(ThumbnailDatabaseTest, GetIconMappingsForPageURL) { |
| 266 ThumbnailDatabase db; | 266 ThumbnailDatabase db; |
| 267 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 267 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 268 db.BeginTransaction(); | 268 db.BeginTransaction(); |
| 269 | 269 |
| 270 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 270 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 271 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 271 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 272 | 272 |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 db.AddIconMapping(page_url, kept_id); | 449 db.AddIconMapping(page_url, kept_id); |
| 450 | 450 |
| 451 FaviconID new_favicon_id = | 451 FaviconID new_favicon_id = |
| 452 db.CopyFaviconAndFaviconBitmapsToTemporaryTables(kept_id); | 452 db.CopyFaviconAndFaviconBitmapsToTemporaryTables(kept_id); |
| 453 EXPECT_NE(0, new_favicon_id); | 453 EXPECT_NE(0, new_favicon_id); |
| 454 EXPECT_TRUE(db.AddToTemporaryIconMappingTable(page_url, new_favicon_id)); | 454 EXPECT_TRUE(db.AddToTemporaryIconMappingTable(page_url, new_favicon_id)); |
| 455 | 455 |
| 456 EXPECT_TRUE(db.CommitTemporaryTables()); | 456 EXPECT_TRUE(db.CommitTemporaryTables()); |
| 457 | 457 |
| 458 // Only copied data should be left. | 458 // Only copied data should be left. |
| 459 IconMapping icon_mapping; | 459 std::vector<IconMapping> icon_mappings; |
| 460 EXPECT_TRUE(db.GetIconMappingForPageURL(page_url, FAVICON, &icon_mapping)); | 460 EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url, FAVICON, &icon_mappings)); |
| 461 EXPECT_EQ(new_favicon_id, icon_mapping.icon_id); | 461 EXPECT_EQ(1u, icon_mappings.size()); |
| 462 EXPECT_EQ(page_url, icon_mapping.page_url); | 462 EXPECT_EQ(new_favicon_id, icon_mappings[0].icon_id); |
| 463 EXPECT_EQ(page_url, icon_mappings[0].page_url); |
| 463 | 464 |
| 464 std::vector<FaviconBitmap> favicon_bitmaps; | 465 std::vector<FaviconBitmap> favicon_bitmaps; |
| 465 EXPECT_TRUE(db.GetFaviconBitmaps(icon_mapping.icon_id, &favicon_bitmaps)); | 466 EXPECT_TRUE(db.GetFaviconBitmaps(icon_mappings[0].icon_id, &favicon_bitmaps)); |
| 466 EXPECT_EQ(1u, favicon_bitmaps.size()); | 467 EXPECT_EQ(1u, favicon_bitmaps.size()); |
| 467 EXPECT_EQ(kLargeSize, favicon_bitmaps[0].pixel_size); | 468 EXPECT_EQ(kLargeSize, favicon_bitmaps[0].pixel_size); |
| 468 | 469 |
| 469 EXPECT_FALSE(db.GetFaviconIDForFaviconURL(unkept_url, false, NULL)); | 470 EXPECT_FALSE(db.GetFaviconIDForFaviconURL(unkept_url, false)); |
| 470 } | 471 } |
| 471 | 472 |
| 472 TEST_F(ThumbnailDatabaseTest, DeleteFavicon) { | 473 TEST_F(ThumbnailDatabaseTest, DeleteFavicon) { |
| 473 ThumbnailDatabase db; | 474 ThumbnailDatabase db; |
| 474 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 475 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 475 db.BeginTransaction(); | 476 db.BeginTransaction(); |
| 476 | 477 |
| 477 std::vector<unsigned char> data1(blob1, blob1 + sizeof(blob1)); | 478 std::vector<unsigned char> data1(blob1, blob1 + sizeof(blob1)); |
| 478 scoped_refptr<base::RefCountedBytes> favicon1( | 479 scoped_refptr<base::RefCountedBytes> favicon1( |
| 479 new base::RefCountedBytes(data1)); | 480 new base::RefCountedBytes(data1)); |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 665 | 666 |
| 666 // Migration should be done. | 667 // Migration should be done. |
| 667 // Test one icon_mapping. | 668 // Test one icon_mapping. |
| 668 GURL page_url1 = GURL("http://google.com/"); | 669 GURL page_url1 = GURL("http://google.com/"); |
| 669 std::vector<IconMapping> icon_mappings; | 670 std::vector<IconMapping> icon_mappings; |
| 670 EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url1, &icon_mappings)); | 671 EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url1, &icon_mappings)); |
| 671 ASSERT_EQ(1u, icon_mappings.size()); | 672 ASSERT_EQ(1u, icon_mappings.size()); |
| 672 EXPECT_EQ(FAVICON, icon_mappings[0].icon_type); | 673 EXPECT_EQ(FAVICON, icon_mappings[0].icon_type); |
| 673 EXPECT_EQ(page_url1, icon_mappings[0].page_url); | 674 EXPECT_EQ(page_url1, icon_mappings[0].page_url); |
| 674 EXPECT_EQ(1, icon_mappings[0].icon_id); | 675 EXPECT_EQ(1, icon_mappings[0].icon_id); |
| 675 base::Time time; | 676 EXPECT_EQ(icon1, icon_mappings[0].icon_url); |
| 676 scoped_refptr<base::RefCountedMemory> out_data; | |
| 677 GURL out_icon_url; | |
| 678 ASSERT_TRUE(db.GetFavicon( | |
| 679 icon_mappings[0].icon_id, &time, &out_data, &out_icon_url, NULL)); | |
| 680 EXPECT_EQ(icon1, out_icon_url); | |
| 681 | 677 |
| 682 // Test a page which has the same icon. | 678 // Test a page which has the same icon. |
| 683 GURL page_url3 = GURL("http://www.google.com/"); | 679 GURL page_url3 = GURL("http://www.google.com/"); |
| 684 icon_mappings.clear(); | 680 icon_mappings.clear(); |
| 685 EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url3, &icon_mappings)); | 681 EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url3, &icon_mappings)); |
| 686 ASSERT_EQ(1u, icon_mappings.size()); | 682 ASSERT_EQ(1u, icon_mappings.size()); |
| 687 EXPECT_EQ(FAVICON, icon_mappings[0].icon_type); | 683 EXPECT_EQ(FAVICON, icon_mappings[0].icon_type); |
| 688 EXPECT_EQ(page_url3, icon_mappings[0].page_url); | 684 EXPECT_EQ(page_url3, icon_mappings[0].page_url); |
| 689 EXPECT_EQ(1, icon_mappings[0].icon_id); | 685 EXPECT_EQ(1, icon_mappings[0].icon_id); |
| 686 EXPECT_EQ(icon1, icon_mappings[0].icon_url); |
| 690 | 687 |
| 691 // Test a icon_mapping with different IconID. | 688 // Test a icon_mapping with different IconID. |
| 692 GURL page_url2 = GURL("http://yahoo.com/"); | 689 GURL page_url2 = GURL("http://yahoo.com/"); |
| 693 icon_mappings.clear(); | 690 icon_mappings.clear(); |
| 694 EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url2, &icon_mappings)); | 691 EXPECT_TRUE(db.GetIconMappingsForPageURL(page_url2, &icon_mappings)); |
| 695 ASSERT_EQ(1u, icon_mappings.size()); | 692 ASSERT_EQ(1u, icon_mappings.size()); |
| 696 EXPECT_EQ(FAVICON, icon_mappings[0].icon_type); | 693 EXPECT_EQ(FAVICON, icon_mappings[0].icon_type); |
| 697 EXPECT_EQ(page_url2, icon_mappings[0].page_url); | 694 EXPECT_EQ(page_url2, icon_mappings[0].page_url); |
| 698 EXPECT_EQ(2, icon_mappings[0].icon_id); | 695 EXPECT_EQ(2, icon_mappings[0].icon_id); |
| 699 ASSERT_TRUE(db.GetFavicon( | 696 EXPECT_EQ(icon2, icon_mappings[0].icon_url); |
| 700 icon_mappings[0].icon_id, &time, &out_data, &out_icon_url, NULL)); | |
| 701 EXPECT_EQ(icon2, out_icon_url); | |
| 702 | 697 |
| 703 // Test a page without icon | 698 // Test a page without icon |
| 704 GURL page_url4 = GURL("http://www.google.com/blank.html"); | 699 GURL page_url4 = GURL("http://www.google.com/blank.html"); |
| 705 EXPECT_FALSE(db.GetIconMappingsForPageURL(page_url4, NULL)); | 700 EXPECT_FALSE(db.GetIconMappingsForPageURL(page_url4, NULL)); |
| 706 } | 701 } |
| 707 | 702 |
| 708 TEST_F(ThumbnailDatabaseTest, IconMappingEnumerator) { | 703 TEST_F(ThumbnailDatabaseTest, IconMappingEnumerator) { |
| 709 ThumbnailDatabase db; | 704 ThumbnailDatabase db; |
| 710 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); | 705 ASSERT_EQ(sql::INIT_OK, db.Init(file_name_, NULL, NULL)); |
| 711 db.BeginTransaction(); | 706 db.BeginTransaction(); |
| 712 | 707 |
| 713 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); | 708 std::vector<unsigned char> data(blob1, blob1 + sizeof(blob1)); |
| 714 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); | 709 scoped_refptr<base::RefCountedBytes> favicon(new base::RefCountedBytes(data)); |
| 715 | 710 |
| 716 GURL url("http://google.com"); | 711 GURL url("http://google.com"); |
| 717 FaviconID touch_icon_id1 = db.AddFavicon(url, TOUCH_ICON); | 712 GURL icon_url("http://google.com/favicon.ico"); |
| 713 FaviconID touch_icon_id1 = db.AddFavicon(icon_url, TOUCH_ICON, |
| 714 kSizesSmallAndLarge, favicon, base::Time::Now(), kSmallSize); |
| 718 ASSERT_NE(0, touch_icon_id1); | 715 ASSERT_NE(0, touch_icon_id1); |
| 719 ASSERT_TRUE(db.AddFaviconBitmap(touch_icon_id1, favicon, base::Time::Now(), | |
| 720 gfx::Size())); | |
| 721 IconMappingID touch_mapping_id1 = db.AddIconMapping(url, touch_icon_id1); | 716 IconMappingID touch_mapping_id1 = db.AddIconMapping(url, touch_icon_id1); |
| 722 ASSERT_NE(0, touch_mapping_id1); | 717 ASSERT_NE(0, touch_mapping_id1); |
| 723 | 718 |
| 724 FaviconID favicon_id1 = db.AddFavicon(url, FAVICON); | 719 FaviconID favicon_id1 = db.AddFavicon(icon_url, FAVICON, kSizesSmallAndLarge, |
| 720 favicon, base::Time::Now(), kSmallSize); |
| 725 ASSERT_NE(0, favicon_id1); | 721 ASSERT_NE(0, favicon_id1); |
| 726 ASSERT_TRUE(db.AddFaviconBitmap(favicon_id1, favicon, base::Time::Now(), | |
| 727 gfx::Size())); | |
| 728 IconMappingID favicon_mapping_id1 = db.AddIconMapping(url, favicon_id1); | 722 IconMappingID favicon_mapping_id1 = db.AddIconMapping(url, favicon_id1); |
| 729 ASSERT_NE(0, favicon_mapping_id1); | 723 ASSERT_NE(0, favicon_mapping_id1); |
| 730 | 724 |
| 731 GURL url2("http://chromium.org"); | 725 GURL url2("http://chromium.org"); |
| 732 FaviconID favicon_id2 = db.AddFavicon(url2, FAVICON); | 726 GURL icon_url2("http://chromium.org/favicon.ico"); |
| 727 FaviconID favicon_id2 = db.AddFavicon(icon_url2, FAVICON, kSizesSmallAndLarge, |
| 728 favicon, base::Time::Now(), kSmallSize); |
| 733 ASSERT_NE(0, favicon_id2); | 729 ASSERT_NE(0, favicon_id2); |
| 734 ASSERT_TRUE(db.AddFaviconBitmap(favicon_id2, favicon, base::Time::Now(), | |
| 735 gfx::Size())); | |
| 736 IconMappingID favicon_mapping_id2 = db.AddIconMapping(url2, favicon_id2); | 730 IconMappingID favicon_mapping_id2 = db.AddIconMapping(url2, favicon_id2); |
| 737 ASSERT_NE(0, favicon_mapping_id2); | 731 ASSERT_NE(0, favicon_mapping_id2); |
| 738 | 732 |
| 739 IconMapping icon_mapping; | 733 IconMapping icon_mapping; |
| 740 ThumbnailDatabase::IconMappingEnumerator enumerator1; | 734 ThumbnailDatabase::IconMappingEnumerator enumerator1; |
| 741 ASSERT_TRUE(db.InitIconMappingEnumerator(FAVICON, &enumerator1)); | 735 ASSERT_TRUE(db.InitIconMappingEnumerator(FAVICON, &enumerator1)); |
| 742 // There are 2 favicon mappings. | 736 // There are 2 favicon mappings. |
| 743 bool has_favicon_mapping1 = false; | 737 bool has_favicon_mapping1 = false; |
| 744 bool has_favicon_mapping2 = false; | 738 bool has_favicon_mapping2 = false; |
| 745 int mapping_count = 0; | 739 int mapping_count = 0; |
| 746 while (enumerator1.GetNextIconMapping(&icon_mapping)) { | 740 while (enumerator1.GetNextIconMapping(&icon_mapping)) { |
| 747 mapping_count++; | 741 mapping_count++; |
| 748 if (favicon_mapping_id1 == icon_mapping.mapping_id) { | 742 if (favicon_mapping_id1 == icon_mapping.mapping_id) { |
| 749 has_favicon_mapping1 = true; | 743 has_favicon_mapping1 = true; |
| 750 EXPECT_EQ(url, icon_mapping.page_url); | 744 EXPECT_EQ(url, icon_mapping.page_url); |
| 751 EXPECT_EQ(favicon_id1, icon_mapping.icon_id); | 745 EXPECT_EQ(favicon_id1, icon_mapping.icon_id); |
| 746 EXPECT_EQ(icon_url, icon_mapping.icon_url); |
| 752 EXPECT_EQ(FAVICON, icon_mapping.icon_type); | 747 EXPECT_EQ(FAVICON, icon_mapping.icon_type); |
| 753 } else if (favicon_mapping_id2 == icon_mapping.mapping_id) { | 748 } else if (favicon_mapping_id2 == icon_mapping.mapping_id) { |
| 754 has_favicon_mapping2 = true; | 749 has_favicon_mapping2 = true; |
| 755 EXPECT_EQ(url2, icon_mapping.page_url); | 750 EXPECT_EQ(url2, icon_mapping.page_url); |
| 756 EXPECT_EQ(favicon_id2, icon_mapping.icon_id); | 751 EXPECT_EQ(favicon_id2, icon_mapping.icon_id); |
| 752 EXPECT_EQ(icon_url2, icon_mapping.icon_url); |
| 757 EXPECT_EQ(FAVICON, icon_mapping.icon_type); | 753 EXPECT_EQ(FAVICON, icon_mapping.icon_type); |
| 758 } | 754 } |
| 759 } | 755 } |
| 760 EXPECT_EQ(2, mapping_count); | 756 EXPECT_EQ(2, mapping_count); |
| 761 EXPECT_TRUE(has_favicon_mapping1); | 757 EXPECT_TRUE(has_favicon_mapping1); |
| 762 EXPECT_TRUE(has_favicon_mapping2); | 758 EXPECT_TRUE(has_favicon_mapping2); |
| 763 | 759 |
| 764 ThumbnailDatabase::IconMappingEnumerator enumerator2; | 760 ThumbnailDatabase::IconMappingEnumerator enumerator2; |
| 765 ASSERT_TRUE(db.InitIconMappingEnumerator(TOUCH_ICON, &enumerator2)); | 761 ASSERT_TRUE(db.InitIconMappingEnumerator(TOUCH_ICON, &enumerator2)); |
| 766 ASSERT_TRUE(enumerator2.GetNextIconMapping(&icon_mapping)); | 762 ASSERT_TRUE(enumerator2.GetNextIconMapping(&icon_mapping)); |
| 767 EXPECT_EQ(touch_mapping_id1, icon_mapping.mapping_id); | 763 EXPECT_EQ(touch_mapping_id1, icon_mapping.mapping_id); |
| 768 EXPECT_EQ(url, icon_mapping.page_url); | 764 EXPECT_EQ(url, icon_mapping.page_url); |
| 769 EXPECT_EQ(touch_icon_id1, icon_mapping.icon_id); | 765 EXPECT_EQ(touch_icon_id1, icon_mapping.icon_id); |
| 766 EXPECT_EQ(icon_url, icon_mapping.icon_url); |
| 770 EXPECT_EQ(TOUCH_ICON, icon_mapping.icon_type); | 767 EXPECT_EQ(TOUCH_ICON, icon_mapping.icon_type); |
| 771 | 768 |
| 772 EXPECT_FALSE(enumerator2.GetNextIconMapping(&icon_mapping)); | 769 EXPECT_FALSE(enumerator2.GetNextIconMapping(&icon_mapping)); |
| 773 } | 770 } |
| 774 | 771 |
| 775 } // namespace history | 772 } // namespace history |
| OLD | NEW |