• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
15 namespace chromeos {
16 
17 class 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.
online_complete()42   virtual bool online_complete() { return online_complete_; }
online_outcome()43   virtual const LoginFailure& online_outcome() { return online_outcome_; }
credentials()44   virtual const GaiaAuthConsumer::ClientLoginResult& credentials() {
45     return credentials_;
46   }
is_first_time_user()47   virtual bool is_first_time_user() { return is_first_time_user_; }
hosted_policy()48   virtual GaiaAuthFetcher::HostedAccountsSetting hosted_policy() {
49     return hosted_policy_;
50   }
51 
cryptohome_complete()52   virtual bool cryptohome_complete() { return cryptohome_complete_; }
cryptohome_outcome()53   virtual bool cryptohome_outcome() { return cryptohome_outcome_; }
cryptohome_code()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