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

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: Delete added. 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
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
45 for (size_t i = 0; i < arraysize(kUsers); ++i) { 52 for (size_t i = 0; i < arraysize(kUsersPublic); ++i)
46 const std::string user_email(kUsers[i]); 53 fake_user_manager_->AddPublicAccountUser(kUsersPublic[i]);
47 fake_user_manager_->AddUser(user_email); 54
48 } 55 for (size_t i = 0; i < arraysize(kUsers); ++i)
49 fake_user_manager_->set_owner_email(kUsers[2]); 56 fake_user_manager_->AddUser(kUsers[i]);
57
58 fake_user_manager_->set_owner_email(kOwner);
50 } 59 }
51 60
52 virtual void TearDown() OVERRIDE { 61 virtual void TearDown() OVERRIDE {
53 controller_.reset(); 62 controller_.reset();
54 profile_manager_.reset(); 63 profile_manager_.reset();
55 } 64 }
56 65
57 // MultiProfileUserControllerDelegate overrides: 66 // MultiProfileUserControllerDelegate overrides:
58 virtual void OnUserNotAllowed(const std::string& user_email) OVERRIDE { 67 virtual void OnUserNotAllowed(const std::string& user_email) OVERRIDE {
59 } 68 }
60 69
61 FakeUserManager* fake_user_manager_; 70 FakeUserManager* fake_user_manager_;
62 ScopedUserManagerEnabler user_manager_enabler_; 71 ScopedUserManagerEnabler user_manager_enabler_;
63 scoped_ptr<TestingProfileManager> profile_manager_; 72 scoped_ptr<TestingProfileManager> profile_manager_;
64 std::map<std::string, 73 std::map<std::string,
65 ScreenlockBridge::LockHandler::AuthType> user_auth_type_map; 74 ScreenlockBridge::LockHandler::AuthType> user_auth_type_map;
66 scoped_ptr<MultiProfileUserController> controller_; 75 scoped_ptr<MultiProfileUserController> controller_;
67 76
68 DISALLOW_COPY_AND_ASSIGN(SigninPrepareUserListTest); 77 DISALLOW_COPY_AND_ASSIGN(SigninPrepareUserListTest);
69 }; 78 };
70 79
71 TEST_F(SigninPrepareUserListTest, BasicList) { 80 TEST_F(SigninPrepareUserListTest, AlwaysKeepOwnerInList) {
81 EXPECT_LT(kMaxUsers, fake_user_manager_->GetUsers().size());
72 UserList users_to_send = UserSelectionScreen::PrepareUserListForSending( 82 UserList users_to_send = UserSelectionScreen::PrepareUserListForSending(
73 fake_user_manager_->GetUsers(), 83 fake_user_manager_->GetUsers(),
74 kOwner, 84 kOwner,
75 true /* is signin to add */); 85 true /* is signin to add */);
76 86
77 size_t list_length = 3; 87 EXPECT_EQ(kMaxUsers, users_to_send.size());
78 EXPECT_EQ(list_length, users_to_send.size()); 88 EXPECT_EQ(kOwner, users_to_send.back()->email());
89
90 fake_user_manager_->RemoveUserFromList("a16@gmail.com");
91 fake_user_manager_->RemoveUserFromList("a17@gmail.com");
92 users_to_send = UserSelectionScreen::PrepareUserListForSending(
93 fake_user_manager_->GetUsers(),
94 kOwner,
95 true /* is signin to add */);
96
97 EXPECT_EQ(kMaxUsers, users_to_send.size());
98 EXPECT_EQ("a18@gmail.com", users_to_send.back()->email());
99 EXPECT_EQ(kOwner, users_to_send[kMaxUsers-2]->email());
100 }
101
102 TEST_F(SigninPrepareUserListTest, PublicAccounts) {
103 UserList users_to_send = UserSelectionScreen::PrepareUserListForSending(
104 fake_user_manager_->GetUsers(),
105 kOwner,
106 true /* is signin to add */);
107
108 EXPECT_EQ(kMaxUsers, users_to_send.size());
109 EXPECT_EQ("a0@gmail.com", users_to_send.front()->email());
110
111 users_to_send = UserSelectionScreen::PrepareUserListForSending(
112 fake_user_manager_->GetUsers(),
113 kOwner,
114 false /* is signin to add */);
115
116 EXPECT_EQ(kMaxUsers, users_to_send.size());
117 EXPECT_EQ("public0@gmail.com", users_to_send.front()->email());
79 } 118 }
80 119
81 } // namespace chromeos 120 } // 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