Index: google_apis/gaia/fake_oauth2_token_service.cc |
diff --git a/google_apis/gaia/fake_oauth2_token_service.cc b/google_apis/gaia/fake_oauth2_token_service.cc |
index f23f349726747f45f5a26a8779ef8bac3a4e2616..0b01404bd8735dc2fc45b8d64d4edc458ba2fceb 100644 |
--- a/google_apis/gaia/fake_oauth2_token_service.cc |
+++ b/google_apis/gaia/fake_oauth2_token_service.cc |
@@ -4,11 +4,22 @@ |
#include "google_apis/gaia/fake_oauth2_token_service.h" |
-FakeOAuth2TokenService::FakeOAuth2TokenService() : request_context_(NULL) {} |
+FakeOAuth2TokenService::PendingRequest::PendingRequest() { |
+} |
+ |
+FakeOAuth2TokenService::PendingRequest::~PendingRequest() { |
+} |
+ |
+FakeOAuth2TokenService::FakeOAuth2TokenService() : request_context_(NULL) { |
+} |
FakeOAuth2TokenService::~FakeOAuth2TokenService() { |
} |
+std::vector<std::string> FakeOAuth2TokenService::GetAccounts() { |
+ return std::vector<std::string>(account_ids_.begin(), account_ids_.end()); |
+} |
+ |
void FakeOAuth2TokenService::FetchOAuth2Token( |
RequestImpl* request, |
const std::string& account_id, |
@@ -16,6 +27,13 @@ void FakeOAuth2TokenService::FetchOAuth2Token( |
const std::string& client_id, |
const std::string& client_secret, |
const ScopeSet& scopes) { |
+ PendingRequest pending_request; |
+ pending_request.account_id = account_id; |
+ pending_request.client_id = client_id; |
+ pending_request.client_secret = client_secret; |
+ pending_request.scopes = scopes; |
+ pending_request.request = request->AsWeakPtr(); |
+ pending_requests_.push_back(pending_request); |
} |
void FakeOAuth2TokenService::InvalidateOAuth2Token( |
@@ -36,8 +54,30 @@ bool FakeOAuth2TokenService::RefreshTokenIsAvailable( |
void FakeOAuth2TokenService::AddAccount(const std::string& account_id) { |
account_ids_.insert(account_id); |
+ FireRefreshTokenAvailable(account_id); |
} |
+void FakeOAuth2TokenService::RemoveAccount(const std::string& account_id) { |
+ account_ids_.erase(account_id); |
+ FireRefreshTokenRevoked(account_id); |
+} |
+ |
+void FakeOAuth2TokenService::IssueAllTokensForAccount( |
+ const std::string& account_id, |
+ const std::string& access_token, |
+ const base::Time& expiration) { |
+ |
+ // Walk the requests and notify the callbacks. |
+ for (std::vector<PendingRequest>::iterator it = pending_requests_.begin(); |
+ it != pending_requests_.end(); ++it) { |
+ if (it->request && (account_id == it->account_id)) { |
+ it->request->InformConsumer( |
+ GoogleServiceAuthError::AuthErrorNone(), access_token, expiration); |
+ } |
+ } |
+} |
+ |
+ |
OAuth2AccessTokenFetcher* FakeOAuth2TokenService::CreateAccessTokenFetcher( |
const std::string& account_id, |
net::URLRequestContextGetter* getter, |