Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / auth / test_attempt_state.h
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 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_AUTH_TEST_ATTEMPT_STATE_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_AUTH_TEST_ATTEMPT_STATE_H_
7
8 #include "base/compiler_specific.h"
9 #include "chrome/browser/chromeos/login/auth/auth_attempt_state.h"
10 #include "chrome/browser/chromeos/login/auth/login_status_consumer.h"
11 #include "google_apis/gaia/gaia_auth_consumer.h"
12
13 namespace chromeos {
14
15 class UserContext;
16
17 class TestAttemptState : public AuthAttemptState {
18  public:
19   TestAttemptState(const UserContext& credentials, const bool user_is_new);
20
21   virtual ~TestAttemptState();
22
23   // Act as though an online login attempt completed already.
24   void PresetOnlineLoginStatus(
25       const LoginFailure& outcome);
26
27   // The next attempt will not allow HOSTED accounts to log in.
28   void DisableHosted();
29
30   // Act as though an cryptohome login attempt completed already.
31   void PresetCryptohomeStatus(bool cryptohome_outcome,
32                               cryptohome::MountError cryptohome_code);
33
34   // To allow state to be queried on the main thread during tests.
35   virtual bool online_complete() OVERRIDE;
36   virtual const LoginFailure& online_outcome() OVERRIDE;
37   virtual bool is_first_time_user() OVERRIDE;
38   virtual GaiaAuthFetcher::HostedAccountsSetting hosted_policy() OVERRIDE;
39   virtual bool cryptohome_complete() OVERRIDE;
40   virtual bool cryptohome_outcome() OVERRIDE;
41   virtual cryptohome::MountError cryptohome_code() OVERRIDE;
42
43  private:
44   DISALLOW_COPY_AND_ASSIGN(TestAttemptState);
45 };
46
47 }  // namespace chromeos
48
49 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_AUTH_TEST_ATTEMPT_STATE_H_