Chromium Code Reviews| Index: chrome/browser/chromeos/login/user_manager_unittest.cc |
| diff --git a/chrome/browser/chromeos/login/user_manager_unittest.cc b/chrome/browser/chromeos/login/user_manager_unittest.cc |
| index b0fe8d8e8b1bdf0e1820f61af0327199926797c5..814b7fc86e93792ea6d626c6ba33d0a2f01c48b4 100644 |
| --- a/chrome/browser/chromeos/login/user_manager_unittest.cc |
| +++ b/chrome/browser/chromeos/login/user_manager_unittest.cc |
| @@ -47,12 +47,11 @@ class UserManagerTest : public testing::Test { |
| cros_settings_->AddSettingsProvider(&stub_settings_provider_); |
| // Populate the stub DeviceSettingsProvider with valid values. |
| - SetDeviceSettings(false, ""); |
| + SetDeviceSettings(false, "", false); |
| // Register an in-memory local settings instance. |
| local_state_.reset(new TestingPrefServiceSimple); |
| - reinterpret_cast<TestingBrowserProcess*>(g_browser_process) |
| - ->SetLocalState(local_state_.get()); |
| + TestingBrowserProcess::GetGlobal()->SetLocalState(local_state_.get()); |
| UserManager::RegisterPrefs(local_state_->registry()); |
| // Wallpaper manager and user image managers prefs will be accessed by the |
| // unit-test as well. |
| @@ -64,8 +63,7 @@ class UserManagerTest : public testing::Test { |
| virtual void TearDown() OVERRIDE { |
| // Unregister the in-memory local settings instance. |
| - reinterpret_cast<TestingBrowserProcess*>(g_browser_process) |
| - ->SetLocalState(0); |
| + TestingBrowserProcess::GetGlobal()->SetLocalState(0); |
| // Restore the real DeviceSettingsProvider. |
| EXPECT_TRUE( |
| @@ -78,24 +76,28 @@ class UserManagerTest : public testing::Test { |
| base::RunLoop().RunUntilIdle(); |
| } |
| + UserManagerImpl* GetUserManagerImpl() const { |
| + return static_cast<UserManagerImpl*>(UserManager::Get()); |
| + } |
| + |
| bool GetUserManagerEphemeralUsersEnabled() const { |
| - return reinterpret_cast<UserManagerImpl*>(UserManager::Get())-> |
| - ephemeral_users_enabled_; |
| + return GetUserManagerImpl()->ephemeral_users_enabled_; |
| + } |
| + |
| + bool GetUserManagerLocallyManagedUsersEnabledByPolicy() const { |
| + return GetUserManagerImpl()->locally_managed_users_enabled_by_policy_; |
| } |
| void SetUserManagerEphemeralUsersEnabled(bool ephemeral_users_enabled) { |
| - reinterpret_cast<UserManagerImpl*>(UserManager::Get())-> |
| - ephemeral_users_enabled_ = ephemeral_users_enabled; |
| + GetUserManagerImpl()->ephemeral_users_enabled_ = ephemeral_users_enabled; |
| } |
| const std::string& GetUserManagerOwnerEmail() const { |
| - return reinterpret_cast<UserManagerImpl*>(UserManager::Get())-> |
| - owner_email_; |
| + return GetUserManagerImpl()-> owner_email_; |
| } |
| void SetUserManagerOwnerEmail(const std::string& owner_email) { |
| - reinterpret_cast<UserManagerImpl*>(UserManager::Get())-> |
| - owner_email_ = owner_email; |
| + GetUserManagerImpl()->owner_email_ = owner_email; |
| } |
| void ResetUserManager() { |
| @@ -107,18 +109,20 @@ class UserManagerTest : public testing::Test { |
| } |
| void SetDeviceSettings(bool ephemeral_users_enabled, |
| - const std::string &owner) { |
| + const std::string &owner, |
| + bool locally_managed_users_enabled) { |
| base::FundamentalValue |
| ephemeral_users_enabled_value(ephemeral_users_enabled); |
| stub_settings_provider_.Set(kAccountsPrefEphemeralUsersEnabled, |
| ephemeral_users_enabled_value); |
| base::StringValue owner_value(owner); |
| stub_settings_provider_.Set(kDeviceOwner, owner_value); |
| + stub_settings_provider_.Set(kAccountsPrefLocallyManagedUsersEnabled, |
| + base::FundamentalValue(locally_managed_users_enabled)); |
| } |
| void RetrieveTrustedDevicePolicies() { |
| - reinterpret_cast<UserManagerImpl*>(UserManager::Get())-> |
| - RetrieveTrustedDevicePolicies(); |
| + GetUserManagerImpl()->RetrieveTrustedDevicePolicies(); |
| } |
| protected: |
| @@ -142,7 +146,7 @@ TEST_F(UserManagerTest, RetrieveTrustedDevicePolicies) { |
| SetUserManagerEphemeralUsersEnabled(true); |
| SetUserManagerOwnerEmail(""); |
| - SetDeviceSettings(false, "owner@invalid.domain"); |
| + SetDeviceSettings(false, "owner@invalid.domain", false); |
| RetrieveTrustedDevicePolicies(); |
| EXPECT_FALSE(GetUserManagerEphemeralUsersEnabled()); |
| @@ -166,7 +170,7 @@ TEST_F(UserManagerTest, RemoveAllExceptOwnerFromList) { |
| EXPECT_EQ((*users)[1]->email(), "user0@invalid.domain"); |
| EXPECT_EQ((*users)[2]->email(), "owner@invalid.domain"); |
| - SetDeviceSettings(true, "owner@invalid.domain"); |
| + SetDeviceSettings(true, "owner@invalid.domain", false); |
| RetrieveTrustedDevicePolicies(); |
| users = &UserManager::Get()->GetUsers(); |
| @@ -175,7 +179,7 @@ TEST_F(UserManagerTest, RemoveAllExceptOwnerFromList) { |
| } |
| TEST_F(UserManagerTest, RegularUserLoggedInAsEphemeral) { |
| - SetDeviceSettings(true, "owner@invalid.domain"); |
| + SetDeviceSettings(true, "owner@invalid.domain", false); |
| RetrieveTrustedDevicePolicies(); |
| UserManager::Get()->UserLoggedIn( |
| @@ -190,4 +194,14 @@ TEST_F(UserManagerTest, RegularUserLoggedInAsEphemeral) { |
| EXPECT_EQ((*users)[0]->email(), "owner@invalid.domain"); |
| } |
| +TEST_F(UserManagerTest, DisablingLMUByDeviceSettings) { |
| + SetDeviceSettings(false, "owner@invalid.domain", false); |
| + RetrieveTrustedDevicePolicies(); |
| + EXPECT_EQ(GetUserManagerLocallyManagedUsersEnabledByPolicy(), false); |
| + SetDeviceSettings(false, "owner@invalid.domain", true); |
| + RetrieveTrustedDevicePolicies(); |
| + EXPECT_EQ(GetUserManagerLocallyManagedUsersEnabledByPolicy(), true); |
| + |
|
Mattias Nissler (ping if slow)
2013/06/21 14:25:16
nit: remove newline
dzhioev (left Google)
2013/06/21 16:48:17
Done.
|
| +} |
| + |
| } // namespace chromeos |