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 IOS_TEST_MOCK_PROFILE_OAUTH2_TOKEN_SERVICE_PROVIDER_IOS_H_ 6 #define IOS_TEST_MOCK_PROFILE_OAUTH2_TOKEN_SERVICE_PROVIDER_IOS_H_ 7 8 #include <string> 9 #include <utility> 10 #include <vector> 11 12 #include "base/memory/scoped_ptr.h" 13 #include "ios/public/provider/components/signin/browser/profile_oauth2_token_service_ios_provider.h" 14 15 namespace ios { 16 17 // Mock class of ProfileOAuth2TokenServiceIOSProvider for testing. 18 class FakeProfileOAuth2TokenServiceIOSProvider 19 : public ProfileOAuth2TokenServiceIOSProvider { 20 public: 21 FakeProfileOAuth2TokenServiceIOSProvider(); 22 virtual ~FakeProfileOAuth2TokenServiceIOSProvider(); 23 24 // ProfileOAuth2TokenServiceIOSProvider 25 virtual void InitializeSharedAuthentication() OVERRIDE; 26 27 virtual void GetAccessToken(const std::string& account_id, 28 const std::string& client_id, 29 const std::string& client_secret, 30 const std::set<std::string>& scopes, 31 const AccessTokenCallback& callback) OVERRIDE; 32 33 virtual std::vector<std::string> GetAllAccountIds() OVERRIDE; 34 35 virtual AuthenticationErrorCategory GetAuthenticationErrorCategory( 36 NSError* error) const OVERRIDE; 37 38 // Methods to configure this fake provider. 39 void AddAccount(const std::string& account_id); 40 void SetAccounts(const std::vector<std::string>& accounts); 41 void ClearAccounts(); 42 43 // Issues access token responses. 44 void IssueAccessTokenForAllRequests(); 45 void IssueAccessTokenErrorForAllRequests(); 46 47 private: 48 typedef std::pair<std::string, AccessTokenCallback> AccessTokenRequest; 49 50 std::vector<std::string> accounts_; 51 std::vector<AccessTokenRequest> requests_; 52 53 DISALLOW_COPY_AND_ASSIGN(FakeProfileOAuth2TokenServiceIOSProvider); 54 }; 55 56 } // namespace ios 57 58 #endif // IOS_TEST_PROVIDER_CHROME_BROWSER_SIGNIN_MOCK_PROFILE_OAUTH2_TOKEN_SERVICE_PROVIDER_IOS_H_ 59