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

Side by Side Diff: components/favicon/core/large_icon_service_unittest.cc

Issue 2856873002: [Thumbnails DB] Allow setting last_requested time when accessing favicons. (Closed)
Patch Set: Splitting off clearing Created 3 years, 7 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/favicon/core/large_icon_service.h" 5 #include "components/favicon/core/large_icon_service.h"
6 6
7 #include <deque> 7 #include <deque>
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/"); 145 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/");
146 146
147 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0); 147 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0);
148 148
149 base::MockCallback<base::Callback<void(bool success)>> callback; 149 base::MockCallback<base::Callback<void(bool success)>> callback;
150 EXPECT_CALL(*mock_image_fetcher_, 150 EXPECT_CALL(*mock_image_fetcher_,
151 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _)) 151 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _))
152 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap( 152 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap(
153 CreateTestSkBitmap(64, 64, kTestColor)))); 153 CreateTestSkBitmap(64, 64, kTestColor))));
154 EXPECT_CALL(mock_favicon_service_, 154 EXPECT_CALL(mock_favicon_service_,
155 SetLastResortFavicons(GURL(kDummyUrl), kExpectedServerUrl, 155 SetOnDemandFavicons(GURL(kDummyUrl), kExpectedServerUrl,
156 favicon_base::IconType::TOUCH_ICON, _, _)) 156 favicon_base::IconType::TOUCH_ICON, _, _))
157 .WillOnce(PostBoolReply(true)); 157 .WillOnce(PostBoolReply(true));
158 158
159 large_icon_service_ 159 large_icon_service_
160 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 160 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
161 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, 161 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42,
162 /*desired_size_in_pixel=*/61, callback.Get()); 162 /*desired_size_in_pixel=*/61, callback.Get());
163 163
164 EXPECT_CALL(callback, Run(true)); 164 EXPECT_CALL(callback, Run(true));
165 base::RunLoop().RunUntilIdle(); 165 base::RunLoop().RunUntilIdle();
166 histogram_tester_.ExpectUniqueSample( 166 histogram_tester_.ExpectUniqueSample(
(...skipping 14 matching lines...) Expand all
181 "faviconV2?size=61&min_size=43&max_size=91&url=http://www.example.com/"); 181 "faviconV2?size=61&min_size=43&max_size=91&url=http://www.example.com/");
182 182
183 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0); 183 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0);
184 184
185 base::MockCallback<base::Callback<void(bool success)>> callback; 185 base::MockCallback<base::Callback<void(bool success)>> callback;
186 EXPECT_CALL(*mock_image_fetcher_, 186 EXPECT_CALL(*mock_image_fetcher_,
187 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _)) 187 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _))
188 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap( 188 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap(
189 CreateTestSkBitmap(64, 64, kTestColor)))); 189 CreateTestSkBitmap(64, 64, kTestColor))));
190 EXPECT_CALL(mock_favicon_service_, 190 EXPECT_CALL(mock_favicon_service_,
191 SetLastResortFavicons(GURL(kDummyUrl), kExpectedServerUrl, 191 SetOnDemandFavicons(GURL(kDummyUrl), kExpectedServerUrl,
192 favicon_base::IconType::TOUCH_ICON, _, _)) 192 favicon_base::IconType::TOUCH_ICON, _, _))
193 .WillOnce(PostBoolReply(true)); 193 .WillOnce(PostBoolReply(true));
194 194
195 large_icon_service_ 195 large_icon_service_
196 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 196 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
197 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, 197 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42,
198 /*desired_size_in_pixel=*/61, callback.Get()); 198 /*desired_size_in_pixel=*/61, callback.Get());
199 199
200 EXPECT_CALL(callback, Run(true)); 200 EXPECT_CALL(callback, Run(true));
201 base::RunLoop().RunUntilIdle(); 201 base::RunLoop().RunUntilIdle();
202 } 202 }
203 203
204 TEST_F(LargeIconServiceTest, ShouldGetFromGoogleServerWithOriginalUrl) { 204 TEST_F(LargeIconServiceTest, ShouldGetFromGoogleServerWithOriginalUrl) {
205 const GURL kExpectedServerUrl( 205 const GURL kExpectedServerUrl(
206 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true" 206 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true"
207 "&check_seen=true&size=61&min_size=42&max_size=122" 207 "&check_seen=true&size=61&min_size=42&max_size=122"
208 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/"); 208 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/");
209 const GURL kExpectedOriginalUrl("http://www.example.com/favicon.png"); 209 const GURL kExpectedOriginalUrl("http://www.example.com/favicon.png");
210 210
211 image_fetcher::RequestMetadata expected_metadata; 211 image_fetcher::RequestMetadata expected_metadata;
212 expected_metadata.content_location_header = kExpectedOriginalUrl.spec(); 212 expected_metadata.content_location_header = kExpectedOriginalUrl.spec();
213 EXPECT_CALL(*mock_image_fetcher_, 213 EXPECT_CALL(*mock_image_fetcher_,
214 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _)) 214 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _))
215 .WillOnce(PostFetchReplyWithMetadata( 215 .WillOnce(PostFetchReplyWithMetadata(
216 gfx::Image::CreateFrom1xBitmap( 216 gfx::Image::CreateFrom1xBitmap(
217 CreateTestSkBitmap(64, 64, kTestColor)), 217 CreateTestSkBitmap(64, 64, kTestColor)),
218 expected_metadata)); 218 expected_metadata));
219 EXPECT_CALL(mock_favicon_service_, 219 EXPECT_CALL(mock_favicon_service_,
220 SetLastResortFavicons(GURL(kDummyUrl), kExpectedOriginalUrl, 220 SetOnDemandFavicons(GURL(kDummyUrl), kExpectedOriginalUrl,
221 favicon_base::IconType::TOUCH_ICON, _, _)) 221 favicon_base::IconType::TOUCH_ICON, _, _))
222 .WillOnce(PostBoolReply(true)); 222 .WillOnce(PostBoolReply(true));
223 223
224 base::MockCallback<base::Callback<void(bool success)>> callback; 224 base::MockCallback<base::Callback<void(bool success)>> callback;
225 large_icon_service_ 225 large_icon_service_
226 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 226 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
227 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, 227 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42,
228 /*desired_size_in_pixel=*/61, callback.Get()); 228 /*desired_size_in_pixel=*/61, callback.Get());
229 229
230 EXPECT_CALL(callback, Run(true)); 230 EXPECT_CALL(callback, Run(true));
231 base::RunLoop().RunUntilIdle(); 231 base::RunLoop().RunUntilIdle();
232 } 232 }
233 233
234 TEST_F(LargeIconServiceTest, ShouldTrimQueryParametersForGoogleServer) { 234 TEST_F(LargeIconServiceTest, ShouldTrimQueryParametersForGoogleServer) {
235 const GURL kDummyUrlWithQuery("http://www.example.com?foo=1"); 235 const GURL kDummyUrlWithQuery("http://www.example.com?foo=1");
236 const GURL kExpectedServerUrl( 236 const GURL kExpectedServerUrl(
237 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true" 237 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true"
238 "&check_seen=true&size=61&min_size=42&max_size=122" 238 "&check_seen=true&size=61&min_size=42&max_size=122"
239 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/"); 239 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/");
240 240
241 EXPECT_CALL(*mock_image_fetcher_, 241 EXPECT_CALL(*mock_image_fetcher_,
242 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _)) 242 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _))
243 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap( 243 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap(
244 CreateTestSkBitmap(64, 64, kTestColor)))); 244 CreateTestSkBitmap(64, 64, kTestColor))));
245 // Verify that the non-trimmed page URL is used when writing to the database. 245 // Verify that the non-trimmed page URL is used when writing to the database.
246 EXPECT_CALL(mock_favicon_service_, 246 EXPECT_CALL(mock_favicon_service_,
247 SetLastResortFavicons(_, kExpectedServerUrl, _, _, _)); 247 SetOnDemandFavicons(_, kExpectedServerUrl, _, _, _));
248 248
249 large_icon_service_ 249 large_icon_service_
250 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 250 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
251 GURL(kDummyUrlWithQuery), /*min_source_size_in_pixel=*/42, 251 GURL(kDummyUrlWithQuery), /*min_source_size_in_pixel=*/42,
252 /*desired_size_in_pixel=*/61, base::Callback<void(bool success)>()); 252 /*desired_size_in_pixel=*/61, base::Callback<void(bool success)>());
253 253
254 base::RunLoop().RunUntilIdle(); 254 base::RunLoop().RunUntilIdle();
255 } 255 }
256 256
257 TEST_F(LargeIconServiceTest, ShouldNotQueryGoogleServerIfInvalidScheme) { 257 TEST_F(LargeIconServiceTest, ShouldNotQueryGoogleServerIfInvalidScheme) {
(...skipping 16 matching lines...) Expand all
274 IsEmpty()); 274 IsEmpty());
275 } 275 }
276 276
277 TEST_F(LargeIconServiceTest, ShouldReportUnavailableIfFetchFromServerFails) { 277 TEST_F(LargeIconServiceTest, ShouldReportUnavailableIfFetchFromServerFails) {
278 const GURL kDummyUrlWithQuery("http://www.example.com?foo=1"); 278 const GURL kDummyUrlWithQuery("http://www.example.com?foo=1");
279 const GURL kExpectedServerUrl( 279 const GURL kExpectedServerUrl(
280 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true" 280 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true"
281 "&check_seen=true&size=61&min_size=42&max_size=122" 281 "&check_seen=true&size=61&min_size=42&max_size=122"
282 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/"); 282 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/");
283 283
284 EXPECT_CALL(mock_favicon_service_, SetLastResortFavicons(_, _, _, _, _)) 284 EXPECT_CALL(mock_favicon_service_, SetOnDemandFavicons(_, _, _, _, _))
285 .Times(0); 285 .Times(0);
286 286
287 base::MockCallback<base::Callback<void(bool success)>> callback; 287 base::MockCallback<base::Callback<void(bool success)>> callback;
288 EXPECT_CALL(*mock_image_fetcher_, 288 EXPECT_CALL(*mock_image_fetcher_,
289 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _)) 289 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _))
290 .WillOnce(PostFetchReply(gfx::Image())); 290 .WillOnce(PostFetchReply(gfx::Image()));
291 EXPECT_CALL(mock_favicon_service_, 291 EXPECT_CALL(mock_favicon_service_,
292 UnableToDownloadFavicon(kExpectedServerUrl)); 292 UnableToDownloadFavicon(kExpectedServerUrl));
293 293
294 large_icon_service_ 294 large_icon_service_
(...skipping 13 matching lines...) Expand all
308 mock_favicon_service_, 308 mock_favicon_service_,
309 WasUnableToDownloadFavicon(GURL( 309 WasUnableToDownloadFavicon(GURL(
310 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true" 310 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true"
311 "&check_seen=true&size=61&min_size=42&max_size=122" 311 "&check_seen=true&size=61&min_size=42&max_size=122"
312 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/"))) 312 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/")))
313 .WillByDefault(Return(true)); 313 .WillByDefault(Return(true));
314 314
315 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0); 315 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0);
316 EXPECT_CALL(*mock_image_fetcher_, StartOrQueueNetworkRequest(_, _, _, _)) 316 EXPECT_CALL(*mock_image_fetcher_, StartOrQueueNetworkRequest(_, _, _, _))
317 .Times(0); 317 .Times(0);
318 EXPECT_CALL(mock_favicon_service_, SetLastResortFavicons(_, _, _, _, _)) 318 EXPECT_CALL(mock_favicon_service_, SetOnDemandFavicons(_, _, _, _, _))
319 .Times(0); 319 .Times(0);
320 320
321 base::MockCallback<base::Callback<void(bool success)>> callback; 321 base::MockCallback<base::Callback<void(bool success)>> callback;
322 large_icon_service_ 322 large_icon_service_
323 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 323 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
324 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, 324 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42,
325 /*desired_size_in_pixel=*/61, callback.Get()); 325 /*desired_size_in_pixel=*/61, callback.Get());
326 326
327 EXPECT_CALL(callback, Run(false)); 327 EXPECT_CALL(callback, Run(false));
328 base::RunLoop().RunUntilIdle(); 328 base::RunLoop().RunUntilIdle();
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 484
485 // Every test will appear with suffix /0 (param false) and /1 (param true), e.g. 485 // Every test will appear with suffix /0 (param false) and /1 (param true), e.g.
486 // LargeIconServiceGetterTest.FallbackSinceTooPicky/0: get image. 486 // LargeIconServiceGetterTest.FallbackSinceTooPicky/0: get image.
487 // LargeIconServiceGetterTest.FallbackSinceTooPicky/1: get raw bitmap. 487 // LargeIconServiceGetterTest.FallbackSinceTooPicky/1: get raw bitmap.
488 INSTANTIATE_TEST_CASE_P(, // Empty instatiation name. 488 INSTANTIATE_TEST_CASE_P(, // Empty instatiation name.
489 LargeIconServiceGetterTest, 489 LargeIconServiceGetterTest,
490 ::testing::Values(false, true)); 490 ::testing::Values(false, true));
491 491
492 } // namespace 492 } // namespace
493 } // namespace favicon 493 } // namespace favicon
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698