Chromium Code Reviews| Index: chrome/browser/chromeos/arc/arc_util_unittest.cc |
| diff --git a/chrome/browser/chromeos/arc/arc_util_unittest.cc b/chrome/browser/chromeos/arc/arc_util_unittest.cc |
| index 7b2018e5e1c85ec4cd3ac842f959e2829aa53a17..b88915600903317b36979dafdaa5ce3c063bf8d3 100644 |
| --- a/chrome/browser/chromeos/arc/arc_util_unittest.cc |
| +++ b/chrome/browser/chromeos/arc/arc_util_unittest.cc |
| @@ -10,14 +10,18 @@ |
| #include "base/macros.h" |
| #include "base/memory/ptr_util.h" |
| #include "base/test/scoped_command_line.h" |
| +#include "base/values.h" |
| #include "chrome/browser/chromeos/login/supervised/supervised_user_creation_flow.h" |
| #include "chrome/browser/chromeos/login/users/fake_chrome_user_manager.h" |
| #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h" |
| #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" |
| #include "chrome/browser/chromeos/profiles/profile_helper.h" |
| #include "chrome/browser/profiles/profile.h" |
| +#include "chrome/common/pref_names.h" |
| #include "chrome/test/base/testing_profile.h" |
| +#include "components/prefs/pref_service.h" |
| #include "components/signin/core/account_id/account_id.h" |
| +#include "components/sync_preferences/testing_pref_service_syncable.h" |
| #include "components/user_manager/user_manager.h" |
| #include "content/public/test/test_browser_thread_bundle.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -225,5 +229,63 @@ TEST_F(ChromeArcUtilTest, IsArcAllowedForProfile_SupervisedUserFlow) { |
| // TODO(hidehiko): Add test for Ephemeral users. There seems no way to easily |
| // simulate ephemeral user. |
| +TEST_F(ChromeArcUtilTest, ArcPlayStoreEnabledForProfile) { |
| + // Ensure IsAllowedForProfile() true. |
| + ScopedLogIn login(GetFakeUserManager(), |
| + AccountId::FromUserEmailGaiaId( |
| + profile()->GetProfileUserName(), kTestGaiaId)); |
| + ASSERT_TRUE(IsArcAllowedForProfile(profile())); |
| + |
| + // By default, Google Play Store is disabled. |
| + EXPECT_FALSE(IsArcPlayStoreEnabledForProfile(profile())); |
| + |
| + // Enable Google Play Store. |
| + SetArcPlayStoreEnabledForProfile(profile(), true); |
| + EXPECT_TRUE(IsArcPlayStoreEnabledForProfile(profile())); |
| + |
| + // Disable Google Play Store. |
| + SetArcPlayStoreEnabledForProfile(profile(), false); |
| + EXPECT_FALSE(IsArcPlayStoreEnabledForProfile(profile())); |
| +} |
| + |
| +TEST_F(ChromeArcUtilTest, ArcPlayStoreEnabledForProfile_NotAllowed) { |
| + ASSERT_FALSE(IsArcAllowedForProfile(profile())); |
| + |
| + // If ARC is not allowed for the profile, always return false. |
| + EXPECT_FALSE(IsArcPlayStoreEnabledForProfile(profile())); |
| + |
| + // Directly set the preference value, to avoid DCHECK in |
| + // SetArcPlayStoreEnabledForProfile(). |
| + profile()->GetPrefs()->SetBoolean(prefs::kArcEnabled, true); |
| + EXPECT_FALSE(IsArcPlayStoreEnabledForProfile(profile())); |
| +} |
| + |
| +TEST_F(ChromeArcUtilTest, ArcPlayStoreEnabledForProfile_Managed) { |
| + // Ensure IsAllowedForProfile() true. |
| + ScopedLogIn login(GetFakeUserManager(), |
| + AccountId::FromUserEmailGaiaId( |
| + profile()->GetProfileUserName(), kTestGaiaId)); |
| + ASSERT_TRUE(IsArcAllowedForProfile(profile())); |
| + |
| + // By default it is not managed. |
| + EXPECT_FALSE(IsArcPlayStoreEnabledPreferenceManagedForProfile(profile())); |
| + EXPECT_FALSE(IsArcPlayStoreEnabledForProfile(profile())); |
| + |
| + // Set managed preference to true. |
| + profile()->GetTestingPrefService()->SetManagedPref(prefs::kArcEnabled, |
| + new base::Value(true)); |
| + EXPECT_TRUE(IsArcPlayStoreEnabledPreferenceManagedForProfile(profile())); |
| + EXPECT_TRUE(IsArcPlayStoreEnabledForProfile(profile())); |
| + |
| + // In managed case, SetArcPlayStoreEnabledForProfile() does nothing. |
| + SetArcPlayStoreEnabledForProfile(profile(), false); |
|
Yusuke Sato
2017/02/17 22:27:09
nit: can you also test that SetArcPlayStoreEnabled
hidehiko
2017/02/20 18:18:44
Done.
|
| + EXPECT_TRUE(IsArcPlayStoreEnabledPreferenceManagedForProfile(profile())); |
| + EXPECT_TRUE(IsArcPlayStoreEnabledForProfile(profile())); |
| + |
| + // Remove managed state. |
| + profile()->GetTestingPrefService()->RemoveManagedPref(prefs::kArcEnabled); |
| + EXPECT_FALSE(IsArcPlayStoreEnabledPreferenceManagedForProfile(profile())); |
| +} |
| + |
| } // namespace util |
| } // namespace arc |