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 CHROMEOS_LOGIN_AUTH_TEST_ATTEMPT_STATE_H_ 6 #define CHROMEOS_LOGIN_AUTH_TEST_ATTEMPT_STATE_H_ 7 8 #include "base/compiler_specific.h" 9 #include "chromeos/chromeos_export.h" 10 #include "chromeos/login/auth/auth_attempt_state.h" 11 #include "chromeos/login/auth/auth_status_consumer.h" 12 #include "google_apis/gaia/gaia_auth_consumer.h" 13 14 namespace chromeos { 15 16 class UserContext; 17 18 class CHROMEOS_EXPORT TestAttemptState : public AuthAttemptState { 19 public: 20 TestAttemptState(const UserContext& credentials, const bool user_is_new); 21 22 virtual ~TestAttemptState(); 23 24 // Act as though an online login attempt completed already. 25 void PresetOnlineLoginStatus(const AuthFailure& 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 AuthFailure& 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 // CHROMEOS_LOGIN_AUTH_TEST_ATTEMPT_STATE_H_ 50