Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(574)

Side by Side Diff: chrome/browser/chromeos/login/users/user_manager_unittest.cc

Issue 444903002: [cros] user_manager component - move UserManagerBase and UserManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <cstdlib> 5 #include <cstdlib>
6 #include <cstring> 6 #include <cstring>
7 7
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
11 #include "base/prefs/pref_service.h" 11 #include "base/prefs/pref_service.h"
12 #include "base/run_loop.h" 12 #include "base/run_loop.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/browser_process.h" 14 #include "chrome/browser/browser_process.h"
15 #include "chrome/browser/chromeos/login/users/chrome_user_manager.h" 15 #include "chrome/browser/chromeos/login/users/chrome_user_manager_impl.h"
16 #include "chrome/browser/chromeos/login/users/user_manager.h" 16 #include "chrome/browser/chromeos/login/users/scoped_user_manager_enabler.h"
17 #include "chrome/browser/chromeos/settings/cros_settings.h" 17 #include "chrome/browser/chromeos/settings/cros_settings.h"
18 #include "chrome/browser/chromeos/settings/device_settings_service.h" 18 #include "chrome/browser/chromeos/settings/device_settings_service.h"
19 #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" 19 #include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h"
20 #include "chrome/browser/profiles/profile_manager.h" 20 #include "chrome/browser/profiles/profile_manager.h"
21 #include "chrome/test/base/scoped_testing_local_state.h" 21 #include "chrome/test/base/scoped_testing_local_state.h"
22 #include "chrome/test/base/testing_browser_process.h" 22 #include "chrome/test/base/testing_browser_process.h"
23 #include "chrome/test/base/testing_profile.h" 23 #include "chrome/test/base/testing_profile.h"
24 #include "chromeos/chromeos_switches.h" 24 #include "chromeos/chromeos_switches.h"
25 #include "chromeos/dbus/dbus_thread_manager.h" 25 #include "chromeos/dbus/dbus_thread_manager.h"
26 #include "chromeos/dbus/fake_dbus_thread_manager.h" 26 #include "chromeos/dbus/fake_dbus_thread_manager.h"
27 #include "chromeos/settings/cros_settings_names.h" 27 #include "chromeos/settings/cros_settings_names.h"
28 #include "chromeos/settings/cros_settings_provider.h" 28 #include "chromeos/settings/cros_settings_provider.h"
29 #include "components/user_manager/user.h" 29 #include "components/user_manager/user.h"
30 #include "components/user_manager/user_manager.h"
30 #include "content/public/common/content_switches.h" 31 #include "content/public/common/content_switches.h"
31 #include "content/public/test/test_browser_thread_bundle.h" 32 #include "content/public/test/test_browser_thread_bundle.h"
32 #include "testing/gtest/include/gtest/gtest.h" 33 #include "testing/gtest/include/gtest/gtest.h"
33 34
34 namespace chromeos { 35 namespace chromeos {
35 36
36 class UnittestProfileManager : public ::ProfileManagerWithoutInit { 37 class UnittestProfileManager : public ::ProfileManagerWithoutInit {
37 public: 38 public:
38 explicit UnittestProfileManager(const base::FilePath& user_data_dir) 39 explicit UnittestProfileManager(const base::FilePath& user_data_dir)
39 : ::ProfileManagerWithoutInit(user_data_dir) {} 40 : ::ProfileManagerWithoutInit(user_data_dir) {}
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 cros_settings_->AddSettingsProvider(device_settings_provider_); 97 cros_settings_->AddSettingsProvider(device_settings_provider_);
97 98
98 // Shut down the DeviceSettingsService. 99 // Shut down the DeviceSettingsService.
99 DeviceSettingsService::Get()->UnsetSessionManager(); 100 DeviceSettingsService::Get()->UnsetSessionManager();
100 TestingBrowserProcess::GetGlobal()->SetProfileManager(NULL); 101 TestingBrowserProcess::GetGlobal()->SetProfileManager(NULL);
101 102
102 base::RunLoop().RunUntilIdle(); 103 base::RunLoop().RunUntilIdle();
103 chromeos::DBusThreadManager::Shutdown(); 104 chromeos::DBusThreadManager::Shutdown();
104 } 105 }
105 106
106 ChromeUserManager* GetChromeUserManager() const { 107 ChromeUserManagerImpl* GetChromeUserManager() const {
107 return static_cast<ChromeUserManager*>(UserManager::Get()); 108 return static_cast<ChromeUserManagerImpl*>(
109 user_manager::UserManager::Get());
108 } 110 }
109 111
110 bool GetUserManagerEphemeralUsersEnabled() const { 112 bool GetUserManagerEphemeralUsersEnabled() const {
111 return GetChromeUserManager()->GetEphemeralUsersEnabled(); 113 return GetChromeUserManager()->GetEphemeralUsersEnabled();
112 } 114 }
113 115
114 void SetUserManagerEphemeralUsersEnabled(bool ephemeral_users_enabled) { 116 void SetUserManagerEphemeralUsersEnabled(bool ephemeral_users_enabled) {
115 GetChromeUserManager()->SetEphemeralUsersEnabled(ephemeral_users_enabled); 117 GetChromeUserManager()->SetEphemeralUsersEnabled(ephemeral_users_enabled);
116 } 118 }
117 119
118 const std::string& GetUserManagerOwnerEmail() const { 120 const std::string& GetUserManagerOwnerEmail() const {
119 return GetChromeUserManager()->GetOwnerEmail(); 121 return GetChromeUserManager()->GetOwnerEmail();
120 } 122 }
121 123
122 void SetUserManagerOwnerEmail(const std::string& owner_email) { 124 void SetUserManagerOwnerEmail(const std::string& owner_email) {
123 GetChromeUserManager()->SetOwnerEmail(owner_email); 125 GetChromeUserManager()->SetOwnerEmail(owner_email);
124 } 126 }
125 127
126 void ResetUserManager() { 128 void ResetUserManager() {
127 // Reset the UserManager singleton. 129 // Reset the UserManager singleton.
128 user_manager_enabler_.reset(); 130 user_manager_enabler_.reset();
129 // Initialize the UserManager singleton to a fresh ChromeUserManager 131 // Initialize the UserManager singleton to a fresh ChromeUserManagerImpl
130 // instance. 132 // instance.
131 user_manager_enabler_.reset( 133 user_manager_enabler_.reset(
132 new ScopedUserManagerEnabler(new ChromeUserManager)); 134 new ScopedUserManagerEnabler(new ChromeUserManagerImpl));
133 135
134 // ChromeUserManager ctor posts a task to reload policies. 136 // ChromeUserManagerImpl ctor posts a task to reload policies.
135 base::RunLoop().RunUntilIdle(); 137 base::RunLoop().RunUntilIdle();
136 } 138 }
137 139
138 void SetDeviceSettings(bool ephemeral_users_enabled, 140 void SetDeviceSettings(bool ephemeral_users_enabled,
139 const std::string &owner, 141 const std::string &owner,
140 bool supervised_users_enabled) { 142 bool supervised_users_enabled) {
141 base::FundamentalValue 143 base::FundamentalValue
142 ephemeral_users_enabled_value(ephemeral_users_enabled); 144 ephemeral_users_enabled_value(ephemeral_users_enabled);
143 stub_settings_provider_.Set(kAccountsPrefEphemeralUsersEnabled, 145 stub_settings_provider_.Set(kAccountsPrefEphemeralUsersEnabled,
144 ephemeral_users_enabled_value); 146 ephemeral_users_enabled_value);
(...skipping 27 matching lines...) Expand all
172 SetUserManagerOwnerEmail(""); 174 SetUserManagerOwnerEmail("");
173 175
174 SetDeviceSettings(false, "owner@invalid.domain", false); 176 SetDeviceSettings(false, "owner@invalid.domain", false);
175 RetrieveTrustedDevicePolicies(); 177 RetrieveTrustedDevicePolicies();
176 178
177 EXPECT_FALSE(GetUserManagerEphemeralUsersEnabled()); 179 EXPECT_FALSE(GetUserManagerEphemeralUsersEnabled());
178 EXPECT_EQ(GetUserManagerOwnerEmail(), "owner@invalid.domain"); 180 EXPECT_EQ(GetUserManagerOwnerEmail(), "owner@invalid.domain");
179 } 181 }
180 182
181 TEST_F(UserManagerTest, RemoveAllExceptOwnerFromList) { 183 TEST_F(UserManagerTest, RemoveAllExceptOwnerFromList) {
182 UserManager::Get()->UserLoggedIn( 184 user_manager::UserManager::Get()->UserLoggedIn(
183 "owner@invalid.domain", "owner@invalid.domain", false); 185 "owner@invalid.domain", "owner@invalid.domain", false);
184 ResetUserManager(); 186 ResetUserManager();
185 UserManager::Get()->UserLoggedIn( 187 user_manager::UserManager::Get()->UserLoggedIn(
186 "user0@invalid.domain", "owner@invalid.domain", false); 188 "user0@invalid.domain", "owner@invalid.domain", false);
187 ResetUserManager(); 189 ResetUserManager();
188 UserManager::Get()->UserLoggedIn( 190 user_manager::UserManager::Get()->UserLoggedIn(
189 "user1@invalid.domain", "owner@invalid.domain", false); 191 "user1@invalid.domain", "owner@invalid.domain", false);
190 ResetUserManager(); 192 ResetUserManager();
191 193
192 const user_manager::UserList* users = &UserManager::Get()->GetUsers(); 194 const user_manager::UserList* users =
195 &user_manager::UserManager::Get()->GetUsers();
193 ASSERT_EQ(3U, users->size()); 196 ASSERT_EQ(3U, users->size());
194 EXPECT_EQ((*users)[0]->email(), "user1@invalid.domain"); 197 EXPECT_EQ((*users)[0]->email(), "user1@invalid.domain");
195 EXPECT_EQ((*users)[1]->email(), "user0@invalid.domain"); 198 EXPECT_EQ((*users)[1]->email(), "user0@invalid.domain");
196 EXPECT_EQ((*users)[2]->email(), "owner@invalid.domain"); 199 EXPECT_EQ((*users)[2]->email(), "owner@invalid.domain");
197 200
198 SetDeviceSettings(true, "owner@invalid.domain", false); 201 SetDeviceSettings(true, "owner@invalid.domain", false);
199 RetrieveTrustedDevicePolicies(); 202 RetrieveTrustedDevicePolicies();
200 203
201 users = &UserManager::Get()->GetUsers(); 204 users = &user_manager::UserManager::Get()->GetUsers();
202 EXPECT_EQ(1U, users->size()); 205 EXPECT_EQ(1U, users->size());
203 EXPECT_EQ((*users)[0]->email(), "owner@invalid.domain"); 206 EXPECT_EQ((*users)[0]->email(), "owner@invalid.domain");
204 } 207 }
205 208
206 TEST_F(UserManagerTest, RegularUserLoggedInAsEphemeral) { 209 TEST_F(UserManagerTest, RegularUserLoggedInAsEphemeral) {
207 SetDeviceSettings(true, "owner@invalid.domain", false); 210 SetDeviceSettings(true, "owner@invalid.domain", false);
208 RetrieveTrustedDevicePolicies(); 211 RetrieveTrustedDevicePolicies();
209 212
210 UserManager::Get()->UserLoggedIn( 213 user_manager::UserManager::Get()->UserLoggedIn(
211 "owner@invalid.domain", "user0@invalid.domain", false); 214 "owner@invalid.domain", "user0@invalid.domain", false);
212 ResetUserManager(); 215 ResetUserManager();
213 UserManager::Get()->UserLoggedIn( 216 user_manager::UserManager::Get()->UserLoggedIn(
214 "user0@invalid.domain", "user0@invalid.domain", false); 217 "user0@invalid.domain", "user0@invalid.domain", false);
215 ResetUserManager(); 218 ResetUserManager();
216 219
217 const user_manager::UserList* users = &UserManager::Get()->GetUsers(); 220 const user_manager::UserList* users =
221 &user_manager::UserManager::Get()->GetUsers();
218 EXPECT_EQ(1U, users->size()); 222 EXPECT_EQ(1U, users->size());
219 EXPECT_EQ((*users)[0]->email(), "owner@invalid.domain"); 223 EXPECT_EQ((*users)[0]->email(), "owner@invalid.domain");
220 } 224 }
221 225
222 } // namespace chromeos 226 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698