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

Side by Side Diff: chrome/browser/chromeos/login/user_adding_screen_browsertest.cc

Issue 270563002: Componentize LoginManagerTest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move parameter from ctor to fn Created 6 years, 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ash/session/session_state_delegate.h" 5 #include "ash/session/session_state_delegate.h"
6 #include "ash/shell.h" 6 #include "ash/shell.h"
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "chrome/browser/chromeos/login/login_display_host_impl.h" 8 #include "chrome/browser/chromeos/login/login_display_host_impl.h"
9 #include "chrome/browser/chromeos/login/login_manager_test.h" 9 #include "chrome/browser/chromeos/login/login_manager_test_helper.h"
10 #include "chrome/browser/chromeos/login/multi_profile_user_controller.h" 10 #include "chrome/browser/chromeos/login/multi_profile_user_controller.h"
11 #include "chrome/browser/chromeos/login/startup_utils.h" 11 #include "chrome/browser/chromeos/login/startup_utils.h"
12 #include "chrome/browser/chromeos/login/user_adding_screen.h" 12 #include "chrome/browser/chromeos/login/user_adding_screen.h"
13 #include "chrome/browser/chromeos/login/user_manager.h" 13 #include "chrome/browser/chromeos/login/user_manager.h"
14 #include "chrome/common/chrome_switches.h" 14 #include "chrome/common/chrome_switches.h"
15 #include "chrome/common/pref_names.h" 15 #include "chrome/common/pref_names.h"
16 #include "chrome/test/base/in_process_browser_test.h" 16 #include "chrome/test/base/in_process_browser_test.h"
17 #include "content/public/test/test_utils.h" 17 #include "content/public/test/test_utils.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 using namespace testing; 20 using namespace testing;
21 21
22 namespace { 22 namespace {
23 23
24 const char* kTestUsers[] = {"test-user1@gmail.com", 24 const char* kTestUsers[] = {"test-user1@gmail.com",
25 "test-user2@gmail.com", 25 "test-user2@gmail.com",
26 "test-user3@gmail.com"}; 26 "test-user3@gmail.com"};
27 27
28 } // anonymous namespace 28 } // anonymous namespace
29 29
30 namespace chromeos { 30 namespace chromeos {
31 31
32 class UserAddingScreenTest : public LoginManagerTest, 32 class UserAddingScreenTest : public InProcessBrowserTest,
33 public UserAddingScreen::Observer { 33 public UserAddingScreen::Observer {
34 public: 34 public:
35 UserAddingScreenTest() : LoginManagerTest(false), 35 UserAddingScreenTest()
36 user_adding_started_(0), 36 : login_manager_test_helper_(new LoginManagerTestHelper),
37 user_adding_finished_(0) { 37 user_adding_started_(0),
38 user_adding_finished_(0) {
39 set_exit_when_last_browser_closes(false);
40 }
41
42 virtual void SetUpOnMainThread() OVERRIDE {
43 login_manager_test_helper_->SetUp();
38 } 44 }
39 45
40 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 46 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
41 LoginManagerTest::SetUpCommandLine(command_line); 47 login_manager_test_helper_->SetUpCommandLine(command_line);
42 command_line->AppendSwitch(::switches::kMultiProfiles); 48 command_line->AppendSwitch(::switches::kMultiProfiles);
43 } 49 }
44 50
45 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { 51 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
46 LoginManagerTest::SetUpInProcessBrowserTestFixture(); 52 login_manager_test_helper_->SetUpLoginUtils(false);
47 UserAddingScreen::Get()->AddObserver(this); 53 UserAddingScreen::Get()->AddObserver(this);
48 } 54 }
49 55
56 virtual void CleanUpOnMainThread() OVERRIDE {
57 login_manager_test_helper_->CleanUp();
58 }
59
50 virtual void OnUserAddingFinished() OVERRIDE { ++user_adding_finished_; } 60 virtual void OnUserAddingFinished() OVERRIDE { ++user_adding_finished_; }
51 61
52 virtual void OnUserAddingStarted() OVERRIDE { ++user_adding_started_; } 62 virtual void OnUserAddingStarted() OVERRIDE { ++user_adding_started_; }
53 63
54 void SetUserCanLock(User* user, bool can_lock) { 64 void SetUserCanLock(User* user, bool can_lock) {
55 user->set_can_lock(can_lock); 65 user->set_can_lock(can_lock);
56 } 66 }
57 67
58 int user_adding_started() { return user_adding_started_; } 68 int user_adding_started() { return user_adding_started_; }
59 69
60 int user_adding_finished() { return user_adding_finished_; } 70 int user_adding_finished() { return user_adding_finished_; }
61 71
72 protected:
73 scoped_ptr<LoginManagerTestHelper> login_manager_test_helper_;
74
62 private: 75 private:
63 int user_adding_started_; 76 int user_adding_started_;
64 int user_adding_finished_; 77 int user_adding_finished_;
65 78
66 DISALLOW_COPY_AND_ASSIGN(UserAddingScreenTest); 79 DISALLOW_COPY_AND_ASSIGN(UserAddingScreenTest);
67 }; 80 };
68 81
69 IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, PRE_CancelAdding) { 82 IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, PRE_CancelAdding) {
70 RegisterUser(kTestUsers[0]); 83 login_manager_test_helper_->RegisterUser(kTestUsers[0]);
71 RegisterUser(kTestUsers[1]); 84 login_manager_test_helper_->RegisterUser(kTestUsers[1]);
72 RegisterUser(kTestUsers[2]); 85 login_manager_test_helper_->RegisterUser(kTestUsers[2]);
73 StartupUtils::MarkOobeCompleted(); 86 StartupUtils::MarkOobeCompleted();
74 } 87 }
75 88
76 IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, CancelAdding) { 89 IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, CancelAdding) {
77 EXPECT_CALL(login_utils(), DoBrowserLaunch(_, _)).Times(1); 90 EXPECT_CALL(login_manager_test_helper_->login_utils(),
91 DoBrowserLaunch(_, _)).Times(1);
78 EXPECT_EQ(3u, UserManager::Get()->GetUsers().size()); 92 EXPECT_EQ(3u, UserManager::Get()->GetUsers().size());
79 EXPECT_EQ(0u, UserManager::Get()->GetLoggedInUsers().size()); 93 EXPECT_EQ(0u, UserManager::Get()->GetLoggedInUsers().size());
80 94
81 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_PRIMARY, 95 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_PRIMARY,
82 ash::Shell::GetInstance()->session_state_delegate()-> 96 ash::Shell::GetInstance()->session_state_delegate()->
83 GetSessionState()); 97 GetSessionState());
84 98
85 LoginUser(kTestUsers[0]); 99 login_manager_test_helper_->LogInUser(kTestUsers[0]);
86 EXPECT_EQ(1u, UserManager::Get()->GetLoggedInUsers().size()); 100 EXPECT_EQ(1u, UserManager::Get()->GetLoggedInUsers().size());
87 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE, 101 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE,
88 ash::Shell::GetInstance()->session_state_delegate()-> 102 ash::Shell::GetInstance()->session_state_delegate()->
89 GetSessionState()); 103 GetSessionState());
90 104
91 UserAddingScreen::Get()->Start(); 105 UserAddingScreen::Get()->Start();
92 content::RunAllPendingInMessageLoop(); 106 content::RunAllPendingInMessageLoop();
93 EXPECT_EQ(1, user_adding_started()); 107 EXPECT_EQ(1, user_adding_started());
94 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_SECONDARY, 108 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_SECONDARY,
95 ash::Shell::GetInstance()->session_state_delegate()-> 109 ash::Shell::GetInstance()->session_state_delegate()->
96 GetSessionState()); 110 GetSessionState());
97 111
98 UserAddingScreen::Get()->Cancel(); 112 UserAddingScreen::Get()->Cancel();
99 content::RunAllPendingInMessageLoop(); 113 content::RunAllPendingInMessageLoop();
100 EXPECT_EQ(1, user_adding_finished()); 114 EXPECT_EQ(1, user_adding_finished());
101 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE, 115 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE,
102 ash::Shell::GetInstance()->session_state_delegate()-> 116 ash::Shell::GetInstance()->session_state_delegate()->
103 GetSessionState()); 117 GetSessionState());
104 118
105 EXPECT_TRUE(LoginDisplayHostImpl::default_host() == NULL); 119 EXPECT_TRUE(LoginDisplayHostImpl::default_host() == NULL);
106 EXPECT_EQ(1u, UserManager::Get()->GetLoggedInUsers().size()); 120 EXPECT_EQ(1u, UserManager::Get()->GetLoggedInUsers().size());
107 EXPECT_EQ(kTestUsers[0], UserManager::Get()->GetActiveUser()->email()); 121 EXPECT_EQ(kTestUsers[0], UserManager::Get()->GetActiveUser()->email());
108 } 122 }
109 123
110 IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, PRE_AddingSeveralUsers) { 124 IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, PRE_AddingSeveralUsers) {
111 RegisterUser(kTestUsers[0]); 125 login_manager_test_helper_->RegisterUser(kTestUsers[0]);
112 RegisterUser(kTestUsers[1]); 126 login_manager_test_helper_->RegisterUser(kTestUsers[1]);
113 RegisterUser(kTestUsers[2]); 127 login_manager_test_helper_->RegisterUser(kTestUsers[2]);
114 StartupUtils::MarkOobeCompleted(); 128 StartupUtils::MarkOobeCompleted();
115 } 129 }
116 130
117 IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, AddingSeveralUsers) { 131 IN_PROC_BROWSER_TEST_F(UserAddingScreenTest, AddingSeveralUsers) {
118 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_PRIMARY, 132 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_PRIMARY,
119 ash::Shell::GetInstance()->session_state_delegate()-> 133 ash::Shell::GetInstance()->session_state_delegate()->
120 GetSessionState()); 134 GetSessionState());
121 EXPECT_CALL(login_utils(), DoBrowserLaunch(_, _)).Times(3); 135 EXPECT_CALL(login_manager_test_helper_->login_utils(),
122 LoginUser(kTestUsers[0]); 136 DoBrowserLaunch(_, _)).Times(3);
137 login_manager_test_helper_->LogInUser(kTestUsers[0]);
123 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE, 138 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE,
124 ash::Shell::GetInstance()->session_state_delegate()-> 139 ash::Shell::GetInstance()->session_state_delegate()->
125 GetSessionState()); 140 GetSessionState());
126 141
127 UserManager* user_manager = UserManager::Get(); 142 UserManager* user_manager = UserManager::Get();
128 143
129 for (int i = 1; i < 3; ++i) { 144 for (int i = 1; i < 3; ++i) {
130 UserAddingScreen::Get()->Start(); 145 UserAddingScreen::Get()->Start();
131 content::RunAllPendingInMessageLoop(); 146 content::RunAllPendingInMessageLoop();
132 EXPECT_EQ(i, user_adding_started()); 147 EXPECT_EQ(i, user_adding_started());
133 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_SECONDARY, 148 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_LOGIN_SECONDARY,
134 ash::Shell::GetInstance()->session_state_delegate()-> 149 ash::Shell::GetInstance()->session_state_delegate()->
135 GetSessionState()); 150 GetSessionState());
136 AddUser(kTestUsers[i]); 151 login_manager_test_helper_->AddUser(kTestUsers[i]);
137 EXPECT_EQ(i, user_adding_finished()); 152 EXPECT_EQ(i, user_adding_finished());
138 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE, 153 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE,
139 ash::Shell::GetInstance()->session_state_delegate()-> 154 ash::Shell::GetInstance()->session_state_delegate()->
140 GetSessionState()); 155 GetSessionState());
141 EXPECT_TRUE(LoginDisplayHostImpl::default_host() == NULL); 156 EXPECT_TRUE(LoginDisplayHostImpl::default_host() == NULL);
142 ASSERT_EQ(unsigned(i + 1), user_manager->GetLoggedInUsers().size()); 157 ASSERT_EQ(unsigned(i + 1), user_manager->GetLoggedInUsers().size());
143 } 158 }
144 159
145 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE, 160 EXPECT_EQ(ash::SessionStateDelegate::SESSION_STATE_ACTIVE,
146 ash::Shell::GetInstance()->session_state_delegate()-> 161 ash::Shell::GetInstance()->session_state_delegate()->
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 // not be listed on screen lock. 222 // not be listed on screen lock.
208 prefs3->SetString(prefs::kMultiProfileUserBehavior, 223 prefs3->SetString(prefs::kMultiProfileUserBehavior,
209 MultiProfileUserController::kBehaviorNotAllowed); 224 MultiProfileUserController::kBehaviorNotAllowed);
210 unlock_users = user_manager->GetUnlockUsers(); 225 unlock_users = user_manager->GetUnlockUsers();
211 ASSERT_EQ(2UL, unlock_users.size()); 226 ASSERT_EQ(2UL, unlock_users.size());
212 for (int i = 0; i < 2; ++i) 227 for (int i = 0; i < 2; ++i)
213 EXPECT_EQ(kTestUsers[i], unlock_users[i]->email()); 228 EXPECT_EQ(kTestUsers[i], unlock_users[i]->email());
214 } 229 }
215 230
216 } // namespace chromeos 231 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698