Chromium Code Reviews| Index: google_apis/gaia/oauth2_token_service_unittest.cc |
| diff --git a/google_apis/gaia/oauth2_token_service_unittest.cc b/google_apis/gaia/oauth2_token_service_unittest.cc |
| index 0cf0c6586ddd53a08b61f5c86ebf031addc116d5..aead8f1104df2076d99c58996a13f3de72eeb8cd 100644 |
| --- a/google_apis/gaia/oauth2_token_service_unittest.cc |
| +++ b/google_apis/gaia/oauth2_token_service_unittest.cc |
| @@ -11,6 +11,7 @@ |
| #include "google_apis/gaia/oauth2_access_token_consumer.h" |
| #include "google_apis/gaia/oauth2_access_token_fetcher_impl.h" |
| #include "google_apis/gaia/oauth2_token_service.h" |
| +#include "google_apis/gaia/oauth2_token_service_delegate.h" |
| #include "google_apis/gaia/oauth2_token_service_test_util.h" |
| #include "net/http/http_status_code.h" |
| #include "net/url_request/test_url_fetcher_factory.h" |
| @@ -41,16 +42,45 @@ class RetryingTestingOAuth2TokenServiceConsumer |
| scoped_ptr<OAuth2TokenService::Request> request_; |
| }; |
| -class TestOAuth2TokenService : public OAuth2TokenService { |
| +class TestFakeOAuth2TokenServiceDelegate : public OAuth2TokenServiceDelegate { |
| public: |
| - explicit TestOAuth2TokenService(net::TestURLRequestContextGetter* getter) |
| - : request_context_getter_(getter) { |
| + TestFakeOAuth2TokenServiceDelegate() : request_context_getter_(nullptr) {} |
| + |
| + ~TestFakeOAuth2TokenServiceDelegate() override {} |
| + |
| + OAuth2AccessTokenFetcher* CreateAccessTokenFetcher( |
| + const std::string& account_id, |
| + net::URLRequestContextGetter* getter, |
| + OAuth2AccessTokenConsumer* consumer) override { |
| + std::map<std::string, std::string>::const_iterator it = |
| + refresh_tokens_.find(account_id); |
| + DCHECK(it != refresh_tokens_.end()); |
| + std::string refresh_token(it->second); |
| + return new OAuth2AccessTokenFetcherImpl(consumer, getter, refresh_token); |
| } |
| - void CancelAllRequestsForTest() { CancelAllRequests(); } |
| + bool RefreshTokenIsAvailable(const std::string& account_id) const override { |
| + std::map<std::string, std::string>::const_iterator it = |
| + refresh_tokens_.find(account_id); |
| - void CancelRequestsForAccountForTest(const std::string& account_id) { |
| - CancelRequestsForAccount(account_id); |
| + return it != refresh_tokens_.end(); |
| + } |
| + |
| + std::string GetRefreshToken(const std::string& account_id) const override { |
| + return std::string(); |
| + } |
| + |
| + void UpdateAuthError(const std::string& account_id, |
| + const GoogleServiceAuthError& error) override {} |
| + |
| + std::vector<std::string> GetAccounts() override { |
| + return std::vector<std::string>(); |
| + } |
| + |
| + void RevokeAllCredentials() override {} |
| + |
| + net::URLRequestContextGetter* GetRequestContext() const override { |
| + return request_context_getter_.get(); |
| } |
| // For testing: set the refresh token to be used. |
| @@ -62,40 +92,44 @@ class TestOAuth2TokenService : public OAuth2TokenService { |
| refresh_tokens_[account_id] = refresh_token; |
| } |
| - bool RefreshTokenIsAvailable(const std::string& account_id) const override { |
| - std::map<std::string, std::string>::const_iterator it = |
| - refresh_tokens_.find(account_id); |
| - |
| - return it != refresh_tokens_.end(); |
| - }; |
| + void set_request_context(net::TestURLRequestContextGetter* getter) { |
| + request_context_getter_ = getter; |
| + } |
| private: |
| - // OAuth2TokenService implementation. |
| - net::URLRequestContextGetter* GetRequestContext() override { |
| - return request_context_getter_.get(); |
| + std::map<std::string, std::string> refresh_tokens_; |
| + scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_; |
| +}; |
|
Roger Tawa OOO till Jul 10th
2015/05/28 14:54:44
Why do we need this class and not use FakeOAuth2To
gogerald1
2015/06/03 18:12:59
Done.
|
| + |
| +class TestOAuth2TokenService : public OAuth2TokenService { |
| + public: |
| + explicit TestOAuth2TokenService(OAuth2TokenServiceDelegate* delegate, |
| + net::TestURLRequestContextGetter* getter) |
| + : OAuth2TokenService(delegate) { |
| + static_cast<TestFakeOAuth2TokenServiceDelegate*>(delegate) |
| + ->set_request_context(getter); |
|
Roger Tawa OOO till Jul 10th
2015/05/28 14:54:44
Don't cast and call set_request_context() here. M
gogerald1
2015/06/03 18:12:59
Done.
|
| } |
| - OAuth2AccessTokenFetcher* CreateAccessTokenFetcher( |
| - const std::string& account_id, |
| - net::URLRequestContextGetter* getter, |
| - OAuth2AccessTokenConsumer* consumer) override { |
| - std::map<std::string, std::string>::const_iterator it = |
| - refresh_tokens_.find(account_id); |
| - DCHECK(it != refresh_tokens_.end()); |
| - std::string refresh_token(it->second); |
| - return new OAuth2AccessTokenFetcherImpl(consumer, getter, refresh_token); |
| - }; |
| + void CancelAllRequestsForTest() { CancelAllRequests(); } |
| - std::map<std::string, std::string> refresh_tokens_; |
| - scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_; |
| + void CancelRequestsForAccountForTest(const std::string& account_id) { |
| + CancelRequestsForAccount(account_id); |
| + } |
| + |
| + void set_refresh_token(const std::string& account_id, |
| + const std::string& refresh_token) { |
| + static_cast<TestFakeOAuth2TokenServiceDelegate*>(GetDelegate()) |
| + ->set_refresh_token(account_id, refresh_token); |
| + } |
| }; |
| class OAuth2TokenServiceTest : public testing::Test { |
| public: |
| void SetUp() override { |
| oauth2_service_.reset( |
| - new TestOAuth2TokenService(new net::TestURLRequestContextGetter( |
| - message_loop_.message_loop_proxy()))); |
| + new TestOAuth2TokenService(new TestFakeOAuth2TokenServiceDelegate(), |
| + new net::TestURLRequestContextGetter( |
| + message_loop_.message_loop_proxy()))); |
|
Roger Tawa OOO till Jul 10th
2015/05/28 14:54:44
Should pass the request context getter directly to
gogerald1
2015/06/03 18:12:59
Done.
|
| account_id_ = "test_user@gmail.com"; |
| } |