| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/doodle/doodle_fetcher_impl.h" | 5 #include "components/doodle/doodle_fetcher_impl.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 success.Run(std::move(value)); | 63 success.Run(std::move(value)); |
| 64 } else { | 64 } else { |
| 65 error.Run(json_reader.GetErrorMessage()); | 65 error.Run(json_reader.GetErrorMessage()); |
| 66 } | 66 } |
| 67 } | 67 } |
| 68 | 68 |
| 69 } // namespace | 69 } // namespace |
| 70 | 70 |
| 71 class DoodleFetcherImplTestBase : public testing::Test { | 71 class DoodleFetcherImplTestBase : public testing::Test { |
| 72 public: | 72 public: |
| 73 DoodleFetcherImplTestBase(bool gray_background) | 73 DoodleFetcherImplTestBase(bool gray_background, |
| 74 const base::Optional<std::string>& override_url) |
| 74 : google_url_tracker_(base::MakeUnique<GoogleURLTrackerClientStub>(), | 75 : google_url_tracker_(base::MakeUnique<GoogleURLTrackerClientStub>(), |
| 75 GoogleURLTracker::UNIT_TEST_MODE), | 76 GoogleURLTracker::UNIT_TEST_MODE), |
| 76 doodle_fetcher_( | 77 doodle_fetcher_( |
| 77 new net::TestURLRequestContextGetter(message_loop_.task_runner()), | 78 new net::TestURLRequestContextGetter(message_loop_.task_runner()), |
| 78 &google_url_tracker_, | 79 &google_url_tracker_, |
| 79 base::Bind(ParseJson), | 80 base::Bind(ParseJson), |
| 80 gray_background) {} | 81 gray_background, |
| 82 override_url) {} |
| 81 | 83 |
| 82 void RespondWithData(const std::string& data) { | 84 void RespondWithData(const std::string& data) { |
| 83 net::TestURLFetcher* url_fetcher = GetRunningFetcher(); | 85 net::TestURLFetcher* url_fetcher = GetRunningFetcher(); |
| 84 url_fetcher->set_status(net::URLRequestStatus()); | 86 url_fetcher->set_status(net::URLRequestStatus()); |
| 85 url_fetcher->set_response_code(net::HTTP_OK); | 87 url_fetcher->set_response_code(net::HTTP_OK); |
| 86 url_fetcher->SetResponseString(data); | 88 url_fetcher->SetResponseString(data); |
| 87 // Call the URLFetcher delegate to continue the test. | 89 // Call the URLFetcher delegate to continue the test. |
| 88 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher); | 90 url_fetcher->delegate()->OnURLFetchComplete(url_fetcher); |
| 89 } | 91 } |
| 90 | 92 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 114 private: | 116 private: |
| 115 base::MessageLoop message_loop_; | 117 base::MessageLoop message_loop_; |
| 116 net::TestURLFetcherFactory url_fetcher_factory_; | 118 net::TestURLFetcherFactory url_fetcher_factory_; |
| 117 GoogleURLTracker google_url_tracker_; | 119 GoogleURLTracker google_url_tracker_; |
| 118 DoodleFetcherImpl doodle_fetcher_; | 120 DoodleFetcherImpl doodle_fetcher_; |
| 119 }; | 121 }; |
| 120 | 122 |
| 121 class DoodleFetcherImplTest : public DoodleFetcherImplTestBase { | 123 class DoodleFetcherImplTest : public DoodleFetcherImplTestBase { |
| 122 public: | 124 public: |
| 123 DoodleFetcherImplTest() | 125 DoodleFetcherImplTest() |
| 124 : DoodleFetcherImplTestBase(/*gray_background=*/true) {} | 126 : DoodleFetcherImplTestBase(/*gray_background=*/true, |
| 127 /*override_url=*/base::nullopt) {} |
| 125 }; | 128 }; |
| 126 | 129 |
| 127 TEST_F(DoodleFetcherImplTest, ReturnsFromFetchWithoutError) { | 130 TEST_F(DoodleFetcherImplTest, ReturnsFromFetchWithoutError) { |
| 128 base::MockCallback<DoodleFetcherImpl::FinishedCallback> callback; | 131 base::MockCallback<DoodleFetcherImpl::FinishedCallback> callback; |
| 129 doodle_fetcher()->FetchDoodle(callback.Get()); | 132 doodle_fetcher()->FetchDoodle(callback.Get()); |
| 130 | 133 |
| 131 DoodleState state = DoodleState::NO_DOODLE; | 134 DoodleState state = DoodleState::NO_DOODLE; |
| 132 base::Optional<DoodleConfig> response; | 135 base::Optional<DoodleConfig> response; |
| 133 EXPECT_CALL(callback, Run(_, _, _)) | 136 EXPECT_CALL(callback, Run(_, _, _)) |
| 134 .WillOnce(DoAll(SaveArg<0>(&state), SaveArg<2>(&response))); | 137 .WillOnce(DoAll(SaveArg<0>(&state), SaveArg<2>(&response))); |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 415 base::MockCallback<DoodleFetcherImpl::FinishedCallback> callback; | 418 base::MockCallback<DoodleFetcherImpl::FinishedCallback> callback; |
| 416 doodle_fetcher()->FetchDoodle(callback.Get()); | 419 doodle_fetcher()->FetchDoodle(callback.Get()); |
| 417 | 420 |
| 418 EXPECT_THAT(GetRunningFetcher()->GetOriginalURL(), | 421 EXPECT_THAT(GetRunningFetcher()->GetOriginalURL(), |
| 419 Eq(GURL("http://www.google.kz").Resolve(kDoodleConfigPath))); | 422 Eq(GURL("http://www.google.kz").Resolve(kDoodleConfigPath))); |
| 420 } | 423 } |
| 421 | 424 |
| 422 class DoodleFetcherImplNoGrayBgTest : public DoodleFetcherImplTestBase { | 425 class DoodleFetcherImplNoGrayBgTest : public DoodleFetcherImplTestBase { |
| 423 public: | 426 public: |
| 424 DoodleFetcherImplNoGrayBgTest() | 427 DoodleFetcherImplNoGrayBgTest() |
| 425 : DoodleFetcherImplTestBase(/*gray_background=*/false) {} | 428 : DoodleFetcherImplTestBase(/*gray_background=*/false, |
| 429 /*override_url=*/base::nullopt) {} |
| 426 }; | 430 }; |
| 427 | 431 |
| 428 TEST_F(DoodleFetcherImplNoGrayBgTest, PassesNoGrayBgParam) { | 432 TEST_F(DoodleFetcherImplNoGrayBgTest, PassesNoGrayBgParam) { |
| 429 base::MockCallback<DoodleFetcherImpl::FinishedCallback> callback; | 433 base::MockCallback<DoodleFetcherImpl::FinishedCallback> callback; |
| 430 doodle_fetcher()->FetchDoodle(callback.Get()); | 434 doodle_fetcher()->FetchDoodle(callback.Get()); |
| 431 | 435 |
| 432 EXPECT_THAT(GetRunningFetcher()->GetOriginalURL(), | 436 EXPECT_THAT(GetRunningFetcher()->GetOriginalURL(), |
| 433 Eq(Resolve(kDoodleConfigPathNoGrayBg))); | 437 Eq(Resolve(kDoodleConfigPathNoGrayBg))); |
| 434 } | 438 } |
| 435 | 439 |
| 440 class DoodleFetcherImplRelativeOverrideUrlTest |
| 441 : public DoodleFetcherImplTestBase { |
| 442 public: |
| 443 DoodleFetcherImplRelativeOverrideUrlTest() |
| 444 : DoodleFetcherImplTestBase(/*gray_background=*/false, |
| 445 /*override_url=*/std::string("/different")) {} |
| 446 }; |
| 447 |
| 448 TEST_F(DoodleFetcherImplRelativeOverrideUrlTest, OverridesWithRelativeUrl) { |
| 449 base::MockCallback<DoodleFetcherImpl::FinishedCallback> callback; |
| 450 doodle_fetcher()->FetchDoodle(callback.Get()); |
| 451 |
| 452 EXPECT_THAT(GetRunningFetcher()->GetOriginalURL(), Eq(Resolve("/different"))); |
| 453 } |
| 454 |
| 455 class DoodleFetcherImplAbsoluteOverrideUrlTest |
| 456 : public DoodleFetcherImplTestBase { |
| 457 public: |
| 458 DoodleFetcherImplAbsoluteOverrideUrlTest() |
| 459 : DoodleFetcherImplTestBase( |
| 460 /*gray_background=*/false, |
| 461 /*override_url=*/std::string("http://host.com/ddl")) {} |
| 462 }; |
| 463 |
| 464 TEST_F(DoodleFetcherImplAbsoluteOverrideUrlTest, OverridesWithAbsoluteUrl) { |
| 465 base::MockCallback<DoodleFetcherImpl::FinishedCallback> callback; |
| 466 doodle_fetcher()->FetchDoodle(callback.Get()); |
| 467 |
| 468 EXPECT_THAT(GetRunningFetcher()->GetOriginalURL(), |
| 469 Eq(GURL("http://host.com/ddl"))); |
| 470 } |
| 471 |
| 436 } // namespace doodle | 472 } // namespace doodle |
| OLD | NEW |