• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/auth/user_context.h"
9 #include "chrome/browser/chromeos/login/login_utils.h"
10 
11 namespace chromeos {
12 
13 // This class emulates behavior of LoginUtils for browser tests.
14 // It provides:
15 //  * Fake authentication. You can configure expected usernames and password for
16 //    next auth attempt.
17 //  * Preparing of profiles for authenticated users.
18 //  * Launching browser for user, if |should_launch_browser_| set.
19 //  * Correct communication with LoginDisplayHost and UserManager.
20 class FakeLoginUtils : public LoginUtils {
21  public:
22   FakeLoginUtils();
23   virtual ~FakeLoginUtils();
24   virtual void DoBrowserLaunch(Profile* profile,
25                                LoginDisplayHost* login_host) OVERRIDE;
26   virtual void PrepareProfile(const UserContext& user_context,
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 scoped_refptr<Authenticator> CreateAuthenticator(
33       LoginStatusConsumer* consumer) OVERRIDE;
34 
35   void SetExpectedCredentials(const UserContext& user_context);
set_should_launch_browser(bool should_launch_browser)36   void set_should_launch_browser(bool should_launch_browser) {
37     should_launch_browser_ = should_launch_browser;
38   }
39 
40  private:
41   scoped_refptr<Authenticator> authenticator_;
42   UserContext expected_user_context_;
43   bool should_launch_browser_;
44 
45   DISALLOW_COPY_AND_ASSIGN(FakeLoginUtils);
46 };
47 
48 }  // namespace chromeos
49 
50 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_
51