1// Copyright 2014 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 CHROMEOS_LOGIN_AUTH_MOCK_AUTHENTICATOR_H_
6#define CHROMEOS_LOGIN_AUTH_MOCK_AUTHENTICATOR_H_
7
8#include <string>
9
10#include "base/message_loop/message_loop_proxy.h"
11#include "chromeos/chromeos_export.h"
12#include "chromeos/login/auth/authenticator.h"
13#include "chromeos/login/auth/user_context.h"
14#include "testing/gtest/include/gtest/gtest.h"
15
16class Profile;
17
18namespace chromeos {
19
20class AuthStatusConsumer;
21
22class CHROMEOS_EXPORT MockAuthenticator : public Authenticator {
23 public:
24  MockAuthenticator(AuthStatusConsumer* consumer,
25                    const UserContext& expected_user_context);
26
27  // Authenticator:
28  virtual void CompleteLogin(Profile* profile,
29                             const UserContext& user_context) OVERRIDE;
30  virtual void AuthenticateToLogin(Profile* profile,
31                                   const UserContext& user_context) OVERRIDE;
32  virtual void AuthenticateToUnlock(const UserContext& user_context) OVERRIDE;
33  virtual void LoginAsSupervisedUser(const UserContext& user_context) OVERRIDE;
34  virtual void LoginRetailMode() OVERRIDE;
35  virtual void LoginOffTheRecord() OVERRIDE;
36  virtual void LoginAsPublicSession(const UserContext& user_context) OVERRIDE;
37  virtual void LoginAsKioskAccount(const std::string& app_user_id,
38                                   bool use_guest_mount) OVERRIDE;
39  virtual void OnRetailModeAuthSuccess() OVERRIDE;
40  virtual void OnAuthSuccess() OVERRIDE;
41  virtual void OnAuthFailure(const AuthFailure& failure) OVERRIDE;
42  virtual void RecoverEncryptedData(const std::string& old_password) OVERRIDE;
43  virtual void ResyncEncryptedData() OVERRIDE;
44
45  virtual void SetExpectedCredentials(const UserContext& user_context);
46
47 protected:
48  virtual ~MockAuthenticator();
49
50 private:
51  UserContext expected_user_context_;
52  scoped_refptr<base::MessageLoopProxy> message_loop_;
53
54  DISALLOW_COPY_AND_ASSIGN(MockAuthenticator);
55};
56
57}  // namespace chromeos
58
59#endif  // CHROMEOS_LOGIN_AUTH_MOCK_AUTHENTICATOR_H_
60