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

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: Peter's comments Created 3 years, 6 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 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/"); 150 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/");
151 151
152 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0); 152 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0);
153 153
154 base::MockCallback<base::Callback<void(bool success)>> callback; 154 base::MockCallback<base::Callback<void(bool success)>> callback;
155 EXPECT_CALL(*mock_image_fetcher_, 155 EXPECT_CALL(*mock_image_fetcher_,
156 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _)) 156 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _))
157 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap( 157 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap(
158 CreateTestSkBitmap(64, 64, kTestColor)))); 158 CreateTestSkBitmap(64, 64, kTestColor))));
159 EXPECT_CALL(mock_favicon_service_, 159 EXPECT_CALL(mock_favicon_service_,
160 SetLastResortFavicons(GURL(kDummyUrl), kExpectedServerUrl, 160 SetOnDemandFavicons(GURL(kDummyUrl), kExpectedServerUrl,
161 favicon_base::IconType::TOUCH_ICON, _, _)) 161 favicon_base::IconType::TOUCH_ICON, _, _))
162 .WillOnce(PostBoolReply(true)); 162 .WillOnce(PostBoolReply(true));
163 163
164 large_icon_service_ 164 large_icon_service_
165 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 165 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
166 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, 166 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42,
167 /*desired_size_in_pixel=*/61, /*may_page_url_be_private=*/true, 167 /*desired_size_in_pixel=*/61, /*may_page_url_be_private=*/true,
168 TRAFFIC_ANNOTATION_FOR_TESTS, callback.Get()); 168 TRAFFIC_ANNOTATION_FOR_TESTS, callback.Get());
169 169
170 EXPECT_CALL(callback, Run(true)); 170 EXPECT_CALL(callback, Run(true));
171 base::RunLoop().RunUntilIdle(); 171 base::RunLoop().RunUntilIdle();
(...skipping 15 matching lines...) Expand all
187 "size=61&min_size=43&max_size=91&url=http://www.example.com/"); 187 "size=61&min_size=43&max_size=91&url=http://www.example.com/");
188 188
189 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0); 189 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0);
190 190
191 base::MockCallback<base::Callback<void(bool success)>> callback; 191 base::MockCallback<base::Callback<void(bool success)>> callback;
192 EXPECT_CALL(*mock_image_fetcher_, 192 EXPECT_CALL(*mock_image_fetcher_,
193 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _)) 193 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _))
194 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap( 194 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap(
195 CreateTestSkBitmap(64, 64, kTestColor)))); 195 CreateTestSkBitmap(64, 64, kTestColor))));
196 EXPECT_CALL(mock_favicon_service_, 196 EXPECT_CALL(mock_favicon_service_,
197 SetLastResortFavicons(GURL(kDummyUrl), kExpectedServerUrl, 197 SetOnDemandFavicons(GURL(kDummyUrl), kExpectedServerUrl,
198 favicon_base::IconType::TOUCH_ICON, _, _)) 198 favicon_base::IconType::TOUCH_ICON, _, _))
199 .WillOnce(PostBoolReply(true)); 199 .WillOnce(PostBoolReply(true));
200 200
201 large_icon_service_ 201 large_icon_service_
202 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 202 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
203 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, 203 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42,
204 /*desired_size_in_pixel=*/61, /*may_page_url_be_private=*/true, 204 /*desired_size_in_pixel=*/61, /*may_page_url_be_private=*/true,
205 TRAFFIC_ANNOTATION_FOR_TESTS, callback.Get()); 205 TRAFFIC_ANNOTATION_FOR_TESTS, callback.Get());
206 206
207 EXPECT_CALL(callback, Run(true)); 207 EXPECT_CALL(callback, Run(true));
208 base::RunLoop().RunUntilIdle(); 208 base::RunLoop().RunUntilIdle();
209 } 209 }
210 210
211 TEST_F(LargeIconServiceTest, ShouldGetFromGoogleServerWithOriginalUrl) { 211 TEST_F(LargeIconServiceTest, ShouldGetFromGoogleServerWithOriginalUrl) {
212 const GURL kExpectedServerUrl( 212 const GURL kExpectedServerUrl(
213 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true" 213 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true"
214 "&check_seen=true&size=61&min_size=42&max_size=122" 214 "&check_seen=true&size=61&min_size=42&max_size=122"
215 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/"); 215 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/");
216 const GURL kExpectedOriginalUrl("http://www.example.com/favicon.png"); 216 const GURL kExpectedOriginalUrl("http://www.example.com/favicon.png");
217 217
218 image_fetcher::RequestMetadata expected_metadata; 218 image_fetcher::RequestMetadata expected_metadata;
219 expected_metadata.content_location_header = kExpectedOriginalUrl.spec(); 219 expected_metadata.content_location_header = kExpectedOriginalUrl.spec();
220 EXPECT_CALL(*mock_image_fetcher_, 220 EXPECT_CALL(*mock_image_fetcher_,
221 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _)) 221 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _))
222 .WillOnce(PostFetchReplyWithMetadata( 222 .WillOnce(PostFetchReplyWithMetadata(
223 gfx::Image::CreateFrom1xBitmap( 223 gfx::Image::CreateFrom1xBitmap(
224 CreateTestSkBitmap(64, 64, kTestColor)), 224 CreateTestSkBitmap(64, 64, kTestColor)),
225 expected_metadata)); 225 expected_metadata));
226 EXPECT_CALL(mock_favicon_service_, 226 EXPECT_CALL(mock_favicon_service_,
227 SetLastResortFavicons(GURL(kDummyUrl), kExpectedOriginalUrl, 227 SetOnDemandFavicons(GURL(kDummyUrl), kExpectedOriginalUrl,
228 favicon_base::IconType::TOUCH_ICON, _, _)) 228 favicon_base::IconType::TOUCH_ICON, _, _))
229 .WillOnce(PostBoolReply(true)); 229 .WillOnce(PostBoolReply(true));
230 230
231 base::MockCallback<base::Callback<void(bool success)>> callback; 231 base::MockCallback<base::Callback<void(bool success)>> callback;
232 large_icon_service_ 232 large_icon_service_
233 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 233 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
234 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, 234 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42,
235 /*desired_size_in_pixel=*/61, /*may_page_url_be_private=*/true, 235 /*desired_size_in_pixel=*/61, /*may_page_url_be_private=*/true,
236 TRAFFIC_ANNOTATION_FOR_TESTS, callback.Get()); 236 TRAFFIC_ANNOTATION_FOR_TESTS, callback.Get());
237 237
238 EXPECT_CALL(callback, Run(true)); 238 EXPECT_CALL(callback, Run(true));
239 base::RunLoop().RunUntilIdle(); 239 base::RunLoop().RunUntilIdle();
240 } 240 }
241 241
242 TEST_F(LargeIconServiceTest, ShouldTrimQueryParametersForGoogleServer) { 242 TEST_F(LargeIconServiceTest, ShouldTrimQueryParametersForGoogleServer) {
243 const GURL kDummyUrlWithQuery("http://www.example.com?foo=1"); 243 const GURL kDummyUrlWithQuery("http://www.example.com?foo=1");
244 const GURL kExpectedServerUrl( 244 const GURL kExpectedServerUrl(
245 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true" 245 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true"
246 "&check_seen=true&size=61&min_size=42&max_size=122" 246 "&check_seen=true&size=61&min_size=42&max_size=122"
247 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/"); 247 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/");
248 248
249 EXPECT_CALL(*mock_image_fetcher_, 249 EXPECT_CALL(*mock_image_fetcher_,
250 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _)) 250 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _))
251 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap( 251 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap(
252 CreateTestSkBitmap(64, 64, kTestColor)))); 252 CreateTestSkBitmap(64, 64, kTestColor))));
253 // Verify that the non-trimmed page URL is used when writing to the database. 253 // Verify that the non-trimmed page URL is used when writing to the database.
254 EXPECT_CALL(mock_favicon_service_, 254 EXPECT_CALL(mock_favicon_service_,
255 SetLastResortFavicons(_, kExpectedServerUrl, _, _, _)); 255 SetOnDemandFavicons(_, kExpectedServerUrl, _, _, _));
256 256
257 large_icon_service_ 257 large_icon_service_
258 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 258 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
259 GURL(kDummyUrlWithQuery), /*min_source_size_in_pixel=*/42, 259 GURL(kDummyUrlWithQuery), /*min_source_size_in_pixel=*/42,
260 /*desired_size_in_pixel=*/61, /*may_page_url_be_private=*/true, 260 /*desired_size_in_pixel=*/61, /*may_page_url_be_private=*/true,
261 TRAFFIC_ANNOTATION_FOR_TESTS, base::Callback<void(bool success)>()); 261 TRAFFIC_ANNOTATION_FOR_TESTS, base::Callback<void(bool success)>());
262 262
263 base::RunLoop().RunUntilIdle(); 263 base::RunLoop().RunUntilIdle();
264 } 264 }
265 265
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 IsEmpty()); 304 IsEmpty());
305 } 305 }
306 306
307 TEST_F(LargeIconServiceTest, ShouldReportUnavailableIfFetchFromServerFails) { 307 TEST_F(LargeIconServiceTest, ShouldReportUnavailableIfFetchFromServerFails) {
308 const GURL kDummyUrlWithQuery("http://www.example.com?foo=1"); 308 const GURL kDummyUrlWithQuery("http://www.example.com?foo=1");
309 const GURL kExpectedServerUrl( 309 const GURL kExpectedServerUrl(
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 313
314 EXPECT_CALL(mock_favicon_service_, SetLastResortFavicons(_, _, _, _, _)) 314 EXPECT_CALL(mock_favicon_service_, SetOnDemandFavicons(_, _, _, _, _))
315 .Times(0); 315 .Times(0);
316 316
317 base::MockCallback<base::Callback<void(bool success)>> callback; 317 base::MockCallback<base::Callback<void(bool success)>> callback;
318 EXPECT_CALL(*mock_image_fetcher_, 318 EXPECT_CALL(*mock_image_fetcher_,
319 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _)) 319 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _, _))
320 .WillOnce(PostFetchReply(gfx::Image())); 320 .WillOnce(PostFetchReply(gfx::Image()));
321 EXPECT_CALL(mock_favicon_service_, 321 EXPECT_CALL(mock_favicon_service_,
322 UnableToDownloadFavicon(kExpectedServerUrl)); 322 UnableToDownloadFavicon(kExpectedServerUrl));
323 323
324 large_icon_service_ 324 large_icon_service_
(...skipping 14 matching lines...) Expand all
339 mock_favicon_service_, 339 mock_favicon_service_,
340 WasUnableToDownloadFavicon(GURL( 340 WasUnableToDownloadFavicon(GURL(
341 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true" 341 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true"
342 "&check_seen=true&size=61&min_size=42&max_size=122" 342 "&check_seen=true&size=61&min_size=42&max_size=122"
343 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/"))) 343 "&fallback_opts=TYPE,SIZE,URL&url=http://www.example.com/")))
344 .WillByDefault(Return(true)); 344 .WillByDefault(Return(true));
345 345
346 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0); 346 EXPECT_CALL(mock_favicon_service_, UnableToDownloadFavicon(_)).Times(0);
347 EXPECT_CALL(*mock_image_fetcher_, StartOrQueueNetworkRequest(_, _, _, _)) 347 EXPECT_CALL(*mock_image_fetcher_, StartOrQueueNetworkRequest(_, _, _, _))
348 .Times(0); 348 .Times(0);
349 EXPECT_CALL(mock_favicon_service_, SetLastResortFavicons(_, _, _, _, _)) 349 EXPECT_CALL(mock_favicon_service_, SetOnDemandFavicons(_, _, _, _, _))
350 .Times(0); 350 .Times(0);
351 351
352 base::MockCallback<base::Callback<void(bool success)>> callback; 352 base::MockCallback<base::Callback<void(bool success)>> callback;
353 large_icon_service_ 353 large_icon_service_
354 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 354 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
355 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, 355 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42,
356 /*desired_size_in_pixel=*/61, /*may_page_url_be_private=*/true, 356 /*desired_size_in_pixel=*/61, /*may_page_url_be_private=*/true,
357 TRAFFIC_ANNOTATION_FOR_TESTS, callback.Get()); 357 TRAFFIC_ANNOTATION_FOR_TESTS, callback.Get());
358 358
359 EXPECT_CALL(callback, Run(false)); 359 EXPECT_CALL(callback, Run(false));
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 516
517 // Every test will appear with suffix /0 (param false) and /1 (param true), e.g. 517 // Every test will appear with suffix /0 (param false) and /1 (param true), e.g.
518 // LargeIconServiceGetterTest.FallbackSinceTooPicky/0: get image. 518 // LargeIconServiceGetterTest.FallbackSinceTooPicky/0: get image.
519 // LargeIconServiceGetterTest.FallbackSinceTooPicky/1: get raw bitmap. 519 // LargeIconServiceGetterTest.FallbackSinceTooPicky/1: get raw bitmap.
520 INSTANTIATE_TEST_CASE_P(, // Empty instatiation name. 520 INSTANTIATE_TEST_CASE_P(, // Empty instatiation name.
521 LargeIconServiceGetterTest, 521 LargeIconServiceGetterTest,
522 ::testing::Values(false, true)); 522 ::testing::Values(false, true));
523 523
524 } // namespace 524 } // namespace
525 } // namespace favicon 525 } // namespace favicon
OLDNEW
« no previous file with comments | « components/favicon/core/large_icon_service.cc ('k') | components/favicon/core/test/mock_favicon_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698