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 3 // found in the LICENSE file. 4 5 #include "base/compiler_specific.h" 6 #include "chrome/browser/chromeos/login/screens/user_selection_screen.h" 7 #include "chrome/browser/chromeos/login/users/fake_user_manager.h" 8 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller.h" 9 #include "chrome/browser/chromeos/login/users/multi_profile_user_controller_delegate.h" 10 #include "chrome/browser/chromeos/login/users/user.h" 11 #include "chrome/browser/signin/screenlock_bridge.h" 12 #include "chrome/test/base/testing_browser_process.h" 13 #include "chrome/test/base/testing_profile_manager.h" 14 #include "testing/gtest/include/gtest/gtest.h" 15 16 namespace { 17 18 const char* kOwner = "owner (at) gmail.com"; 19 const char* kUsers[] = {"a (at) gmail.com", "b (at) gmail.com", kOwner}; 20 21 } // namespace 22 23 namespace chromeos { 24 25 class SigninPrepareUserListTest 26 : public testing::Test, 27 public MultiProfileUserControllerDelegate { 28 public: 29 SigninPrepareUserListTest() 30 : fake_user_manager_(new FakeUserManager()), 31 user_manager_enabler_(fake_user_manager_) { 32 } 33 34 virtual ~SigninPrepareUserListTest() { 35 } 36 37 virtual void SetUp() OVERRIDE { 38 profile_manager_.reset( 39 new TestingProfileManager(TestingBrowserProcess::GetGlobal())); 40 ASSERT_TRUE(profile_manager_->SetUp()); 41 controller_.reset(new MultiProfileUserController( 42 this, TestingBrowserProcess::GetGlobal()->local_state())); 43 fake_user_manager_->set_multi_profile_user_controller(controller_.get()); 44 45 for (size_t i = 0; i < arraysize(kUsers); ++i) { 46 const std::string user_email(kUsers[i]); 47 fake_user_manager_->AddUser(user_email); 48 } 49 fake_user_manager_->set_owner_email(kUsers[2]); 50 } 51 52 virtual void TearDown() OVERRIDE { 53 controller_.reset(); 54 profile_manager_.reset(); 55 } 56 57 // MultiProfileUserControllerDelegate overrides: 58 virtual void OnUserNotAllowed(const std::string& user_email) OVERRIDE { 59 } 60 61 FakeUserManager* fake_user_manager_; 62 ScopedUserManagerEnabler user_manager_enabler_; 63 scoped_ptr<TestingProfileManager> profile_manager_; 64 std::map<std::string, 65 ScreenlockBridge::LockHandler::AuthType> user_auth_type_map; 66 scoped_ptr<MultiProfileUserController> controller_; 67 68 DISALLOW_COPY_AND_ASSIGN(SigninPrepareUserListTest); 69 }; 70 71 TEST_F(SigninPrepareUserListTest, BasicList) { 72 UserList users_to_send = UserSelectionScreen::PrepareUserListForSending( 73 fake_user_manager_->GetUsers(), 74 kOwner, 75 true /* is signin to add */); 76 77 size_t list_length = 3; 78 EXPECT_EQ(list_length, users_to_send.size()); 79 } 80 81 } // namespace chromeos 82