1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef CHROMEOS_LOGIN_AUTH_MOCK_AUTHENTICATOR_H_
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define CHROMEOS_LOGIN_AUTH_MOCK_AUTHENTICATOR_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/message_loop/message_loop_proxy.h"
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chromeos/chromeos_export.h"
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "chromeos/login/auth/authenticator.h"
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chromeos/login/auth/user_context.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Profile;
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chromeos {
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass AuthStatusConsumer;
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class CHROMEOS_EXPORT MockAuthenticator : public Authenticator {
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  MockAuthenticator(AuthStatusConsumer* consumer,
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)                    const UserContext& expected_user_context);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  // Authenticator:
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void CompleteLogin(Profile* profile,
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)                             const UserContext& user_context) OVERRIDE;
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual void AuthenticateToLogin(Profile* profile,
317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                                   const UserContext& user_context) OVERRIDE;
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  virtual void AuthenticateToUnlock(const UserContext& user_context) OVERRIDE;
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual void LoginAsSupervisedUser(const UserContext& user_context) OVERRIDE;
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void LoginRetailMode() OVERRIDE;
35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void LoginOffTheRecord() OVERRIDE;
365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual void LoginAsPublicSession(const UserContext& user_context) OVERRIDE;
37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  virtual void LoginAsKioskAccount(const std::string& app_user_id,
38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch                                   bool use_guest_mount) OVERRIDE;
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void OnRetailModeAuthSuccess() OVERRIDE;
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void OnAuthSuccess() OVERRIDE;
41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  virtual void OnAuthFailure(const AuthFailure& failure) OVERRIDE;
425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual void RecoverEncryptedData(const std::string& old_password) OVERRIDE;
43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void ResyncEncryptedData() OVERRIDE;
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual void SetExpectedCredentials(const UserContext& user_context);
467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected:
48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  virtual ~MockAuthenticator();
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  UserContext expected_user_context_;
525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  scoped_refptr<base::MessageLoopProxy> message_loop_;
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(MockAuthenticator);
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace chromeos
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif  // CHROMEOS_LOGIN_AUTH_MOCK_AUTHENTICATOR_H_
60