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