Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / fake_login_utils.h
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 #include "chromeos/login/auth/user_context.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 RespectLocalePreference(Profile*,
25                                        const base::Closure& callback) OVERRIDE;
26   virtual void DoBrowserLaunch(Profile* profile,
27                                LoginDisplayHost* login_host) OVERRIDE;
28   virtual void PrepareProfile(const UserContext& user_context,
29                               bool has_cookies,
30                               bool has_active_session,
31                               LoginUtils::Delegate* delegate) OVERRIDE;
32   virtual void DelegateDeleted(LoginUtils::Delegate* delegate) OVERRIDE;
33   virtual void CompleteOffTheRecordLogin(const GURL& start_url) OVERRIDE;
34   virtual scoped_refptr<Authenticator> CreateAuthenticator(
35       AuthStatusConsumer* consumer) OVERRIDE;
36   virtual bool RestartToApplyPerSessionFlagsIfNeed(Profile* profile,
37                                                    bool early_restart) OVERRIDE;
38
39   void SetExpectedCredentials(const UserContext& user_context);
40   void set_should_launch_browser(bool should_launch_browser) {
41     should_launch_browser_ = should_launch_browser;
42   }
43
44  private:
45   scoped_refptr<Authenticator> authenticator_;
46   UserContext expected_user_context_;
47   bool should_launch_browser_;
48
49   DISALLOW_COPY_AND_ASSIGN(FakeLoginUtils);
50 };
51
52 }  // namespace chromeos
53
54 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_FAKE_LOGIN_UTILS_H_