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 #include "chrome/browser/chromeos/login/auth/mock_authenticator.h"
6
7 #include "base/bind.h"
8 #include "base/logging.h"
9 #include "content/public/browser/browser_thread.h"
10
11 using content::BrowserThread;
12
13 namespace chromeos {
14
MockAuthenticator(LoginStatusConsumer * consumer,const UserContext & expected_user_context)15 MockAuthenticator::MockAuthenticator(LoginStatusConsumer* consumer,
16 const UserContext& expected_user_context)
17 : Authenticator(consumer),
18 expected_user_context_(expected_user_context) {
19 }
20
CompleteLogin(Profile * profile,const UserContext & user_context)21 void MockAuthenticator::CompleteLogin(Profile* profile,
22 const UserContext& user_context) {
23 if (expected_user_context_ != user_context)
24 NOTREACHED();
25 OnLoginSuccess();
26 }
27
AuthenticateToLogin(Profile * profile,const UserContext & user_context)28 void MockAuthenticator::AuthenticateToLogin(Profile* profile,
29 const UserContext& user_context) {
30 if (user_context == expected_user_context_) {
31 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
32 base::Bind(&MockAuthenticator::OnLoginSuccess, this));
33 return;
34 }
35 GoogleServiceAuthError error(
36 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
37 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
38 base::Bind(&MockAuthenticator::OnLoginFailure, this,
39 LoginFailure::FromNetworkAuthFailure(error)));
40 }
41
AuthenticateToUnlock(const UserContext & user_context)42 void MockAuthenticator::AuthenticateToUnlock(
43 const UserContext& user_context) {
44 AuthenticateToLogin(NULL /* not used */, user_context);
45 }
46
LoginAsLocallyManagedUser(const UserContext & user_context)47 void MockAuthenticator::LoginAsLocallyManagedUser(
48 const UserContext& user_context) {
49 UserContext new_user_context = user_context;
50 new_user_context.SetUserIDHash(user_context.GetUserID());
51 consumer_->OnLoginSuccess(new_user_context);
52 }
53
LoginRetailMode()54 void MockAuthenticator::LoginRetailMode() {
55 UserContext user_context("demo-mode");
56 user_context.SetUserIDHash("demo-mode");
57 consumer_->OnRetailModeLoginSuccess(user_context);
58 }
59
LoginOffTheRecord()60 void MockAuthenticator::LoginOffTheRecord() {
61 consumer_->OnOffTheRecordLoginSuccess();
62 }
63
LoginAsPublicAccount(const std::string & username)64 void MockAuthenticator::LoginAsPublicAccount(const std::string& username) {
65 UserContext user_context(expected_user_context_.GetUserID());
66 user_context.SetUserIDHash(expected_user_context_.GetUserID());
67 consumer_->OnLoginSuccess(user_context);
68 }
69
LoginAsKioskAccount(const std::string & app_user_id,bool use_guest_mount)70 void MockAuthenticator::LoginAsKioskAccount(const std::string& app_user_id,
71 bool use_guest_mount) {
72 UserContext user_context(expected_user_context_.GetUserID());
73 user_context.SetUserIDHash(expected_user_context_.GetUserID());
74 consumer_->OnLoginSuccess(user_context);
75 }
76
OnRetailModeLoginSuccess()77 void MockAuthenticator::OnRetailModeLoginSuccess() {
78 UserContext user_context(expected_user_context_.GetUserID());
79 user_context.SetUserIDHash(expected_user_context_.GetUserID());
80 consumer_->OnRetailModeLoginSuccess(user_context);
81 }
82
OnLoginSuccess()83 void MockAuthenticator::OnLoginSuccess() {
84 // If we want to be more like the real thing, we could save the user ID
85 // in AuthenticateToLogin, but there's not much of a point.
86 UserContext user_context(expected_user_context_);
87 user_context.SetUserIDHash(expected_user_context_.GetUserID());
88 consumer_->OnLoginSuccess(user_context);
89 }
90
OnLoginFailure(const LoginFailure & failure)91 void MockAuthenticator::OnLoginFailure(const LoginFailure& failure) {
92 consumer_->OnLoginFailure(failure);
93 }
94
RecoverEncryptedData(const std::string & old_password)95 void MockAuthenticator::RecoverEncryptedData(const std::string& old_password) {
96 }
97
ResyncEncryptedData()98 void MockAuthenticator::ResyncEncryptedData() {
99 }
100
SetExpectedCredentials(const UserContext & user_context)101 void MockAuthenticator::SetExpectedCredentials(
102 const UserContext& user_context) {
103 expected_user_context_ = user_context;
104 }
105
~MockAuthenticator()106 MockAuthenticator::~MockAuthenticator() {
107 }
108
109 } // namespace chromeos
110