fake_login_utils.h revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_ 6#define CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_ 7 8#include "chrome/browser/chromeos/login/login_utils.h" 9 10namespace chromeos { 11 12// This class emulates behavior of LoginUtils for browser tests. 13// It provides: 14// * Fake authentication. You can configure expected usernames and password for 15// next auth attempt. 16// * Preparing of profiles for authenticated users. 17// * Launching browser for user, if |should_launch_browser_| set. 18// * Correct communication with LoginDisplayHost and UserManager. 19class FakeLoginUtils : public LoginUtils { 20 public: 21 FakeLoginUtils(); 22 virtual ~FakeLoginUtils(); 23 virtual void DoBrowserLaunch(Profile* profile, 24 LoginDisplayHost* login_host) OVERRIDE; 25 virtual void PrepareProfile(const UserContext& user_context, 26 const std::string& display_email, 27 bool has_cookies, 28 bool has_active_session, 29 LoginUtils::Delegate* delegate) OVERRIDE; 30 virtual void DelegateDeleted(LoginUtils::Delegate* delegate) OVERRIDE; 31 virtual void CompleteOffTheRecordLogin(const GURL& start_url) OVERRIDE; 32 virtual void SetFirstLoginPrefs(PrefService* prefs) OVERRIDE; 33 virtual scoped_refptr<Authenticator> CreateAuthenticator( 34 LoginStatusConsumer* consumer) OVERRIDE; 35 virtual void RestoreAuthenticationSession(Profile* profile) OVERRIDE; 36 virtual void InitRlzDelayed(Profile* user_profile) OVERRIDE; 37 virtual void StartCertLoader(Profile* user_profile) OVERRIDE; 38 39 void SetExpectedCredentials(const std::string& username, 40 const std::string& password); 41 void set_should_launch_browser(bool should_launch_browser) { 42 should_launch_browser_ = should_launch_browser; 43 } 44 45 private: 46 Profile* CreateProfile(const std::string& username_hash); 47 48 scoped_refptr<Authenticator> authenticator_; 49 std::string expected_username_; 50 std::string expected_password_; 51 bool should_launch_browser_; 52 53 DISALLOW_COPY_AND_ASSIGN(FakeLoginUtils); 54}; 55 56} // namespace chromeos 57 58#endif // CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_ 59