Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(106)

Unified Diff: google_apis/gaia/oauth2_token_service_unittest.cc

Issue 1143323005: Refactor AO2TS to make it easier to componentize. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update for google_apis_unittests Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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";
}

Powered by Google App Engine
This is Rietveld 408576698