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 #include "google_apis/gaia/fake_oauth2_token_service.h" 6 7 FakeOAuth2TokenService::PendingRequest::PendingRequest() { 8 } 9 10 FakeOAuth2TokenService::PendingRequest::~PendingRequest() { 11 } 12 13 FakeOAuth2TokenService::FakeOAuth2TokenService() : request_context_(NULL) { 14 } 15 16 FakeOAuth2TokenService::~FakeOAuth2TokenService() { 17 } 18 19 std::vector<std::string> FakeOAuth2TokenService::GetAccounts() { 20 return std::vector<std::string>(account_ids_.begin(), account_ids_.end()); 21 } 22 23 void FakeOAuth2TokenService::FetchOAuth2Token( 24 RequestImpl* request, 25 const std::string& account_id, 26 net::URLRequestContextGetter* getter, 27 const std::string& client_id, 28 const std::string& client_secret, 29 const ScopeSet& scopes) { 30 PendingRequest pending_request; 31 pending_request.account_id = account_id; 32 pending_request.client_id = client_id; 33 pending_request.client_secret = client_secret; 34 pending_request.scopes = scopes; 35 pending_request.request = request->AsWeakPtr(); 36 pending_requests_.push_back(pending_request); 37 } 38 39 void FakeOAuth2TokenService::InvalidateOAuth2Token( 40 const std::string& account_id, 41 const std::string& client_id, 42 const ScopeSet& scopes, 43 const std::string& access_token) { 44 } 45 46 net::URLRequestContextGetter* FakeOAuth2TokenService::GetRequestContext() { 47 return request_context_; 48 } 49 50 bool FakeOAuth2TokenService::RefreshTokenIsAvailable( 51 const std::string& account_id) const { 52 return account_ids_.count(account_id) != 0; 53 }; 54 55 void FakeOAuth2TokenService::AddAccount(const std::string& account_id) { 56 account_ids_.insert(account_id); 57 FireRefreshTokenAvailable(account_id); 58 } 59 60 void FakeOAuth2TokenService::RemoveAccount(const std::string& account_id) { 61 account_ids_.erase(account_id); 62 FireRefreshTokenRevoked(account_id); 63 } 64 65 void FakeOAuth2TokenService::IssueAllTokensForAccount( 66 const std::string& account_id, 67 const std::string& access_token, 68 const base::Time& expiration) { 69 70 // Walk the requests and notify the callbacks. 71 for (std::vector<PendingRequest>::iterator it = pending_requests_.begin(); 72 it != pending_requests_.end(); ++it) { 73 if (it->request && (account_id == it->account_id)) { 74 it->request->InformConsumer( 75 GoogleServiceAuthError::AuthErrorNone(), access_token, expiration); 76 } 77 } 78 } 79 80 void FakeOAuth2TokenService::IssueErrorForAllPendingRequestsForAccount( 81 const std::string& account_id, 82 const GoogleServiceAuthError& auth_error) { 83 // Walk the requests and notify the callbacks. 84 for (std::vector<PendingRequest>::iterator it = pending_requests_.begin(); 85 it != pending_requests_.end(); 86 ++it) { 87 if (it->request && (account_id == it->account_id)) { 88 it->request->InformConsumer(auth_error, std::string(), base::Time()); 89 } 90 } 91 } 92 93 OAuth2AccessTokenFetcher* FakeOAuth2TokenService::CreateAccessTokenFetcher( 94 const std::string& account_id, 95 net::URLRequestContextGetter* getter, 96 OAuth2AccessTokenConsumer* consumer) { 97 // |FakeOAuth2TokenService| overrides |FetchOAuth2Token| and thus 98 // |CreateAccessTokenFetcher| should never be called. 99 NOTREACHED(); 100 return NULL; 101 } 102