| 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/ntp_snippets/ntp_snippets_service.h" | 5 #include "components/ntp_snippets/ntp_snippets_service.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 262 } // namespace | 262 } // namespace |
| 263 | 263 |
| 264 class NTPSnippetsServiceTest : public test::NTPSnippetsTestBase { | 264 class NTPSnippetsServiceTest : public test::NTPSnippetsTestBase { |
| 265 public: | 265 public: |
| 266 NTPSnippetsServiceTest() | 266 NTPSnippetsServiceTest() |
| 267 : fake_url_fetcher_factory_( | 267 : fake_url_fetcher_factory_( |
| 268 /*default_factory=*/&failing_url_fetcher_factory_), | 268 /*default_factory=*/&failing_url_fetcher_factory_), |
| 269 test_url_(base::StringPrintf(kTestContentSnippetsServerFormat, | 269 test_url_(base::StringPrintf(kTestContentSnippetsServerFormat, |
| 270 google_apis::GetAPIKey().c_str())) { | 270 google_apis::GetAPIKey().c_str())) { |
| 271 NTPSnippetsService::RegisterProfilePrefs(pref_service()->registry()); | 271 NTPSnippetsService::RegisterProfilePrefs(pref_service()->registry()); |
| 272 RequestThrottler::RegisterProfilePrefs(pref_service()->registry()); |
| 272 | 273 |
| 273 // Since no SuggestionsService is injected in tests, we need to force the | 274 // Since no SuggestionsService is injected in tests, we need to force the |
| 274 // service to fetch from all hosts. | 275 // service to fetch from all hosts. |
| 275 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 276 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
| 276 switches::kDontRestrict); | 277 switches::kDontRestrict); |
| 277 EXPECT_TRUE(database_dir_.CreateUniqueTempDir()); | 278 EXPECT_TRUE(database_dir_.CreateUniqueTempDir()); |
| 278 } | 279 } |
| 279 | 280 |
| 280 ~NTPSnippetsServiceTest() override { | 281 ~NTPSnippetsServiceTest() override { |
| 281 if (service_) | 282 if (service_) |
| (...skipping 22 matching lines...) Expand all Loading... |
| 304 new net::TestURLRequestContextGetter(task_runner.get()); | 305 new net::TestURLRequestContextGetter(task_runner.get()); |
| 305 | 306 |
| 306 // Delete the current service, so that the database is destroyed before we | 307 // Delete the current service, so that the database is destroyed before we |
| 307 // create the new one, otherwise opening the new database will fail. | 308 // create the new one, otherwise opening the new database will fail. |
| 308 service_.reset(); | 309 service_.reset(); |
| 309 | 310 |
| 310 ResetSigninManager(); | 311 ResetSigninManager(); |
| 311 std::unique_ptr<NTPSnippetsFetcher> snippets_fetcher = | 312 std::unique_ptr<NTPSnippetsFetcher> snippets_fetcher = |
| 312 base::MakeUnique<NTPSnippetsFetcher>( | 313 base::MakeUnique<NTPSnippetsFetcher>( |
| 313 fake_signin_manager(), fake_token_service_.get(), | 314 fake_signin_manager(), fake_token_service_.get(), |
| 314 std::move(request_context_getter), base::Bind(&ParseJson), | 315 std::move(request_context_getter), pref_service(), |
| 316 base::Bind(&ParseJson), |
| 315 /*is_stable_channel=*/true); | 317 /*is_stable_channel=*/true); |
| 316 | 318 |
| 317 fake_signin_manager()->SignIn("foo@bar.com"); | 319 fake_signin_manager()->SignIn("foo@bar.com"); |
| 318 snippets_fetcher->SetPersonalizationForTesting( | 320 snippets_fetcher->SetPersonalizationForTesting( |
| 319 NTPSnippetsFetcher::Personalization::kNonPersonal); | 321 NTPSnippetsFetcher::Personalization::kNonPersonal); |
| 320 | 322 |
| 321 // Add an initial fetch response, as the service tries to fetch when there | 323 // Add an initial fetch response, as the service tries to fetch when there |
| 322 // is nothing in the DB. | 324 // is nothing in the DB. |
| 323 SetUpFetchResponse(GetTestJson({GetSnippet()})); | 325 SetUpFetchResponse(GetTestJson({GetSnippet()})); |
| 324 | 326 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 340 MockScheduler& mock_scheduler() { return scheduler_; } | 342 MockScheduler& mock_scheduler() { return scheduler_; } |
| 341 | 343 |
| 342 // Provide the json to be returned by the fake fetcher. | 344 // Provide the json to be returned by the fake fetcher. |
| 343 void SetUpFetchResponse(const std::string& json) { | 345 void SetUpFetchResponse(const std::string& json) { |
| 344 fake_url_fetcher_factory_.SetFakeResponse(test_url_, json, net::HTTP_OK, | 346 fake_url_fetcher_factory_.SetFakeResponse(test_url_, json, net::HTTP_OK, |
| 345 net::URLRequestStatus::SUCCESS); | 347 net::URLRequestStatus::SUCCESS); |
| 346 } | 348 } |
| 347 | 349 |
| 348 void LoadFromJSONString(const std::string& json) { | 350 void LoadFromJSONString(const std::string& json) { |
| 349 SetUpFetchResponse(json); | 351 SetUpFetchResponse(json); |
| 350 service()->FetchSnippets(); | 352 service()->FetchSnippets(true); |
| 351 base::RunLoop().RunUntilIdle(); | 353 base::RunLoop().RunUntilIdle(); |
| 352 } | 354 } |
| 353 | 355 |
| 354 private: | 356 private: |
| 355 base::MessageLoop message_loop_; | 357 base::MessageLoop message_loop_; |
| 356 FailingFakeURLFetcherFactory failing_url_fetcher_factory_; | 358 FailingFakeURLFetcherFactory failing_url_fetcher_factory_; |
| 357 // Instantiation of factory automatically sets itself as URLFetcher's factory. | 359 // Instantiation of factory automatically sets itself as URLFetcher's factory. |
| 358 net::FakeURLFetcherFactory fake_url_fetcher_factory_; | 360 net::FakeURLFetcherFactory fake_url_fetcher_factory_; |
| 359 const GURL test_url_; | 361 const GURL test_url_; |
| 360 std::unique_ptr<OAuth2TokenService> fake_token_service_; | 362 std::unique_ptr<OAuth2TokenService> fake_token_service_; |
| (...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 864 MockServiceObserver mock_observer; | 866 MockServiceObserver mock_observer; |
| 865 service()->AddObserver(&mock_observer); | 867 service()->AddObserver(&mock_observer); |
| 866 | 868 |
| 867 // Simulate user signed out | 869 // Simulate user signed out |
| 868 SetUpFetchResponse(GetTestJson({GetSnippet()})); | 870 SetUpFetchResponse(GetTestJson({GetSnippet()})); |
| 869 EXPECT_CALL(mock_observer, NTPSnippetsServiceDisabledReasonChanged( | 871 EXPECT_CALL(mock_observer, NTPSnippetsServiceDisabledReasonChanged( |
| 870 DisabledReason::SIGNED_OUT)); | 872 DisabledReason::SIGNED_OUT)); |
| 871 service()->OnDisabledReasonChanged(DisabledReason::SIGNED_OUT); | 873 service()->OnDisabledReasonChanged(DisabledReason::SIGNED_OUT); |
| 872 base::RunLoop().RunUntilIdle(); | 874 base::RunLoop().RunUntilIdle(); |
| 873 EXPECT_EQ(NTPSnippetsService::State::DISABLED, service()->state_); | 875 EXPECT_EQ(NTPSnippetsService::State::DISABLED, service()->state_); |
| 874 EXPECT_THAT(service()->snippets(), IsEmpty()); // No fetch should be made. | 876 EXPECT_THAT(service()->snippets(), IsEmpty()); // No fetch should be made. |
| 875 | 877 |
| 876 // Simulate user sign in. The service should be ready again and load snippets. | 878 // Simulate user sign in. The service should be ready again and load snippets. |
| 877 SetUpFetchResponse(GetTestJson({GetSnippet()})); | 879 SetUpFetchResponse(GetTestJson({GetSnippet()})); |
| 878 EXPECT_CALL(mock_observer, | 880 EXPECT_CALL(mock_observer, |
| 879 NTPSnippetsServiceDisabledReasonChanged(DisabledReason::NONE)); | 881 NTPSnippetsServiceDisabledReasonChanged(DisabledReason::NONE)); |
| 880 EXPECT_CALL(mock_scheduler(), Schedule(_, _, _, _)).Times(1); | 882 EXPECT_CALL(mock_scheduler(), Schedule(_, _, _, _)).Times(1); |
| 881 service()->OnDisabledReasonChanged(DisabledReason::NONE); | 883 service()->OnDisabledReasonChanged(DisabledReason::NONE); |
| 882 base::RunLoop().RunUntilIdle(); | 884 base::RunLoop().RunUntilIdle(); |
| 883 EXPECT_EQ(NTPSnippetsService::State::READY, service()->state_); | 885 EXPECT_EQ(NTPSnippetsService::State::READY, service()->state_); |
| 884 EXPECT_FALSE(service()->snippets().empty()); | 886 EXPECT_FALSE(service()->snippets().empty()); |
| 885 | 887 |
| 886 service()->RemoveObserver(&mock_observer); | 888 service()->RemoveObserver(&mock_observer); |
| 887 } | 889 } |
| 888 | 890 |
| 889 } // namespace ntp_snippets | 891 } // namespace ntp_snippets |
| OLD | NEW |