1 // Copyright (c) 2012 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_SIGNIN_FAKE_SIGNIN_MANAGER_H_ 6 #define CHROME_BROWSER_SIGNIN_FAKE_SIGNIN_MANAGER_H_ 7 8 #include <string> 9 10 #include "base/compiler_specific.h" 11 #include "components/signin/core/browser/signin_manager.h" 12 #include "components/signin/core/browser/signin_metrics.h" 13 14 namespace content { 15 class BrowserContext; 16 } 17 18 class Profile; 19 20 // SigninManager to use for testing. Tests should use the type 21 // SigninManagerForTesting to ensure that the right type for their platform is 22 // used. 23 24 // Overrides InitTokenService to do-nothing in tests. 25 class FakeSigninManagerBase : public SigninManagerBase { 26 public: 27 explicit FakeSigninManagerBase(Profile* profile); 28 virtual ~FakeSigninManagerBase(); 29 30 // Helper function to be used with 31 // KeyedService::SetTestingFactory(). In order to match 32 // the API of SigninManagerFactory::GetForProfile(), returns a 33 // FakeSigninManagerBase* on ChromeOS, and a FakeSigninManager* on all other 34 // platforms. The returned instance is initialized. 35 static KeyedService* Build(content::BrowserContext* context); 36 }; 37 38 #if !defined(OS_CHROMEOS) 39 40 // A signin manager that bypasses actual authentication routines with servers 41 // and accepts the credentials provided to StartSignIn. 42 class FakeSigninManager : public SigninManager { 43 public: 44 explicit FakeSigninManager(Profile* profile); 45 virtual ~FakeSigninManager(); 46 47 void set_auth_in_progress(const std::string& username) { 48 possibly_invalid_username_ = username; 49 } 50 51 void set_password(const std::string& password) { password_ = password; } 52 53 void SignIn(const std::string& username, const std::string& password); 54 55 void FailSignin(const GoogleServiceAuthError& error); 56 57 virtual void StartSignInWithRefreshToken( 58 const std::string& refresh_token, 59 const std::string& username, 60 const std::string& password, 61 const OAuthTokenFetchedCallback& oauth_fetched_callback) OVERRIDE; 62 63 virtual void SignOut(signin_metrics::ProfileSignout signout_source_metric) 64 OVERRIDE; 65 66 virtual void CompletePendingSignin() OVERRIDE; 67 68 virtual void AddMergeSessionObserver( 69 MergeSessionHelper::Observer* observer) OVERRIDE; 70 virtual void RemoveMergeSessionObserver( 71 MergeSessionHelper::Observer* observer) OVERRIDE; 72 73 void NotifyMergeSessionObservers(const GoogleServiceAuthError& error); 74 75 private: 76 ObserverList<MergeSessionHelper::Observer, true> merge_session_observer_list_; 77 }; 78 79 #endif // !defined (OS_CHROMEOS) 80 81 #if defined(OS_CHROMEOS) 82 typedef FakeSigninManagerBase FakeSigninManagerForTesting; 83 #else 84 typedef FakeSigninManager FakeSigninManagerForTesting; 85 #endif 86 87 #endif // CHROME_BROWSER_SIGNIN_FAKE_SIGNIN_MANAGER_H_ 88