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