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..e2c47739a309468d739edd7d92d5ce53a7b9ea64 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(kAccountsPrefSupervisedUsersEnabled, |
+ 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,13 @@ 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); |
+} |
+ |
} // namespace chromeos |