| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |