1// Copyright (c) 2010 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#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_TEST_ATTEMPT_STATE_H_ 6#define CHROME_BROWSER_CHROMEOS_LOGIN_TEST_ATTEMPT_STATE_H_ 7#pragma once 8 9#include <string> 10 11#include "chrome/browser/chromeos/login/auth_attempt_state.h" 12#include "chrome/browser/chromeos/login/login_status_consumer.h" 13#include "chrome/common/net/gaia/gaia_auth_consumer.h" 14 15namespace chromeos { 16 17class TestAttemptState : public AuthAttemptState { 18 public: 19 TestAttemptState(const std::string& username, 20 const std::string& password, 21 const std::string& ascii_hash, 22 const std::string& login_token, 23 const std::string& login_captcha, 24 const bool user_is_new); 25 26 TestAttemptState(const std::string& username, const std::string& ascii_hash); 27 28 virtual ~TestAttemptState(); 29 30 // Act as though an online login attempt completed already. 31 void PresetOnlineLoginStatus( 32 const GaiaAuthConsumer::ClientLoginResult& credentials, 33 const LoginFailure& outcome); 34 35 // The next attempt will not allow HOSTED accounts to log in. 36 void DisableHosted(); 37 38 // Act as though an cryptohome login attempt completed already. 39 void PresetCryptohomeStatus(bool cryptohome_outcome, int cryptohome_code); 40 41 // To allow state to be queried on the main thread during tests. 42 virtual bool online_complete() { return online_complete_; } 43 virtual const LoginFailure& online_outcome() { return online_outcome_; } 44 virtual const GaiaAuthConsumer::ClientLoginResult& credentials() { 45 return credentials_; 46 } 47 virtual bool is_first_time_user() { return is_first_time_user_; } 48 virtual GaiaAuthFetcher::HostedAccountsSetting hosted_policy() { 49 return hosted_policy_; 50 } 51 52 virtual bool cryptohome_complete() { return cryptohome_complete_; } 53 virtual bool cryptohome_outcome() { return cryptohome_outcome_; } 54 virtual int cryptohome_code() { return cryptohome_code_; } 55 56 private: 57 DISALLOW_COPY_AND_ASSIGN(TestAttemptState); 58}; 59 60} // namespace chromeos 61 62#endif // CHROME_BROWSER_CHROMEOS_LOGIN_TEST_ATTEMPT_STATE_H_ 63