Chromium Code Reviews| Index: components/ntp_snippets/remote/remote_suggestions_status_service_unittest.cc |
| diff --git a/components/ntp_snippets/remote/remote_suggestions_status_service_unittest.cc b/components/ntp_snippets/remote/remote_suggestions_status_service_unittest.cc |
| index a8c6baaf8f44587c09de836e92fbd5b93a019b7c..1a320278d6628ba68883d82cbc8e15853a6b9f17 100644 |
| --- a/components/ntp_snippets/remote/remote_suggestions_status_service_unittest.cc |
| +++ b/components/ntp_snippets/remote/remote_suggestions_status_service_unittest.cc |
| @@ -6,6 +6,8 @@ |
| #include <memory> |
| +#include "components/ntp_snippets/features.h" |
| +#include "components/ntp_snippets/ntp_snippets_constants.h" |
| #include "components/ntp_snippets/pref_names.h" |
| #include "components/ntp_snippets/remote/test_utils.h" |
| #include "components/prefs/pref_registry_simple.h" |
| @@ -14,6 +16,7 @@ |
| #include "components/signin/core/browser/fake_signin_manager.h" |
| #include "components/signin/core/browser/test_signin_client.h" |
| #include "components/signin/core/common/signin_pref_names.h" |
| +#include "components/variations/variations_params_manager.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -33,11 +36,40 @@ class RemoteSuggestionsStatusServiceTest : public ::testing::Test { |
| protected: |
| test::RemoteSuggestionsTestUtils utils_; |
| + variations::testing::VariationParamsManager params_manager_; |
| }; |
| -// TODO(jkrcal): Extend the ways to override variation parameters in unit-test |
| -// (bug 645447), and recover the SigninStateCompatibility test that sign-in is |
| -// required when the parameter is overriden. |
| +TEST_F(RemoteSuggestionsStatusServiceTest, SigninNeededIfSpecifiedByParam) { |
| + // Specify by the parameter that no signin is required. |
|
Marc Treib
2016/12/06 10:21:09
I think the "no" shouldn't be here?
jkrcal
2016/12/06 10:32:44
Done.
|
| + params_manager_.SetVariationParamsWithFeatureAssociations( |
| + ntp_snippets::kStudyName, {{"fetching_requires_signin", "true"}}, |
| + {ntp_snippets::kArticleSuggestionsFeature.name}); |
| + |
| + auto service = MakeService(); |
| + |
| + // The default test setup is signed out. |
| + EXPECT_EQ(RemoteSuggestionsStatus::SIGNED_OUT_AND_DISABLED, |
| + service->GetStatusFromDeps()); |
| + |
| + // Once signed in, we should be in a compatible state. |
| + utils_.fake_signin_manager()->SignIn("foo@bar.com"); |
| + EXPECT_EQ(RemoteSuggestionsStatus::ENABLED_AND_SIGNED_IN, |
| + service->GetStatusFromDeps()); |
|
Marc Treib
2016/12/06 10:21:09
Would be nice to rewrite this tests in terms of th
jkrcal
2016/12/06 10:32:44
Done.
|
| +} |
| + |
| +TEST_F(RemoteSuggestionsStatusServiceTest, NoSigninNeeded) { |
| + auto service = MakeService(); |
| + |
| + // Indeed, no signin is required. |
|
Marc Treib
2016/12/06 10:21:09
s/Indeed/By default/
?
jkrcal
2016/12/06 10:32:44
Done.
|
| + EXPECT_EQ(RemoteSuggestionsStatus::ENABLED_AND_SIGNED_OUT, |
| + service->GetStatusFromDeps()); |
| + |
| + // Once can still sign in. |
|
Marc Treib
2016/12/06 10:21:09
s/Once/One/
?
jkrcal
2016/12/06 10:32:44
Done.
|
| + utils_.fake_signin_manager()->SignIn("foo@bar.com"); |
| + EXPECT_EQ(RemoteSuggestionsStatus::ENABLED_AND_SIGNED_IN, |
| + service->GetStatusFromDeps()); |
| +} |
| + |
| TEST_F(RemoteSuggestionsStatusServiceTest, DisabledViaPref) { |
| auto service = MakeService(); |
| @@ -50,7 +82,7 @@ TEST_F(RemoteSuggestionsStatusServiceTest, DisabledViaPref) { |
| EXPECT_EQ(RemoteSuggestionsStatus::EXPLICITLY_DISABLED, |
| service->GetStatusFromDeps()); |
| - // Signing-in shouldn't matter anymore. |
| + // The other dependencies shouldn't matter anymore. |
| utils_.fake_signin_manager()->SignIn("foo@bar.com"); |
| EXPECT_EQ(RemoteSuggestionsStatus::EXPLICITLY_DISABLED, |
| service->GetStatusFromDeps()); |