• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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