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 "components/history/core/browser/history_backend.h" | 5 #include "components/history/core/browser/history_backend.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <memory> | 10 #include <memory> |
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
586 // we can test that updating works properly. | 586 // we can test that updating works properly. |
587 GURL favicon_url1("http://www.google.com/favicon.ico"); | 587 GURL favicon_url1("http://www.google.com/favicon.ico"); |
588 GURL favicon_url2("http://news.google.com/favicon.ico"); | 588 GURL favicon_url2("http://news.google.com/favicon.ico"); |
589 favicon_base::FaviconID favicon2 = | 589 favicon_base::FaviconID favicon2 = |
590 backend_->thumbnail_db_->AddFavicon(favicon_url2, favicon_base::FAVICON); | 590 backend_->thumbnail_db_->AddFavicon(favicon_url2, favicon_base::FAVICON); |
591 favicon_base::FaviconID favicon1 = | 591 favicon_base::FaviconID favicon1 = |
592 backend_->thumbnail_db_->AddFavicon(favicon_url1, favicon_base::FAVICON); | 592 backend_->thumbnail_db_->AddFavicon(favicon_url1, favicon_base::FAVICON); |
593 | 593 |
594 std::vector<unsigned char> data; | 594 std::vector<unsigned char> data; |
595 data.push_back('a'); | 595 data.push_back('a'); |
596 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(favicon1, | 596 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap( |
597 new base::RefCountedBytes(data), base::Time::Now(), kSmallSize)); | 597 favicon1, new base::RefCountedBytes(data), FaviconBitmapType::ON_VISIT, |
| 598 base::Time::Now(), kSmallSize)); |
598 data[0] = 'b'; | 599 data[0] = 'b'; |
599 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(favicon1, | 600 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap( |
600 new base::RefCountedBytes(data), base::Time::Now(), kLargeSize)); | 601 favicon1, new base::RefCountedBytes(data), FaviconBitmapType::ON_VISIT, |
| 602 base::Time::Now(), kLargeSize)); |
601 | 603 |
602 data[0] = 'c'; | 604 data[0] = 'c'; |
603 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(favicon2, | 605 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap( |
604 new base::RefCountedBytes(data), base::Time::Now(), kSmallSize)); | 606 favicon2, new base::RefCountedBytes(data), FaviconBitmapType::ON_VISIT, |
| 607 base::Time::Now(), kSmallSize)); |
605 data[0] = 'd'; | 608 data[0] = 'd'; |
606 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap(favicon2, | 609 EXPECT_TRUE(backend_->thumbnail_db_->AddFaviconBitmap( |
607 new base::RefCountedBytes(data), base::Time::Now(), kLargeSize)); | 610 favicon2, new base::RefCountedBytes(data), FaviconBitmapType::ON_VISIT, |
| 611 base::Time::Now(), kLargeSize)); |
608 | 612 |
609 // First visit two URLs. | 613 // First visit two URLs. |
610 URLRow row1(GURL("http://www.google.com/")); | 614 URLRow row1(GURL("http://www.google.com/")); |
611 row1.set_visit_count(2); | 615 row1.set_visit_count(2); |
612 row1.set_typed_count(1); | 616 row1.set_typed_count(1); |
613 row1.set_last_visit(base::Time::Now()); | 617 row1.set_last_visit(base::Time::Now()); |
614 backend_->thumbnail_db_->AddIconMapping(row1.url(), favicon1); | 618 backend_->thumbnail_db_->AddIconMapping(row1.url(), favicon1); |
615 | 619 |
616 URLRow row2(GURL("http://news.google.com/")); | 620 URLRow row2(GURL("http://news.google.com/")); |
617 row2.set_visit_count(1); | 621 row2.set_visit_count(1); |
(...skipping 1451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2069 page_url2, &icon_mappings)); | 2073 page_url2, &icon_mappings)); |
2070 EXPECT_EQ(1u, icon_mappings.size()); | 2074 EXPECT_EQ(1u, icon_mappings.size()); |
2071 EXPECT_EQ(favicon_id, icon_mappings[0].icon_id); | 2075 EXPECT_EQ(favicon_id, icon_mappings[0].icon_id); |
2072 | 2076 |
2073 favicon_bitmaps.clear(); | 2077 favicon_bitmaps.clear(); |
2074 EXPECT_TRUE(backend_->thumbnail_db_->GetFaviconBitmaps(favicon_id, | 2078 EXPECT_TRUE(backend_->thumbnail_db_->GetFaviconBitmaps(favicon_id, |
2075 &favicon_bitmaps)); | 2079 &favicon_bitmaps)); |
2076 EXPECT_EQ(2u, favicon_bitmaps.size()); | 2080 EXPECT_EQ(2u, favicon_bitmaps.size()); |
2077 } | 2081 } |
2078 | 2082 |
2079 // Tests calling SetLastResortFavicons(). Neither |page_url| nor |icon_url| are | 2083 // Tests calling SetOnDemandFavicons(). Neither |page_url| nor |icon_url| are |
2080 // known to the database. | 2084 // known to the database. |
2081 TEST_F(HistoryBackendTest, SetLastResortFaviconsForEmptyDB) { | 2085 TEST_F(HistoryBackendTest, SetOnDemandFaviconsForEmptyDB) { |
2082 GURL page_url("http://www.google.com"); | 2086 GURL page_url("http://www.google.com"); |
2083 GURL icon_url("http:/www.google.com/favicon.ico"); | 2087 GURL icon_url("http:/www.google.com/favicon.ico"); |
2084 | 2088 |
2085 std::vector<SkBitmap> bitmaps; | 2089 std::vector<SkBitmap> bitmaps; |
2086 bitmaps.push_back(CreateBitmap(SK_ColorRED, kSmallEdgeSize)); | 2090 bitmaps.push_back(CreateBitmap(SK_ColorRED, kSmallEdgeSize)); |
2087 | 2091 |
2088 // Call SetLastResortFavicons() with a different icon URL and bitmap data. | 2092 // Call SetOnDemandFavicons() with a different icon URL and bitmap data. |
2089 EXPECT_TRUE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON, | 2093 EXPECT_TRUE(backend_->SetOnDemandFavicons(page_url, favicon_base::FAVICON, |
2090 icon_url, bitmaps)); | 2094 icon_url, bitmaps)); |
2091 | 2095 |
2092 favicon_base::FaviconID favicon_id = | 2096 favicon_base::FaviconID favicon_id = |
2093 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url, | 2097 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url, |
2094 favicon_base::FAVICON); | 2098 favicon_base::FAVICON); |
2095 EXPECT_NE(0, favicon_id); | 2099 EXPECT_NE(0, favicon_id); |
2096 | 2100 |
2097 FaviconBitmap favicon_bitmap; | 2101 FaviconBitmap favicon_bitmap; |
2098 ASSERT_TRUE(GetOnlyFaviconBitmap(favicon_id, &favicon_bitmap)); | 2102 ASSERT_TRUE(GetOnlyFaviconBitmap(favicon_id, &favicon_bitmap)); |
2099 // The original bitmap should have been retrieved. | 2103 // The original bitmap should have been retrieved. |
2100 EXPECT_TRUE(BitmapColorEqual(SK_ColorRED, favicon_bitmap.bitmap_data)); | 2104 EXPECT_TRUE(BitmapColorEqual(SK_ColorRED, favicon_bitmap.bitmap_data)); |
2101 // The favicon should not be marked as expired. | 2105 // The favicon should not be marked as expired. |
2102 EXPECT_EQ(base::Time(), favicon_bitmap.last_updated); | 2106 EXPECT_EQ(base::Time(), favicon_bitmap.last_updated); |
2103 } | 2107 } |
2104 | 2108 |
2105 // Tests calling SetLastResortFavicons(). |page_url| is known to the database | 2109 // Tests calling SetOnDemandFavicons(). |page_url| is known to the database |
2106 // but |icon_url| is not (the second should be irrelevant though). | 2110 // but |icon_url| is not (the second should be irrelevant though). |
2107 TEST_F(HistoryBackendTest, SetLastResortFaviconsForPageInDB) { | 2111 TEST_F(HistoryBackendTest, SetOnDemandFaviconsForPageInDB) { |
2108 GURL page_url("http://www.google.com"); | 2112 GURL page_url("http://www.google.com"); |
2109 GURL icon_url1("http:/www.google.com/favicon1.ico"); | 2113 GURL icon_url1("http:/www.google.com/favicon1.ico"); |
2110 GURL icon_url2("http:/www.google.com/favicon2.ico"); | 2114 GURL icon_url2("http:/www.google.com/favicon2.ico"); |
2111 std::vector<SkBitmap> bitmaps; | 2115 std::vector<SkBitmap> bitmaps; |
2112 bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); | 2116 bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
2113 | 2117 |
2114 // Add bitmap to the database. | 2118 // Add bitmap to the database. |
2115 backend_->SetFavicons(page_url, favicon_base::FAVICON, icon_url1, bitmaps); | 2119 backend_->SetFavicons(page_url, favicon_base::FAVICON, icon_url1, bitmaps); |
2116 favicon_base::FaviconID original_favicon_id = | 2120 favicon_base::FaviconID original_favicon_id = |
2117 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url1, | 2121 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url1, |
2118 favicon_base::FAVICON); | 2122 favicon_base::FAVICON); |
2119 ASSERT_NE(0, original_favicon_id); | 2123 ASSERT_NE(0, original_favicon_id); |
2120 | 2124 |
2121 // Call SetLastResortFavicons() with a different icon URL and bitmap data. | 2125 // Call SetOnDemandFavicons() with a different icon URL and bitmap data. |
2122 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); | 2126 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); |
2123 EXPECT_FALSE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON, | 2127 EXPECT_FALSE(backend_->SetOnDemandFavicons(page_url, favicon_base::FAVICON, |
2124 icon_url2, bitmaps)); | 2128 icon_url2, bitmaps)); |
2125 EXPECT_EQ(0, backend_->thumbnail_db_->GetFaviconIDForFaviconURL( | 2129 EXPECT_EQ(0, backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
2126 icon_url2, favicon_base::FAVICON)); | 2130 icon_url2, favicon_base::FAVICON)); |
2127 | 2131 |
2128 FaviconBitmap favicon_bitmap; | 2132 FaviconBitmap favicon_bitmap; |
2129 ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap)); | 2133 ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap)); |
2130 // The original bitmap should have been retrieved. | 2134 // The original bitmap should have been retrieved. |
2131 EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); | 2135 EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); |
2132 // The favicon should not be marked as expired. | 2136 // The favicon should not be marked as expired. |
2133 EXPECT_NE(base::Time(), favicon_bitmap.last_updated); | 2137 EXPECT_NE(base::Time(), favicon_bitmap.last_updated); |
2134 } | 2138 } |
2135 | 2139 |
2136 // Tests calling SetLastResortFavicons(). |page_url| is not known to the | 2140 // Tests calling SetOnDemandFavicons(). |page_url| is not known to the |
2137 // database but |icon_url| is. | 2141 // database but |icon_url| is. |
2138 TEST_F(HistoryBackendTest, SetLastResortFaviconsForIconInDB) { | 2142 TEST_F(HistoryBackendTest, SetOnDemandFaviconsForIconInDB) { |
2139 const GURL old_page_url("http://www.google.com/old"); | 2143 const GURL old_page_url("http://www.google.com/old"); |
2140 const GURL page_url("http://www.google.com/"); | 2144 const GURL page_url("http://www.google.com/"); |
2141 const GURL icon_url("http://www.google.com/icon"); | 2145 const GURL icon_url("http://www.google.com/icon"); |
2142 std::vector<SkBitmap> bitmaps; | 2146 std::vector<SkBitmap> bitmaps; |
2143 bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); | 2147 bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
2144 | 2148 |
2145 // Add bitmap to the database. | 2149 // Add bitmap to the database. |
2146 backend_->SetFavicons(old_page_url, favicon_base::FAVICON, icon_url, bitmaps); | 2150 backend_->SetFavicons(old_page_url, favicon_base::FAVICON, icon_url, bitmaps); |
2147 favicon_base::FaviconID original_favicon_id = | 2151 favicon_base::FaviconID original_favicon_id = |
2148 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url, | 2152 backend_->thumbnail_db_->GetFaviconIDForFaviconURL(icon_url, |
2149 favicon_base::FAVICON); | 2153 favicon_base::FAVICON); |
2150 ASSERT_NE(0, original_favicon_id); | 2154 ASSERT_NE(0, original_favicon_id); |
2151 | 2155 |
2152 // Call SetLastResortFavicons() with a different bitmap. | 2156 // Call SetOnDemandFavicons() with a different bitmap. |
2153 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); | 2157 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); |
2154 EXPECT_FALSE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON, | 2158 EXPECT_FALSE(backend_->SetOnDemandFavicons(page_url, favicon_base::FAVICON, |
2155 icon_url, bitmaps)); | 2159 icon_url, bitmaps)); |
2156 | 2160 |
2157 EXPECT_EQ(original_favicon_id, | 2161 EXPECT_EQ(original_favicon_id, |
2158 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( | 2162 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
2159 icon_url, favicon_base::FAVICON)); | 2163 icon_url, favicon_base::FAVICON)); |
2160 | 2164 |
2161 FaviconBitmap favicon_bitmap; | 2165 FaviconBitmap favicon_bitmap; |
2162 ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap)); | 2166 ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap)); |
2163 // The original bitmap should have been retrieved. | 2167 // The original bitmap should have been retrieved. |
2164 EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); | 2168 EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); |
2165 // The favicon should not be marked as expired. | 2169 // The favicon should not be marked as expired. |
(...skipping 1729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3895 backend_->QueryMostVisitedURLs(100, 100, &most_visited); | 3899 backend_->QueryMostVisitedURLs(100, 100, &most_visited); |
3896 | 3900 |
3897 const base::string16 kSomeTitle; // Ignored by equality operator. | 3901 const base::string16 kSomeTitle; // Ignored by equality operator. |
3898 EXPECT_THAT( | 3902 EXPECT_THAT( |
3899 most_visited, | 3903 most_visited, |
3900 ElementsAre(MostVisitedURL(GURL("http://example1.com"), kSomeTitle), | 3904 ElementsAre(MostVisitedURL(GURL("http://example1.com"), kSomeTitle), |
3901 MostVisitedURL(GURL("http://example5.com"), kSomeTitle))); | 3905 MostVisitedURL(GURL("http://example5.com"), kSomeTitle))); |
3902 } | 3906 } |
3903 | 3907 |
3904 } // namespace history | 3908 } // namespace history |
OLD | NEW |