fake_login_utils.cc revision 7d4cd473f85ac64c3747c96c277f9e506a0d2246
17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file. 47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/browser/chromeos/login/fake_login_utils.h" 67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/command_line.h" 87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/path_service.h" 97d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/browser/browser_process.h" 107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/browser/chromeos/login/login_display_host.h" 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/browser/chromeos/login/mock_authenticator.h" 127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/browser/first_run/first_run.h" 137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/browser/profiles/profile_manager.h" 147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/browser/ui/startup/startup_browser_creator.h" 157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/common/chrome_constants.h" 167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/common/chrome_paths.h" 177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "chrome/test/base/testing_profile.h" 187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace chromeos { 217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)FakeLoginUtils::FakeLoginUtils() : should_launch_browser_(false) {} 237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)FakeLoginUtils::~FakeLoginUtils() {} 257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 267d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeLoginUtils::DoBrowserLaunch(Profile* profile, 277d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) LoginDisplayHost* login_host) { 287d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) if (should_launch_browser_) { 297d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) StartupBrowserCreator browser_creator; 307d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) chrome::startup::IsFirstRun first_run = 317d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) first_run::IsChromeFirstRun() ? chrome::startup::IS_FIRST_RUN 327d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) : chrome::startup::IS_NOT_FIRST_RUN; 337d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) ASSERT_TRUE( 347d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) browser_creator.LaunchBrowser(*CommandLine::ForCurrentProcess(), 357d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) profile, 367d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::FilePath(), 377d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) chrome::startup::IS_PROCESS_STARTUP, 387d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) first_run, 397d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) NULL)); 407d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 417d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) if (login_host) 427d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) login_host->Finalize(); 437d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 447d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeLoginUtils::PrepareProfile(const UserContext& user_context, 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const std::string& display_email, 477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) bool using_oauth, 487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) bool has_cookies, 497d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) bool has_active_session, 507d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) LoginUtils::Delegate* delegate) { 517d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) UserManager::Get()->UserLoggedIn( 527d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) user_context.username, user_context.username_hash, false); 537d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Profile* profile; 547d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) if (should_launch_browser_) { 557d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) profile = CreateProfile(user_context.username); 567d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } else { 577d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) profile = new TestingProfile(); 587d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) g_browser_process->profile_manager()-> 597d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) RegisterTestingProfile(profile, false, false); 607d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 617d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) if (delegate) 627d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) delegate->OnProfilePrepared(profile); 637d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 647d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 657d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeLoginUtils::DelegateDeleted(LoginUtils::Delegate* delegate) { 667d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) NOTREACHED() << "Method not implemented."; 677d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 687d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 697d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeLoginUtils::CompleteOffTheRecordLogin(const GURL& start_url) { 707d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) NOTREACHED() << "Method not implemented."; 717d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 727d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 737d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeLoginUtils::SetFirstLoginPrefs(PrefService* prefs) { 747d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) NOTREACHED() << "Method not implemented."; 757d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 767d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 777d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)scoped_refptr<Authenticator> FakeLoginUtils::CreateAuthenticator( 787d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) LoginStatusConsumer* consumer) { 797d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) authenticator_ = 807d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) new MockAuthenticator(consumer, expected_username_, expected_password_); 817d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return authenticator_; 827d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 837d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 847d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeLoginUtils::RestoreAuthenticationSession(Profile* profile) { 857d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) NOTREACHED() << "Method not implemented."; 867d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 877d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 887d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeLoginUtils::StopBackgroundFetchers() { 897d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) NOTREACHED() << "Method not implemented."; 907d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 917d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 927d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeLoginUtils::InitRlzDelayed(Profile* user_profile) { 937d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) NOTREACHED() << "Method not implemented."; 947d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 957d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 967d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)Profile* FakeLoginUtils::CreateProfile(const std::string& username_hash) { 977d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) base::FilePath path; 987d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) PathService::Get(chrome::DIR_USER_DATA, &path); 997d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) path = path.AppendASCII(chrome::kProfileDirPrefix + username_hash); 1007d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Profile* profile = g_browser_process->profile_manager()->GetProfile(path); 1017d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) return profile; 1027d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1037d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1047d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)void FakeLoginUtils::SetExpectedCredentials(const std::string& username, 1057d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) const std::string& password) { 1067d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) expected_username_ = username; 1077d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) expected_password_ = password; 1087d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) if (authenticator_.get()) { 1097d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) static_cast<MockAuthenticator*>(authenticator_.get())-> 1107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) SetExpectedCredentials(username, password); 1117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) } 1127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} 1137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 1147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)} // namespace chromeos 115