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.
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_
8 #include "chrome/browser/chromeos/login/login_utils.h"
12 // This class emulates behavior of LoginUtils for browser tests.
14 // * Fake authentication. You can configure expected usernames and password for
16 // * Preparing of profiles for authenticated users.
17 // * Launching browser for user, if |should_launch_browser_| set.
18 // * Correct communication with LoginDisplayHost and UserManager.
19 class FakeLoginUtils
: public LoginUtils
{
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
,
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
;
38 void SetExpectedCredentials(const std::string
& username
,
39 const std::string
& password
);
40 void set_should_launch_browser(bool should_launch_browser
) {
41 should_launch_browser_
= should_launch_browser
;
45 Profile
* CreateProfile(const std::string
& username_hash
);
47 scoped_refptr
<Authenticator
> authenticator_
;
48 std::string expected_username_
;
49 std::string expected_password_
;
50 bool should_launch_browser_
;
52 DISALLOW_COPY_AND_ASSIGN(FakeLoginUtils
);
55 } // namespace chromeos
57 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_