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

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

Issue 2810733002: [LargeIconService] Store downloaded icons under original URL (Closed)
Patch Set: Peter's comments Created 3 years, 8 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
« no previous file with comments | « components/favicon/core/large_icon_service.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 44
45 const char kDummyUrl[] = "http://www.example.com"; 45 const char kDummyUrl[] = "http://www.example.com";
46 const char kDummyIconUrl[] = "http://www.example.com/touch_icon.png"; 46 const char kDummyIconUrl[] = "http://www.example.com/touch_icon.png";
47 const SkColor kTestColor = SK_ColorRED; 47 const SkColor kTestColor = SK_ColorRED;
48 48
49 ACTION_P(PostFetchReply, p0) { 49 ACTION_P(PostFetchReply, p0) {
50 base::ThreadTaskRunnerHandle::Get()->PostTask( 50 base::ThreadTaskRunnerHandle::Get()->PostTask(
51 FROM_HERE, base::Bind(arg2, arg0, p0, image_fetcher::RequestMetadata())); 51 FROM_HERE, base::Bind(arg2, arg0, p0, image_fetcher::RequestMetadata()));
52 } 52 }
53 53
54 ACTION_P2(PostFetchReplyWithMetadata, p0, p1) {
55 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
56 base::Bind(arg2, arg0, p0, p1));
57 }
58
54 ACTION_P(PostBoolReply, p0) { 59 ACTION_P(PostBoolReply, p0) {
55 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, 60 base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE,
56 base::Bind(arg4, p0)); 61 base::Bind(arg4, p0));
57 } 62 }
58 63
59 SkBitmap CreateTestSkBitmap(int w, int h, SkColor color) { 64 SkBitmap CreateTestSkBitmap(int w, int h, SkColor color) {
60 SkBitmap bitmap; 65 SkBitmap bitmap;
61 bitmap.allocN32Pixels(w, h); 66 bitmap.allocN32Pixels(w, h);
62 bitmap.eraseColor(color); 67 bitmap.eraseColor(color);
63 return bitmap; 68 return bitmap;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 .WillOnce(PostBoolReply(true)); 152 .WillOnce(PostBoolReply(true));
148 153
149 large_icon_service_ 154 large_icon_service_
150 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache( 155 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
151 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, callback.Get()); 156 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, callback.Get());
152 157
153 EXPECT_CALL(callback, Run(true)); 158 EXPECT_CALL(callback, Run(true));
154 base::RunLoop().RunUntilIdle(); 159 base::RunLoop().RunUntilIdle();
155 } 160 }
156 161
162 TEST_F(LargeIconServiceTest, ShouldGetFromGoogleServerWithOriginalUrl) {
163 const GURL kExpectedServerUrl(
164 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true"
165 "&size=64&min_size=42&max_size=128&fallback_opts=TYPE,SIZE,URL"
166 "&url=http://www.example.com/");
167 const GURL kExpectedOriginalUrl("http://www.example.com/favicon.png");
168
169 image_fetcher::RequestMetadata expected_metadata;
170 expected_metadata.content_location_header = kExpectedOriginalUrl.spec();
171 EXPECT_CALL(*mock_image_fetcher_,
172 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _))
173 .WillOnce(PostFetchReplyWithMetadata(
174 gfx::Image::CreateFrom1xBitmap(
175 CreateTestSkBitmap(64, 64, kTestColor)),
176 expected_metadata));
177 EXPECT_CALL(mock_favicon_service_,
178 SetLastResortFavicons(GURL(kDummyUrl), kExpectedOriginalUrl,
179 favicon_base::IconType::TOUCH_ICON, _, _))
180 .WillOnce(PostBoolReply(true));
181
182 base::MockCallback<base::Callback<void(bool success)>> callback;
183 large_icon_service_
184 .GetLargeIconOrFallbackStyleFromGoogleServerSkippingLocalCache(
185 GURL(kDummyUrl), /*min_source_size_in_pixel=*/42, callback.Get());
186
187 EXPECT_CALL(callback, Run(true));
188 base::RunLoop().RunUntilIdle();
189 }
190
157 TEST_F(LargeIconServiceTest, ShouldTrimQueryParametersForGoogleServer) { 191 TEST_F(LargeIconServiceTest, ShouldTrimQueryParametersForGoogleServer) {
158 const GURL kDummyUrlWithQuery("http://www.example.com?foo=1"); 192 const GURL kDummyUrlWithQuery("http://www.example.com?foo=1");
159 const GURL kExpectedServerUrl( 193 const GURL kExpectedServerUrl(
160 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true" 194 "https://t0.gstatic.com/faviconV2?client=chrome&drop_404_icon=true"
161 "&size=64&min_size=42&max_size=128&fallback_opts=TYPE,SIZE,URL" 195 "&size=64&min_size=42&max_size=128&fallback_opts=TYPE,SIZE,URL"
162 "&url=http://www.example.com/"); 196 "&url=http://www.example.com/");
163 197
164 EXPECT_CALL(*mock_image_fetcher_, 198 EXPECT_CALL(*mock_image_fetcher_,
165 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _)) 199 StartOrQueueNetworkRequest(_, kExpectedServerUrl, _))
166 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap( 200 .WillOnce(PostFetchReply(gfx::Image::CreateFrom1xBitmap(
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 419
386 // Every test will appear with suffix /0 (param false) and /1 (param true), e.g. 420 // Every test will appear with suffix /0 (param false) and /1 (param true), e.g.
387 // LargeIconServiceGetterTest.FallbackSinceTooPicky/0: get image. 421 // LargeIconServiceGetterTest.FallbackSinceTooPicky/0: get image.
388 // LargeIconServiceGetterTest.FallbackSinceTooPicky/1: get raw bitmap. 422 // LargeIconServiceGetterTest.FallbackSinceTooPicky/1: get raw bitmap.
389 INSTANTIATE_TEST_CASE_P(, // Empty instatiation name. 423 INSTANTIATE_TEST_CASE_P(, // Empty instatiation name.
390 LargeIconServiceGetterTest, 424 LargeIconServiceGetterTest,
391 ::testing::Values(false, true)); 425 ::testing::Values(false, true));
392 426
393 } // namespace 427 } // namespace
394 } // namespace favicon 428 } // namespace favicon
OLDNEW
« no previous file with comments | « components/favicon/core/large_icon_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698