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

Side by Side Diff: chrome/browser/ui/webui/chromeos/login/signin_userlist_unittest.cc

Issue 369833002: Tests added for user-listing on sign-in screen. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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
« no previous file with comments | « chrome/browser/chromeos/login/users/fake_user_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "base/compiler_specific.h" 5 #include "base/compiler_specific.h"
6 #include "chrome/browser/chromeos/login/screens/user_selection_screen.h" 6 #include "chrome/browser/chromeos/login/screens/user_selection_screen.h"
7 #include "chrome/browser/chromeos/login/users/fake_user_manager.h" 7 #include "chrome/browser/chromeos/login/users/fake_user_manager.h"
8 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" 8 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h"
9 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller_dele gate.h" 9 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller_dele gate.h"
10 #include "chrome/browser/chromeos/login/users/user.h" 10 #include "chrome/browser/chromeos/login/users/user.h"
11 #include "chrome/browser/signin/screenlock_bridge.h" 11 #include "chrome/browser/signin/screenlock_bridge.h"
12 #include "chrome/test/base/testing_browser_process.h" 12 #include "chrome/test/base/testing_browser_process.h"
13 #include "chrome/test/base/testing_profile_manager.h" 13 #include "chrome/test/base/testing_profile_manager.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 namespace { 16 namespace {
17 17
18 const size_t kMaxUsers = 18; // same as in user_selection_screen.cc
dzhioev (left Google) 2014/07/03 11:53:21 Either share this constant, or add comment in user
merkulova 2014/07/03 13:46:06 Done.
18 const char* kOwner = "owner@gmail.com"; 19 const char* kOwner = "owner@gmail.com";
19 const char* kUsers[] = {"a@gmail.com", "b@gmail.com", kOwner}; 20 const char* kUsersPublic[] = {"public0@gmail.com", "public1@gmail.com"};
21 const char* kUsers[] = {
22 "a0@gmail.com", "a1@gmail.com", "a2@gmail.com", "a3@gmail.com",
23 "a4@gmail.com", "a5@gmail.com", "a6@gmail.com", "a7@gmail.com",
24 "a8@gmail.com", "a9@gmail.com", "a10@gmail.com", "a11@gmail.com",
25 "a12@gmail.com", "a13@gmail.com", "a14@gmail.com", "a15@gmail.com",
26 "a16@gmail.com", "a17@gmail.com", kOwner, "a18@gmail.com"};
20 27
21 } // namespace 28 } // namespace
22 29
23 namespace chromeos { 30 namespace chromeos {
24 31
25 class SigninPrepareUserListTest 32 class SigninPrepareUserListTest
26 : public testing::Test, 33 : public testing::Test,
27 public MultiProfileUserControllerDelegate { 34 public MultiProfileUserControllerDelegate {
28 public: 35 public:
29 SigninPrepareUserListTest() 36 SigninPrepareUserListTest()
30 : fake_user_manager_(new FakeUserManager()), 37 : fake_user_manager_(new FakeUserManager()),
31 user_manager_enabler_(fake_user_manager_) { 38 user_manager_enabler_(fake_user_manager_) {
32 } 39 }
33 40
34 virtual ~SigninPrepareUserListTest() { 41 virtual ~SigninPrepareUserListTest() {
35 } 42 }
36 43
37 virtual void SetUp() OVERRIDE { 44 virtual void SetUp() OVERRIDE {
38 profile_manager_.reset( 45 profile_manager_.reset(
39 new TestingProfileManager(TestingBrowserProcess::GetGlobal())); 46 new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
40 ASSERT_TRUE(profile_manager_->SetUp()); 47 ASSERT_TRUE(profile_manager_->SetUp());
41 controller_.reset(new MultiProfileUserController( 48 controller_.reset(new MultiProfileUserController(
42 this, TestingBrowserProcess::GetGlobal()->local_state())); 49 this, TestingBrowserProcess::GetGlobal()->local_state()));
43 fake_user_manager_->set_multi_profile_user_controller(controller_.get()); 50 fake_user_manager_->set_multi_profile_user_controller(controller_.get());
44 51
52 for (size_t i = 0; i < arraysize(kUsersPublic); ++i) {
53 const std::string user_email(kUsersPublic[i]);
dzhioev (left Google) 2014/07/03 11:53:20 |user_email| is not needed, pass |kUsersPublic[i]|
merkulova 2014/07/03 13:46:06 Done.
54 fake_user_manager_->AddPublicAccountUser(user_email);
55 }
56
45 for (size_t i = 0; i < arraysize(kUsers); ++i) { 57 for (size_t i = 0; i < arraysize(kUsers); ++i) {
46 const std::string user_email(kUsers[i]); 58 const std::string user_email(kUsers[i]);
47 fake_user_manager_->AddUser(user_email); 59 fake_user_manager_->AddUser(user_email);
48 } 60 }
49 fake_user_manager_->set_owner_email(kUsers[2]); 61 fake_user_manager_->set_owner_email(kOwner);
50 } 62 }
51 63
52 virtual void TearDown() OVERRIDE { 64 virtual void TearDown() OVERRIDE {
53 controller_.reset(); 65 controller_.reset();
54 profile_manager_.reset(); 66 profile_manager_.reset();
55 } 67 }
56 68
57 // MultiProfileUserControllerDelegate overrides: 69 // MultiProfileUserControllerDelegate overrides:
58 virtual void OnUserNotAllowed(const std::string& user_email) OVERRIDE { 70 virtual void OnUserNotAllowed(const std::string& user_email) OVERRIDE {
59 } 71 }
60 72
61 FakeUserManager* fake_user_manager_; 73 FakeUserManager* fake_user_manager_;
62 ScopedUserManagerEnabler user_manager_enabler_; 74 ScopedUserManagerEnabler user_manager_enabler_;
63 scoped_ptr<TestingProfileManager> profile_manager_; 75 scoped_ptr<TestingProfileManager> profile_manager_;
64 std::map<std::string, 76 std::map<std::string,
65 ScreenlockBridge::LockHandler::AuthType> user_auth_type_map; 77 ScreenlockBridge::LockHandler::AuthType> user_auth_type_map;
66 scoped_ptr<MultiProfileUserController> controller_; 78 scoped_ptr<MultiProfileUserController> controller_;
67 79
68 DISALLOW_COPY_AND_ASSIGN(SigninPrepareUserListTest); 80 DISALLOW_COPY_AND_ASSIGN(SigninPrepareUserListTest);
69 }; 81 };
70 82
71 TEST_F(SigninPrepareUserListTest, BasicList) { 83 TEST_F(SigninPrepareUserListTest, AlwaysKeepOwnerInList) {
72 UserList users_to_send = UserSelectionScreen::PrepareUserListForSending( 84 UserList users_to_send = UserSelectionScreen::PrepareUserListForSending(
73 fake_user_manager_->GetUsers(), 85 fake_user_manager_->GetUsers(),
74 kOwner, 86 kOwner,
75 true /* is signin to add */); 87 true /* is signin to add */);
76 88
dzhioev (left Google) 2014/07/03 11:53:20 Add check that list returned by GetUsers has at le
merkulova 2014/07/03 13:46:06 Done.
77 size_t list_length = 3; 89 size_t list_length = kMaxUsers;
dzhioev (left Google) 2014/07/03 11:53:20 |list_length| is not needed.
merkulova 2014/07/03 13:46:06 Done.
78 EXPECT_EQ(list_length, users_to_send.size()); 90 EXPECT_EQ(list_length, users_to_send.size());
91 EXPECT_EQ(kOwner, users_to_send[kMaxUsers-1]->email());
dzhioev (left Google) 2014/07/03 11:53:20 users_to_send.back()->email()
merkulova 2014/07/03 13:46:06 Done.
92
93 fake_user_manager_->RemoveUserFromList("a16@gmail.com");
94 fake_user_manager_->RemoveUserFromList("a17@gmail.com");
95 users_to_send = UserSelectionScreen::PrepareUserListForSending(
96 fake_user_manager_->GetUsers(),
97 kOwner,
98 true /* is signin to add */);
99
100 list_length = 18;
101 EXPECT_EQ(list_length, users_to_send.size());
102 EXPECT_EQ("a18@gmail.com", users_to_send[kMaxUsers-1]->email());
103 EXPECT_EQ(kOwner, users_to_send[kMaxUsers-2]->email());
104 }
105
106 TEST_F(SigninPrepareUserListTest, PublicAccounts) {
107 UserList users_to_send = UserSelectionScreen::PrepareUserListForSending(
108 fake_user_manager_->GetUsers(),
109 kOwner,
110 true /* is signin to add */);
111 size_t list_length = kMaxUsers;
112 EXPECT_EQ(list_length, users_to_send.size());
113 EXPECT_EQ("a0@gmail.com", users_to_send[0]->email());
dzhioev (left Google) 2014/07/03 11:53:20 users_to_send.front()
merkulova 2014/07/03 13:46:06 Done.
114
115 users_to_send = UserSelectionScreen::PrepareUserListForSending(
116 fake_user_manager_->GetUsers(),
117 kOwner,
118 false /* is signin to add */);
119 EXPECT_EQ(list_length, users_to_send.size());
120 EXPECT_EQ("public0@gmail.com", users_to_send[0]->email());
dzhioev (left Google) 2014/07/03 11:53:21 users_to_send.front()
merkulova 2014/07/03 13:46:06 Done.
79 } 121 }
80 122
81 } // namespace chromeos 123 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/users/fake_user_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698