blob: 6a6bc6d6e6858eb14e785ad4f2ea688cf367414f [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/chromeos/login/auth/mock_authenticator.h"
#include "base/bind.h"
#include "base/logging.h"
#include "content/public/browser/browser_thread.h"
using content::BrowserThread;
namespace chromeos {
MockAuthenticator::MockAuthenticator(AuthStatusConsumer* consumer,
const UserContext& expected_user_context)
: Authenticator(consumer), expected_user_context_(expected_user_context) {
}
void MockAuthenticator::CompleteLogin(Profile* profile,
const UserContext& user_context) {
if (expected_user_context_ != user_context)
NOTREACHED();
OnAuthSuccess();
}
void MockAuthenticator::AuthenticateToLogin(Profile* profile,
const UserContext& user_context) {
if (user_context == expected_user_context_) {
BrowserThread::PostTask(
BrowserThread::UI,
FROM_HERE,
base::Bind(&MockAuthenticator::OnAuthSuccess, this));
return;
}
GoogleServiceAuthError error(
GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
BrowserThread::PostTask(
BrowserThread::UI,
FROM_HERE,
base::Bind(&MockAuthenticator::OnAuthFailure,
this,
AuthFailure::FromNetworkAuthFailure(error)));
}
void MockAuthenticator::AuthenticateToUnlock(
const UserContext& user_context) {
AuthenticateToLogin(NULL /* not used */, user_context);
}
void MockAuthenticator::LoginAsLocallyManagedUser(
const UserContext& user_context) {
UserContext new_user_context = user_context;
new_user_context.SetUserIDHash(user_context.GetUserID());
consumer_->OnAuthSuccess(new_user_context);
}
void MockAuthenticator::LoginRetailMode() {
UserContext user_context("demo-mode");
user_context.SetUserIDHash("demo-mode");
consumer_->OnRetailModeAuthSuccess(user_context);
}
void MockAuthenticator::LoginOffTheRecord() {
consumer_->OnOffTheRecordAuthSuccess();
}
void MockAuthenticator::LoginAsPublicAccount(const std::string& username) {
UserContext user_context(expected_user_context_.GetUserID());
user_context.SetUserIDHash(expected_user_context_.GetUserID());
consumer_->OnAuthSuccess(user_context);
}
void MockAuthenticator::LoginAsKioskAccount(const std::string& app_user_id,
bool use_guest_mount) {
UserContext user_context(expected_user_context_.GetUserID());
user_context.SetUserIDHash(expected_user_context_.GetUserID());
consumer_->OnAuthSuccess(user_context);
}
void MockAuthenticator::OnRetailModeAuthSuccess() {
UserContext user_context(expected_user_context_.GetUserID());
user_context.SetUserIDHash(expected_user_context_.GetUserID());
consumer_->OnRetailModeAuthSuccess(user_context);
}
void MockAuthenticator::OnAuthSuccess() {
// If we want to be more like the real thing, we could save the user ID
// in AuthenticateToLogin, but there's not much of a point.
UserContext user_context(expected_user_context_);
user_context.SetUserIDHash(expected_user_context_.GetUserID());
consumer_->OnAuthSuccess(user_context);
}
void MockAuthenticator::OnAuthFailure(const AuthFailure& failure) {
consumer_->OnAuthFailure(failure);
}
void MockAuthenticator::RecoverEncryptedData(const std::string& old_password) {
}
void MockAuthenticator::ResyncEncryptedData() {
}
void MockAuthenticator::SetExpectedCredentials(
const UserContext& user_context) {
expected_user_context_ = user_context;
}
MockAuthenticator::~MockAuthenticator() {
}
} // namespace chromeos