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 1946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1957 | 1957 |
1958 favicon_base::FaviconID original_favicon_id = | 1958 favicon_base::FaviconID original_favicon_id = |
1959 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( | 1959 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
1960 icon_url, favicon_base::FAVICON, NULL); | 1960 icon_url, favicon_base::FAVICON, NULL); |
1961 EXPECT_NE(0, original_favicon_id); | 1961 EXPECT_NE(0, original_favicon_id); |
1962 FaviconBitmap original_favicon_bitmap; | 1962 FaviconBitmap original_favicon_bitmap; |
1963 EXPECT_TRUE( | 1963 EXPECT_TRUE( |
1964 GetOnlyFaviconBitmap(original_favicon_id, &original_favicon_bitmap)); | 1964 GetOnlyFaviconBitmap(original_favicon_id, &original_favicon_bitmap)); |
1965 EXPECT_TRUE( | 1965 EXPECT_TRUE( |
1966 BitmapColorEqual(SK_ColorBLUE, original_favicon_bitmap.bitmap_data)); | 1966 BitmapColorEqual(SK_ColorBLUE, original_favicon_bitmap.bitmap_data)); |
| 1967 EXPECT_NE(base::Time(), original_favicon_bitmap.last_updated); |
1967 | 1968 |
1968 // Call SetFavicons() with completely identical data. | 1969 // Call SetFavicons() with completely identical data. |
1969 bitmaps[0] = CreateBitmap(SK_ColorBLUE, kSmallEdgeSize); | 1970 bitmaps[0] = CreateBitmap(SK_ColorBLUE, kSmallEdgeSize); |
1970 backend_->SetFavicons(page_url, favicon_base::FAVICON, icon_url, bitmaps); | 1971 backend_->SetFavicons(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
1971 | 1972 |
1972 favicon_base::FaviconID updated_favicon_id = | 1973 favicon_base::FaviconID updated_favicon_id = |
1973 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( | 1974 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
1974 icon_url, favicon_base::FAVICON, NULL); | 1975 icon_url, favicon_base::FAVICON, NULL); |
1975 EXPECT_NE(0, updated_favicon_id); | 1976 EXPECT_NE(0, updated_favicon_id); |
1976 FaviconBitmap updated_favicon_bitmap; | 1977 FaviconBitmap updated_favicon_bitmap; |
1977 EXPECT_TRUE( | 1978 EXPECT_TRUE( |
1978 GetOnlyFaviconBitmap(updated_favicon_id, &updated_favicon_bitmap)); | 1979 GetOnlyFaviconBitmap(updated_favicon_id, &updated_favicon_bitmap)); |
1979 EXPECT_TRUE( | 1980 EXPECT_TRUE( |
1980 BitmapColorEqual(SK_ColorBLUE, updated_favicon_bitmap.bitmap_data)); | 1981 BitmapColorEqual(SK_ColorBLUE, updated_favicon_bitmap.bitmap_data)); |
| 1982 EXPECT_NE(base::Time(), updated_favicon_bitmap.last_updated); |
1981 | 1983 |
1982 // Call SetFavicons() with a different bitmap of the same size. | 1984 // Call SetFavicons() with a different bitmap of the same size. |
1983 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); | 1985 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); |
1984 backend_->SetFavicons(page_url, favicon_base::FAVICON, icon_url, bitmaps); | 1986 backend_->SetFavicons(page_url, favicon_base::FAVICON, icon_url, bitmaps); |
1985 | 1987 |
1986 updated_favicon_id = backend_->thumbnail_db_->GetFaviconIDForFaviconURL( | 1988 updated_favicon_id = backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
1987 icon_url, favicon_base::FAVICON, NULL); | 1989 icon_url, favicon_base::FAVICON, NULL); |
1988 EXPECT_NE(0, updated_favicon_id); | 1990 EXPECT_NE(0, updated_favicon_id); |
1989 EXPECT_TRUE( | 1991 EXPECT_TRUE( |
1990 GetOnlyFaviconBitmap(updated_favicon_id, &updated_favicon_bitmap)); | 1992 GetOnlyFaviconBitmap(updated_favicon_id, &updated_favicon_bitmap)); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2061 page_url2, &icon_mappings)); | 2063 page_url2, &icon_mappings)); |
2062 EXPECT_EQ(1u, icon_mappings.size()); | 2064 EXPECT_EQ(1u, icon_mappings.size()); |
2063 EXPECT_EQ(favicon_id, icon_mappings[0].icon_id); | 2065 EXPECT_EQ(favicon_id, icon_mappings[0].icon_id); |
2064 | 2066 |
2065 favicon_bitmaps.clear(); | 2067 favicon_bitmaps.clear(); |
2066 EXPECT_TRUE(backend_->thumbnail_db_->GetFaviconBitmaps(favicon_id, | 2068 EXPECT_TRUE(backend_->thumbnail_db_->GetFaviconBitmaps(favicon_id, |
2067 &favicon_bitmaps)); | 2069 &favicon_bitmaps)); |
2068 EXPECT_EQ(2u, favicon_bitmaps.size()); | 2070 EXPECT_EQ(2u, favicon_bitmaps.size()); |
2069 } | 2071 } |
2070 | 2072 |
| 2073 // Tests calling SetLastResortFavicons(). Neither |page_url| nor |icon_url| are |
| 2074 // known to the database. |
| 2075 TEST_F(HistoryBackendTest, SetLastResortFaviconsForEmptyDB) { |
| 2076 GURL page_url("http://www.google.com"); |
| 2077 GURL icon_url("http:/www.google.com/favicon.ico"); |
| 2078 |
| 2079 std::vector<SkBitmap> bitmaps; |
| 2080 bitmaps.push_back(CreateBitmap(SK_ColorRED, kSmallEdgeSize)); |
| 2081 |
| 2082 // Call SetLastResortFavicons() with a different icon URL and bitmap data. |
| 2083 EXPECT_TRUE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON, |
| 2084 icon_url, bitmaps)); |
| 2085 |
| 2086 favicon_base::FaviconID favicon_id = |
| 2087 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
| 2088 icon_url, favicon_base::FAVICON, NULL); |
| 2089 EXPECT_NE(0, favicon_id); |
| 2090 |
| 2091 FaviconBitmap favicon_bitmap; |
| 2092 ASSERT_TRUE(GetOnlyFaviconBitmap(favicon_id, &favicon_bitmap)); |
| 2093 // The original bitmap should have been retrieved. |
| 2094 EXPECT_TRUE(BitmapColorEqual(SK_ColorRED, favicon_bitmap.bitmap_data)); |
| 2095 // The favicon should not be marked as expired. |
| 2096 EXPECT_EQ(base::Time(), favicon_bitmap.last_updated); |
| 2097 } |
| 2098 |
| 2099 // Tests calling SetLastResortFavicons(). |page_url| is known to the database |
| 2100 // but |icon_url| is not (the second should be irrelevant though). |
| 2101 TEST_F(HistoryBackendTest, SetLastResortFaviconsForPageInDB) { |
| 2102 GURL page_url("http://www.google.com"); |
| 2103 GURL icon_url1("http:/www.google.com/favicon1.ico"); |
| 2104 GURL icon_url2("http:/www.google.com/favicon2.ico"); |
| 2105 std::vector<SkBitmap> bitmaps; |
| 2106 bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
| 2107 |
| 2108 // Add bitmap to the database. |
| 2109 backend_->SetFavicons(page_url, favicon_base::FAVICON, icon_url1, bitmaps); |
| 2110 favicon_base::FaviconID original_favicon_id = |
| 2111 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
| 2112 icon_url1, favicon_base::FAVICON, NULL); |
| 2113 ASSERT_NE(0, original_favicon_id); |
| 2114 |
| 2115 // Call SetLastResortFavicons() with a different icon URL and bitmap data. |
| 2116 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); |
| 2117 EXPECT_FALSE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON, |
| 2118 icon_url2, bitmaps)); |
| 2119 EXPECT_EQ(0, backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
| 2120 icon_url2, favicon_base::FAVICON, NULL)); |
| 2121 |
| 2122 FaviconBitmap favicon_bitmap; |
| 2123 ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap)); |
| 2124 // The original bitmap should have been retrieved. |
| 2125 EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); |
| 2126 // The favicon should not be marked as expired. |
| 2127 EXPECT_NE(base::Time(), favicon_bitmap.last_updated); |
| 2128 } |
| 2129 |
| 2130 // Tests calling SetLastResortFavicons(). |page_url| is not known to the |
| 2131 // database but |icon_url| is. |
| 2132 TEST_F(HistoryBackendTest, SetLastResortFaviconsForIconInDB) { |
| 2133 const GURL old_page_url("http://www.google.com/old"); |
| 2134 const GURL page_url("http://www.google.com/"); |
| 2135 const GURL icon_url("http://www.google.com/icon"); |
| 2136 std::vector<SkBitmap> bitmaps; |
| 2137 bitmaps.push_back(CreateBitmap(SK_ColorBLUE, kSmallEdgeSize)); |
| 2138 |
| 2139 // Add bitmap to the database. |
| 2140 backend_->SetFavicons(old_page_url, favicon_base::FAVICON, icon_url, bitmaps); |
| 2141 favicon_base::FaviconID original_favicon_id = |
| 2142 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
| 2143 icon_url, favicon_base::FAVICON, NULL); |
| 2144 ASSERT_NE(0, original_favicon_id); |
| 2145 |
| 2146 // Call SetLastResortFavicons() with a different bitmap. |
| 2147 bitmaps[0] = CreateBitmap(SK_ColorWHITE, kSmallEdgeSize); |
| 2148 EXPECT_FALSE(backend_->SetLastResortFavicons(page_url, favicon_base::FAVICON, |
| 2149 icon_url, bitmaps)); |
| 2150 |
| 2151 EXPECT_EQ(original_favicon_id, |
| 2152 backend_->thumbnail_db_->GetFaviconIDForFaviconURL( |
| 2153 icon_url, favicon_base::FAVICON, NULL)); |
| 2154 |
| 2155 FaviconBitmap favicon_bitmap; |
| 2156 ASSERT_TRUE(GetOnlyFaviconBitmap(original_favicon_id, &favicon_bitmap)); |
| 2157 // The original bitmap should have been retrieved. |
| 2158 EXPECT_TRUE(BitmapColorEqual(SK_ColorBLUE, favicon_bitmap.bitmap_data)); |
| 2159 // The favicon should not be marked as expired. |
| 2160 EXPECT_NE(base::Time(), favicon_bitmap.last_updated); |
| 2161 } |
| 2162 |
2071 // Test repeatedly calling MergeFavicon(). |page_url| is initially not known | 2163 // Test repeatedly calling MergeFavicon(). |page_url| is initially not known |
2072 // to the database. | 2164 // to the database. |
2073 TEST_F(HistoryBackendTest, MergeFaviconPageURLNotInDB) { | 2165 TEST_F(HistoryBackendTest, MergeFaviconPageURLNotInDB) { |
2074 GURL page_url("http://www.google.com"); | 2166 GURL page_url("http://www.google.com"); |
2075 GURL icon_url("http:/www.google.com/favicon.ico"); | 2167 GURL icon_url("http:/www.google.com/favicon.ico"); |
2076 | 2168 |
2077 std::vector<unsigned char> data; | 2169 std::vector<unsigned char> data; |
2078 data.push_back('a'); | 2170 data.push_back('a'); |
2079 scoped_refptr<base::RefCountedBytes> bitmap_data( | 2171 scoped_refptr<base::RefCountedBytes> bitmap_data( |
2080 new base::RefCountedBytes(data)); | 2172 new base::RefCountedBytes(data)); |
(...skipping 1749 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3830 backend_->QueryMostVisitedURLs(100, 100, &most_visited); | 3922 backend_->QueryMostVisitedURLs(100, 100, &most_visited); |
3831 | 3923 |
3832 const base::string16 kSomeTitle; // Ignored by equality operator. | 3924 const base::string16 kSomeTitle; // Ignored by equality operator. |
3833 EXPECT_THAT( | 3925 EXPECT_THAT( |
3834 most_visited, | 3926 most_visited, |
3835 ElementsAre(MostVisitedURL(GURL("http://example1.com"), kSomeTitle), | 3927 ElementsAre(MostVisitedURL(GURL("http://example1.com"), kSomeTitle), |
3836 MostVisitedURL(GURL("http://example5.com"), kSomeTitle))); | 3928 MostVisitedURL(GURL("http://example5.com"), kSomeTitle))); |
3837 } | 3929 } |
3838 | 3930 |
3839 } // namespace history | 3931 } // namespace history |
OLD | NEW |