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

Unified Diff: chrome/browser/managed_mode/managed_user_refresh_token_fetcher_unittest.cc

Issue 23068005: Convert UserPolicySigninService to use OAuth2TokenService (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed code review feedback. Created 7 years, 4 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: chrome/browser/managed_mode/managed_user_refresh_token_fetcher_unittest.cc
diff --git a/chrome/browser/managed_mode/managed_user_refresh_token_fetcher_unittest.cc b/chrome/browser/managed_mode/managed_user_refresh_token_fetcher_unittest.cc
index 75608a6ae3260804f662a93ae64b9bcc266f3c55..93c8edf031492dd6f89fc8644a5a722ecc012096 100644
--- a/chrome/browser/managed_mode/managed_user_refresh_token_fetcher_unittest.cc
+++ b/chrome/browser/managed_mode/managed_user_refresh_token_fetcher_unittest.cc
@@ -6,6 +6,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/strings/stringprintf.h"
#include "chrome/browser/managed_mode/managed_user_refresh_token_fetcher.h"
+#include "chrome/browser/signin/fake_profile_oauth2_token_service.h"
#include "chrome/browser/signin/oauth2_token_service.h"
#include "chrome/test/base/testing_profile.h"
#include "content/public/test/test_browser_thread_bundle.h"
@@ -25,6 +26,7 @@ namespace {
const char kManagedUserId[] = "abcdef";
const char kDeviceName[] = "Compy";
+const char kOAuth2RefreshToken[] = "refreshtoken";
Bernhard Bauer 2013/08/19 14:00:06 Could you move this after kManagedUserToken?
Andrew T Wilson (Slow) 2013/08/20 09:28:35 Done.
const char kAccessToken[] = "accesstoken";
const char kAuthorizationCode[] = "authorizationcode";
const char kManagedUserToken[] = "managedusertoken";
@@ -41,100 +43,6 @@ const char kGetRefreshTokenResponseFormat[] =
" \"refresh_token\": \"%s\""
"}";
-// MockOAuth2TokenService ---------------------------------------------
-
-class MockOAuth2TokenService : public OAuth2TokenService {
- public:
- class Request : public OAuth2TokenService::Request {
- public:
- Request(const OAuth2TokenService::ScopeSet& scopes,
- OAuth2TokenService::Consumer* consumer,
- MockOAuth2TokenService* owner);
- virtual ~Request();
-
- void Succeed();
- void Fail(GoogleServiceAuthError::State error);
-
- const OAuth2TokenService::ScopeSet& scopes() const { return scopes_; }
-
- private:
- OAuth2TokenService::ScopeSet scopes_;
-
- OAuth2TokenService::Consumer* consumer_;
-
- MockOAuth2TokenService* owner_;
- };
-
- MockOAuth2TokenService();
- virtual ~MockOAuth2TokenService();
-
- Request* request() const { return request_; }
-
- void ClearRequest(Request* request);
-
- private:
- // OAuth2TokenService overrides:
- virtual scoped_ptr<OAuth2TokenService::Request> StartRequest(
- const OAuth2TokenService::ScopeSet& scopes,
- OAuth2TokenService::Consumer* consumer) OVERRIDE;
- virtual std::string GetRefreshToken() OVERRIDE;
- virtual net::URLRequestContextGetter* GetRequestContext() OVERRIDE {
- return NULL;
- }
-
- Request* request_;
-
- DISALLOW_COPY_AND_ASSIGN(MockOAuth2TokenService);
-};
-
-MockOAuth2TokenService::Request::Request(
- const OAuth2TokenService::ScopeSet& scopes,
- OAuth2TokenService::Consumer* consumer,
- MockOAuth2TokenService* owner)
- : scopes_(scopes),
- consumer_(consumer),
- owner_(owner) {}
-
-MockOAuth2TokenService::Request::~Request() {
- owner_->ClearRequest(this);
-}
-
-void MockOAuth2TokenService::Request::Succeed() {
- base::Time expiration_date = base::Time::Now() +
- base::TimeDelta::FromHours(1);
- consumer_->OnGetTokenSuccess(this, kAccessToken, expiration_date);
-}
-
-void MockOAuth2TokenService::Request::Fail(
- GoogleServiceAuthError::State error) {
- consumer_->OnGetTokenFailure(this, GoogleServiceAuthError(error));
-}
-
-MockOAuth2TokenService::MockOAuth2TokenService() : request_(NULL) {}
-
-MockOAuth2TokenService::~MockOAuth2TokenService() {
- EXPECT_FALSE(request_);
-}
-
-void MockOAuth2TokenService::ClearRequest(
- MockOAuth2TokenService::Request* request) {
- if (request_ == request)
- request_ = NULL;
-}
-
-scoped_ptr<OAuth2TokenService::Request> MockOAuth2TokenService::StartRequest(
- const OAuth2TokenService::ScopeSet& scopes,
- OAuth2TokenService::Consumer* consumer) {
- scoped_ptr<Request> request(new Request(scopes, consumer, this));
- request_ = request.get();
- return request.PassAs<OAuth2TokenService::Request>();
-}
-
-std::string MockOAuth2TokenService::GetRefreshToken() {
- NOTREACHED();
- return std::string();
-}
-
// Utility methods --------------------------------------------------
// Slightly hacky way to extract a value from a URL-encoded POST request body.
@@ -176,10 +84,11 @@ class ManagedUserRefreshTokenFetcherTest : public testing::Test {
protected:
void StartFetching();
- MockOAuth2TokenService::Request* GetOAuth2TokenServiceRequest();
net::TestURLFetcher* GetIssueTokenRequest();
net::TestURLFetcher* GetRefreshTokenRequest();
+ void MakeOAuth2TokenServiceRequestSucceed();
+ void MakeOAuth2TokenServiceRequestFail(GoogleServiceAuthError::State error);
void MakeIssueTokenRequestSucceed();
void MakeRefreshTokenFetchSucceed();
@@ -194,7 +103,7 @@ class ManagedUserRefreshTokenFetcherTest : public testing::Test {
content::TestBrowserThreadBundle thread_bundle_;
TestingProfile profile_;
- MockOAuth2TokenService oauth2_token_service_;
+ FakeProfileOAuth2TokenService oauth2_token_service_;
net::TestURLFetcherFactory url_fetcher_factory_;
scoped_ptr<ManagedUserRefreshTokenFetcher> token_fetcher_;
@@ -211,22 +120,13 @@ ManagedUserRefreshTokenFetcherTest::ManagedUserRefreshTokenFetcherTest()
weak_ptr_factory_(this) {}
void ManagedUserRefreshTokenFetcherTest::StartFetching() {
+ oauth2_token_service_.IssueRefreshToken(kOAuth2RefreshToken);
token_fetcher_->Start(kManagedUserId, kDeviceName,
base::Bind(
&ManagedUserRefreshTokenFetcherTest::OnTokenFetched,
weak_ptr_factory_.GetWeakPtr()));
}
-MockOAuth2TokenService::Request*
-ManagedUserRefreshTokenFetcherTest::GetOAuth2TokenServiceRequest() {
- MockOAuth2TokenService::Request* request = oauth2_token_service_.request();
-
- OAuth2TokenService::ScopeSet scopes = request->scopes();
- EXPECT_EQ(1u, scopes.size());
- EXPECT_EQ(1u, scopes.count(GaiaUrls::GetInstance()->oauth1_login_scope()));
- return request;
-}
-
net::TestURLFetcher*
ManagedUserRefreshTokenFetcherTest::GetIssueTokenRequest() {
net::TestURLFetcher* url_fetcher = url_fetcher_factory_.GetFetcherByID(1);
@@ -265,6 +165,34 @@ ManagedUserRefreshTokenFetcherTest::GetRefreshTokenRequest() {
return url_fetcher;
}
+void
+ManagedUserRefreshTokenFetcherTest::MakeOAuth2TokenServiceRequestSucceed() {
+ std::vector<FakeProfileOAuth2TokenService::PendingRequest> requests =
+ oauth2_token_service_.GetPendingRequests();
+ ASSERT_GE(1u, requests.size());
Bernhard Bauer 2013/08/19 14:00:06 This asserts that 1 >= requests.size(). I think yo
Andrew T Wilson (Slow) 2013/08/20 09:28:35 OK, changed it to the stricter EQ instead.
+ OAuth2TokenService::ScopeSet scopes = requests[0].scopes;
+ EXPECT_EQ(1u, scopes.size());
+ EXPECT_EQ(1u, scopes.count(GaiaUrls::GetInstance()->oauth1_login_scope()));
Bernhard Bauer 2013/08/19 14:00:06 Would it make sense to extract the code up until h
Andrew T Wilson (Slow) 2013/08/20 09:28:35 Done.
+ base::Time expiration_date = base::Time::Now() +
+ base::TimeDelta::FromHours(1);
+ oauth2_token_service_.IssueTokenForScope(scopes,
+ kAccessToken,
+ expiration_date);
+}
+
+void
+ManagedUserRefreshTokenFetcherTest::MakeOAuth2TokenServiceRequestFail(
+ GoogleServiceAuthError::State error) {
+ std::vector<FakeProfileOAuth2TokenService::PendingRequest> requests =
+ oauth2_token_service_.GetPendingRequests();
+ ASSERT_GE(1u, requests.size());
+ OAuth2TokenService::ScopeSet scopes = requests[0].scopes;
+ EXPECT_EQ(1u, scopes.size());
+ EXPECT_EQ(1u, scopes.count(GaiaUrls::GetInstance()->oauth1_login_scope()));
+ oauth2_token_service_.IssueErrorForScope(scopes,
+ GoogleServiceAuthError(error));
+}
+
void ManagedUserRefreshTokenFetcherTest::MakeIssueTokenRequestSucceed() {
SendResponse(GetIssueTokenRequest(),
base::StringPrintf(kIssueTokenResponseFormat,
@@ -292,7 +220,7 @@ void ManagedUserRefreshTokenFetcherTest::OnTokenFetched(
TEST_F(ManagedUserRefreshTokenFetcherTest, Success) {
StartFetching();
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
MakeIssueTokenRequestSucceed();
MakeRefreshTokenFetchSucceed();
@@ -302,9 +230,9 @@ TEST_F(ManagedUserRefreshTokenFetcherTest, Success) {
TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessToken) {
StartFetching();
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED);
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
MakeIssueTokenRequestSucceed();
MakeRefreshTokenFetchSucceed();
@@ -316,9 +244,9 @@ TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessTokenRetry) {
// If we get a 401 error for the second time, we should give up instead of
// retrying again.
StartFetching();
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED);
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
SetHttpError(GetIssueTokenRequest(), net::HTTP_UNAUTHORIZED);
EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
@@ -328,7 +256,7 @@ TEST_F(ManagedUserRefreshTokenFetcherTest, ExpiredAccessTokenRetry) {
TEST_F(ManagedUserRefreshTokenFetcherTest, MalformedIssueTokenResponse) {
StartFetching();
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
SendResponse(GetIssueTokenRequest(), "choke");
EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
@@ -338,7 +266,7 @@ TEST_F(ManagedUserRefreshTokenFetcherTest, MalformedIssueTokenResponse) {
TEST_F(ManagedUserRefreshTokenFetcherTest, FetchAccessTokenFailure) {
StartFetching();
- GetOAuth2TokenServiceRequest()->Fail(
+ MakeOAuth2TokenServiceRequestFail(
GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS);
EXPECT_EQ(GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS, error().state());
@@ -347,7 +275,7 @@ TEST_F(ManagedUserRefreshTokenFetcherTest, FetchAccessTokenFailure) {
TEST_F(ManagedUserRefreshTokenFetcherTest, IssueTokenNetworkError) {
StartFetching();
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
SetNetworkError(GetIssueTokenRequest(), net::ERR_SSL_PROTOCOL_ERROR);
EXPECT_EQ(GoogleServiceAuthError::CONNECTION_FAILED, error().state());
@@ -357,7 +285,7 @@ TEST_F(ManagedUserRefreshTokenFetcherTest, IssueTokenNetworkError) {
TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenNetworkError) {
StartFetching();
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
MakeIssueTokenRequestSucceed();
SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED);
EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
@@ -371,7 +299,7 @@ TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenNetworkError) {
TEST_F(ManagedUserRefreshTokenFetcherTest,
FetchRefreshTokenTransientNetworkError) {
StartFetching();
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
MakeIssueTokenRequestSucceed();
SetNetworkError(GetRefreshTokenRequest(), net::ERR_CONNECTION_REFUSED);
@@ -384,7 +312,7 @@ TEST_F(ManagedUserRefreshTokenFetcherTest,
TEST_F(ManagedUserRefreshTokenFetcherTest, FetchRefreshTokenBadRequest) {
StartFetching();
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
MakeIssueTokenRequestSucceed();
SetHttpError(GetRefreshTokenRequest(), net::HTTP_BAD_REQUEST);
@@ -403,7 +331,7 @@ TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileFetchingAccessToken) {
TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileCallingIssueToken) {
StartFetching();
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
Reset();
EXPECT_EQ(GoogleServiceAuthError::NONE, error().state());
@@ -412,7 +340,7 @@ TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileCallingIssueToken) {
TEST_F(ManagedUserRefreshTokenFetcherTest, CancelWhileFetchingRefreshToken) {
StartFetching();
- GetOAuth2TokenServiceRequest()->Succeed();
+ MakeOAuth2TokenServiceRequestSucceed();
MakeIssueTokenRequestSucceed();
Reset();

Powered by Google App Engine
This is Rietveld 408576698