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

Unified Diff: chrome/browser/signin/oauth2_token_service_unittest.cc

Issue 12647008: Refactor OAuth2TokenService to have profile- and device-based implementations. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebase again Created 7 years, 8 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/signin/oauth2_token_service_unittest.cc
diff --git a/chrome/browser/signin/oauth2_token_service_unittest.cc b/chrome/browser/signin/oauth2_token_service_unittest.cc
index 7095b4304ac3f428fb788967985768f3159bdbbb..8f96f131a5405e80b6b7459ce7037b0fca7fd76e 100644
--- a/chrome/browser/signin/oauth2_token_service_unittest.cc
+++ b/chrome/browser/signin/oauth2_token_service_unittest.cc
@@ -2,108 +2,78 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <string>
+
#include "base/stringprintf.h"
#include "chrome/browser/signin/oauth2_token_service.h"
-#include "chrome/browser/signin/oauth2_token_service_factory.h"
+#include "chrome/browser/signin/oauth2_token_service_test_util.h"
#include "chrome/browser/signin/token_service_factory.h"
#include "chrome/browser/signin/token_service_unittest.h"
#include "chrome/common/chrome_notification_types.h"
-#include "content/public/browser/browser_thread.h"
+#include "chrome/test/base/testing_browser_process.h"
#include "google_apis/gaia/gaia_constants.h"
#include "google_apis/gaia/google_service_auth_error.h"
#include "google_apis/gaia/oauth2_access_token_consumer.h"
#include "net/http/http_status_code.h"
#include "net/url_request/test_url_fetcher_factory.h"
#include "net/url_request/url_request_status.h"
+#include "net/url_request/url_request_test_util.h"
#include "testing/gtest/include/gtest/gtest.h"
using content::BrowserThread;
-static const char kValidTokenResponse[] =
- "{"
- " \"access_token\": \"%s\","
- " \"expires_in\": %d,"
- " \"token_type\": \"Bearer\""
- "}";
-
-std::string GetValidTokenResponse(std::string token, int expiration) {
- return base::StringPrintf(kValidTokenResponse, token.c_str(), expiration);
-}
-
-// A simple testing consumer.
-class TestingOAuth2TokenServiceConsumer : public OAuth2TokenService::Consumer {
- public:
- TestingOAuth2TokenServiceConsumer()
- : number_of_correct_tokens_(0),
- last_error_(GoogleServiceAuthError::AuthErrorNone()),
- number_of_errors_(0) {}
- virtual ~TestingOAuth2TokenServiceConsumer() {}
-
- virtual void OnGetTokenSuccess(const OAuth2TokenService::Request* request,
- const std::string& token,
- const base::Time& expiration_date) OVERRIDE {
- last_token_ = token;
- ++number_of_correct_tokens_;
- }
-
- virtual void OnGetTokenFailure(const OAuth2TokenService::Request* request,
- const GoogleServiceAuthError& error) OVERRIDE {
- last_error_ = error;
- ++number_of_errors_;
- }
-
- std::string last_token_;
- int number_of_correct_tokens_;
- GoogleServiceAuthError last_error_;
- int number_of_errors_;
-};
-
// A testing consumer that retries on error.
class RetryingTestingOAuth2TokenServiceConsumer
- : public OAuth2TokenService::Consumer {
+ : public TestingOAuth2TokenServiceConsumer {
public:
RetryingTestingOAuth2TokenServiceConsumer(
OAuth2TokenService* oauth2_service)
- : oauth2_service_(oauth2_service),
- number_of_correct_tokens_(0),
- last_error_(GoogleServiceAuthError::AuthErrorNone()),
- number_of_errors_(0) {}
+ : oauth2_service_(oauth2_service) {}
virtual ~RetryingTestingOAuth2TokenServiceConsumer() {}
- virtual void OnGetTokenSuccess(const OAuth2TokenService::Request* request,
- const std::string& token,
- const base::Time& expiration_date) OVERRIDE {
- last_token_ = token;
- ++number_of_correct_tokens_;
- }
-
virtual void OnGetTokenFailure(const OAuth2TokenService::Request* request,
const GoogleServiceAuthError& error) OVERRIDE {
- last_error_ = error;
- ++number_of_errors_;
+ TestingOAuth2TokenServiceConsumer::OnGetTokenFailure(request, error);
request_.reset(oauth2_service_->StartRequest(
std::set<std::string>(), this).release());
}
OAuth2TokenService* oauth2_service_;
scoped_ptr<OAuth2TokenService::Request> request_;
- std::string last_token_;
- int number_of_correct_tokens_;
- GoogleServiceAuthError last_error_;
- int number_of_errors_;
+};
+
+class TestOAuth2TokenService : public OAuth2TokenService {
+ public:
+ explicit TestOAuth2TokenService(net::URLRequestContextGetter* getter)
+ : OAuth2TokenService(getter) {
+ }
+
+ // For testing: set the refresh token to be used.
+ void set_refresh_token(const std::string& refresh_token) {
+ refresh_token_ = refresh_token;
+ }
+
+ protected:
+ std::string GetRefreshToken() OVERRIDE {
+ return refresh_token_;
+ }
+
+ private:
+ std::string refresh_token_;
};
class OAuth2TokenServiceTest : public TokenServiceTestHarness {
public:
- OAuth2TokenServiceTest() {}
+ OAuth2TokenServiceTest()
+ : request_context_getter_(new net::TestURLRequestContextGetter(
+ message_loop_.message_loop_proxy())) {
+ }
virtual void SetUp() OVERRIDE {
TokenServiceTestHarness::SetUp();
io_thread_.reset(new content::TestBrowserThread(content::BrowserThread::IO,
&message_loop_));
- service_->UpdateCredentials(credentials_);
- profile_->CreateRequestContext();
- oauth2_service_ = OAuth2TokenServiceFactory::GetForProfile(profile_.get());
+ oauth2_service_.reset(new TestOAuth2TokenService(request_context_getter_));
}
virtual void TearDown() OVERRIDE {
@@ -112,8 +82,9 @@ class OAuth2TokenServiceTest : public TokenServiceTestHarness {
protected:
scoped_ptr<content::TestBrowserThread> io_thread_;
+ scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_;
net::TestURLFetcherFactory factory_;
- OAuth2TokenService* oauth2_service_;
+ scoped_ptr<TestOAuth2TokenService> oauth2_service_;
TestingOAuth2TokenServiceConsumer consumer_;
};
@@ -122,44 +93,42 @@ TEST_F(OAuth2TokenServiceTest, NoOAuth2RefreshToken) {
oauth2_service_->StartRequest(std::set<std::string>(), &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(1, consumer_.number_of_errors_);
}
TEST_F(OAuth2TokenServiceTest, FailureShouldNotRetry) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
- scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
- std::set<std::string>(), &consumer_));
+ oauth2_service_->set_refresh_token("refreshToken");
+ scoped_ptr<OAuth2TokenService::Request> request(
+ oauth2_service_->StartRequest(std::set<std::string>(), &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
EXPECT_TRUE(fetcher);
fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
fetcher->SetResponseString(std::string());
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(1, consumer_.number_of_errors_);
EXPECT_EQ(fetcher, factory_.GetFetcherByID(0));
}
TEST_F(OAuth2TokenServiceTest, SuccessWithoutCaching) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
- scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
- std::set<std::string>(), &consumer_));
+ oauth2_service_->set_refresh_token("refreshToken");
+ scoped_ptr<OAuth2TokenService::Request> request(
+ oauth2_service_->StartRequest(std::set<std::string>(), &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
EXPECT_TRUE(fetcher);
fetcher->set_response_code(net::HTTP_OK);
fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("token", consumer_.last_token_);
}
@@ -174,22 +143,21 @@ TEST_F(OAuth2TokenServiceTest, SuccessWithCaching) {
std::set<std::string> scopes2;
scopes2.insert("s3");
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
+ oauth2_service_->set_refresh_token("refreshToken");
// First request.
scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
scopes1, &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
EXPECT_TRUE(fetcher);
fetcher->set_response_code(net::HTTP_OK);
fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("token", consumer_.last_token_);
@@ -201,7 +169,7 @@ TEST_F(OAuth2TokenServiceTest, SuccessWithCaching) {
// No new network fetcher.
EXPECT_EQ(fetcher, factory_.GetFetcherByID(0));
- EXPECT_EQ(2, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("token", consumer_.last_token_);
@@ -209,34 +177,33 @@ TEST_F(OAuth2TokenServiceTest, SuccessWithCaching) {
scoped_ptr<OAuth2TokenService::Request> request3(
oauth2_service_->StartRequest(scopes2, &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(2, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
fetcher = factory_.GetFetcherByID(0);
EXPECT_TRUE(fetcher);
fetcher->set_response_code(net::HTTP_OK);
fetcher->SetResponseString(GetValidTokenResponse("token2", 3600));
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(3, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(3, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("token2", consumer_.last_token_);
}
TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndFailure) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
+ oauth2_service_->set_refresh_token("refreshToken");
// First request.
scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
std::set<std::string>(), &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
EXPECT_TRUE(fetcher);
fetcher->set_response_code(net::HTTP_OK);
fetcher->SetResponseString(GetValidTokenResponse("token", 0));
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("token", consumer_.last_token_);
@@ -244,7 +211,7 @@ TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndFailure) {
scoped_ptr<OAuth2TokenService::Request> request2(
oauth2_service_->StartRequest(std::set<std::string>(), &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
// Network failure.
@@ -253,26 +220,25 @@ TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndFailure) {
fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
fetcher->SetResponseString(std::string());
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(1, consumer_.number_of_errors_);
}
TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndSuccess) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
+ oauth2_service_->set_refresh_token("refreshToken");
// First request.
scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
std::set<std::string>(), &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
EXPECT_TRUE(fetcher);
fetcher->set_response_code(net::HTTP_OK);
fetcher->SetResponseString(GetValidTokenResponse("token", 0));
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("token", consumer_.last_token_);
@@ -280,7 +246,7 @@ TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndSuccess) {
scoped_ptr<OAuth2TokenService::Request> request2(
oauth2_service_->StartRequest(std::set<std::string>(), &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
fetcher = factory_.GetFetcherByID(0);
@@ -288,19 +254,18 @@ TEST_F(OAuth2TokenServiceTest, SuccessAndExpirationAndSuccess) {
fetcher->set_response_code(net::HTTP_OK);
fetcher->SetResponseString(GetValidTokenResponse("another token", 0));
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(2, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("another token", consumer_.last_token_);
}
TEST_F(OAuth2TokenServiceTest, RequestDeletedBeforeCompletion) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
+ oauth2_service_->set_refresh_token("refreshToken");
scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
std::set<std::string>(), &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
EXPECT_TRUE(fetcher);
@@ -310,13 +275,12 @@ TEST_F(OAuth2TokenServiceTest, RequestDeletedBeforeCompletion) {
fetcher->set_response_code(net::HTTP_OK);
fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
}
TEST_F(OAuth2TokenServiceTest, RequestDeletedAfterCompletion) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
+ oauth2_service_->set_refresh_token("refreshToken");
scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
std::set<std::string>(), &consumer_));
@@ -325,20 +289,19 @@ TEST_F(OAuth2TokenServiceTest, RequestDeletedAfterCompletion) {
fetcher->set_response_code(net::HTTP_OK);
fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("token", consumer_.last_token_);
request.reset();
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("token", consumer_.last_token_);
}
TEST_F(OAuth2TokenServiceTest, MultipleRequestsForTheSameScopesWithOneDeleted) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
+ oauth2_service_->set_refresh_token("refreshToken");
scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
std::set<std::string>(), &consumer_));
@@ -353,14 +316,13 @@ TEST_F(OAuth2TokenServiceTest, MultipleRequestsForTheSameScopesWithOneDeleted) {
fetcher->set_response_code(net::HTTP_OK);
fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
}
-TEST_F(OAuth2TokenServiceTest, SuccessAndSignOutAndRequest) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
-
+TEST_F(OAuth2TokenServiceTest, ClearedRefreshTokenFailsSubsequentRequests) {
+ // We have a valid refresh token; the first request is successful.
+ oauth2_service_->set_refresh_token("refreshToken");
scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
std::set<std::string>(), &consumer_));
message_loop_.RunUntilIdle();
@@ -368,61 +330,22 @@ TEST_F(OAuth2TokenServiceTest, SuccessAndSignOutAndRequest) {
fetcher->set_response_code(net::HTTP_OK);
fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("token", consumer_.last_token_);
- // Signs out
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- std::string());
- service_->EraseTokensFromDB();
-
+ // The refresh token is no longer available; subsequent requests fail.
+ oauth2_service_->set_refresh_token("");
request = oauth2_service_->StartRequest(std::set<std::string>(), &consumer_);
message_loop_.RunUntilIdle();
EXPECT_EQ(fetcher, factory_.GetFetcherByID(0));
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(1, consumer_.number_of_errors_);
}
-TEST_F(OAuth2TokenServiceTest, SuccessAndSignOutAndSignInAndSuccess) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
- std::set<std::string> scopes;
- scopes.insert("s1");
- scopes.insert("s2");
-
- scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
- scopes, &consumer_));
- message_loop_.RunUntilIdle();
- net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
- fetcher->set_response_code(net::HTTP_OK);
- fetcher->SetResponseString(GetValidTokenResponse("token", 3600));
- fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
- EXPECT_EQ(0, consumer_.number_of_errors_);
- EXPECT_EQ("token", consumer_.last_token_);
-
- // Signs out and signs in
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- std::string());
- service_->EraseTokensFromDB();
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
-
- request = oauth2_service_->StartRequest(scopes, &consumer_);
- message_loop_.RunUntilIdle();
- fetcher = factory_.GetFetcherByID(0);
- fetcher->set_response_code(net::HTTP_OK);
- fetcher->SetResponseString(GetValidTokenResponse("another token", 3600));
- fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(2, consumer_.number_of_correct_tokens_);
- EXPECT_EQ(0, consumer_.number_of_errors_);
- EXPECT_EQ("another token", consumer_.last_token_);
-}
-
-TEST_F(OAuth2TokenServiceTest, PendingAndSignOutAndSignInAndSuccess) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "first refreshToken");
+TEST_F(OAuth2TokenServiceTest,
+ ChangedRefreshTokenDoesNotAffectInFlightRequests) {
+ oauth2_service_->set_refresh_token("first refreshToken");
std::set<std::string> scopes;
scopes.insert("s1");
scopes.insert("s2");
@@ -432,11 +355,11 @@ TEST_F(OAuth2TokenServiceTest, PendingAndSignOutAndSignInAndSuccess) {
message_loop_.RunUntilIdle();
net::TestURLFetcher* fetcher1 = factory_.GetFetcherByID(0);
- // Note |request| is still pending.
- service_->EraseTokensFromDB();
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "second refreshToken");
+ // Note |request| is still pending when the refresh token changes.
+ oauth2_service_->set_refresh_token("second refreshToken");
+ // A 2nd request (using the new refresh token) that occurs and completes
+ // while the 1st request is in flight is successful.
TestingOAuth2TokenServiceConsumer consumer2;
scoped_ptr<OAuth2TokenService::Request> request2(
oauth2_service_->StartRequest(scopes, &consumer2));
@@ -446,41 +369,40 @@ TEST_F(OAuth2TokenServiceTest, PendingAndSignOutAndSignInAndSuccess) {
fetcher2->set_response_code(net::HTTP_OK);
fetcher2->SetResponseString(GetValidTokenResponse("second token", 3600));
fetcher2->delegate()->OnURLFetchComplete(fetcher2);
- EXPECT_EQ(1, consumer2.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer2.number_of_successful_tokens_);
EXPECT_EQ(0, consumer2.number_of_errors_);
EXPECT_EQ("second token", consumer2.last_token_);
fetcher1->set_response_code(net::HTTP_OK);
fetcher1->SetResponseString(GetValidTokenResponse("first token", 3600));
fetcher1->delegate()->OnURLFetchComplete(fetcher1);
- EXPECT_EQ(1, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(1, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
EXPECT_EQ("first token", consumer_.last_token_);
}
TEST_F(OAuth2TokenServiceTest, ServiceShutDownBeforeFetchComplete) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
+ oauth2_service_->set_refresh_token("refreshToken");
scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
std::set<std::string>(), &consumer_));
message_loop_.RunUntilIdle();
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(0, consumer_.number_of_errors_);
- profile_.reset();
+ // The destructor should cancel all in-flight fetchers.
+ oauth2_service_.reset(NULL);
- EXPECT_EQ(0, consumer_.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_successful_tokens_);
EXPECT_EQ(1, consumer_.number_of_errors_);
}
TEST_F(OAuth2TokenServiceTest, RetryingConsumer) {
- service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
- "refreshToken");
- RetryingTestingOAuth2TokenServiceConsumer consumer(oauth2_service_);
+ oauth2_service_->set_refresh_token("refreshToken");
+ RetryingTestingOAuth2TokenServiceConsumer consumer(oauth2_service_.get());
scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest(
std::set<std::string>(), &consumer));
message_loop_.RunUntilIdle();
- EXPECT_EQ(0, consumer.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer.number_of_successful_tokens_);
EXPECT_EQ(0, consumer.number_of_errors_);
net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
@@ -488,7 +410,7 @@ TEST_F(OAuth2TokenServiceTest, RetryingConsumer) {
fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
fetcher->SetResponseString(std::string());
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(0, consumer.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer.number_of_successful_tokens_);
EXPECT_EQ(1, consumer.number_of_errors_);
fetcher = factory_.GetFetcherByID(0);
@@ -496,6 +418,6 @@ TEST_F(OAuth2TokenServiceTest, RetryingConsumer) {
fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
fetcher->SetResponseString(std::string());
fetcher->delegate()->OnURLFetchComplete(fetcher);
- EXPECT_EQ(0, consumer.number_of_correct_tokens_);
+ EXPECT_EQ(0, consumer.number_of_successful_tokens_);
EXPECT_EQ(2, consumer.number_of_errors_);
}
« no previous file with comments | « chrome/browser/signin/oauth2_token_service_test_util.cc ('k') | chrome/browser/signin/profile_oauth2_token_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698