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

Side by Side Diff: components/history/core/browser/history_backend_unittest.cc

Issue 2750313002: Extend HistoryService with support for favicons from Google servers (Closed)
Patch Set: Rename function. Created 3 years, 9 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
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 "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
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
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
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
OLDNEW
« no previous file with comments | « components/history/core/browser/history_backend.cc ('k') | components/history/core/browser/history_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698