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

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

Issue 16173008: Reland 203015 "Add ManagedUserTokenFetcher to fetch scoped-down ..." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 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
« no previous file with comments | « chrome/browser/signin/oauth2_token_service.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 105ad839163882ec29643a5e7a5fc23b43cb5d6f..8e43a60edf0d3641d81d007a2f3aaf728d6c6829 100644
--- a/chrome/browser/signin/oauth2_token_service_unittest.cc
+++ b/chrome/browser/signin/oauth2_token_service_unittest.cc
@@ -405,7 +405,7 @@ TEST_F(OAuth2TokenServiceTest, RetryingConsumer) {
EXPECT_EQ(0, consumer.number_of_errors_);
net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
- EXPECT_TRUE(fetcher);
+ ASSERT_TRUE(fetcher);
fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
fetcher->SetResponseString(std::string());
fetcher->delegate()->OnURLFetchComplete(fetcher);
@@ -413,10 +413,59 @@ TEST_F(OAuth2TokenServiceTest, RetryingConsumer) {
EXPECT_EQ(1, consumer.number_of_errors_);
fetcher = factory_.GetFetcherByID(0);
- EXPECT_TRUE(fetcher);
+ ASSERT_TRUE(fetcher);
fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
fetcher->SetResponseString(std::string());
fetcher->delegate()->OnURLFetchComplete(fetcher);
EXPECT_EQ(0, consumer.number_of_successful_tokens_);
EXPECT_EQ(2, consumer.number_of_errors_);
}
+
+TEST_F(OAuth2TokenServiceTest, InvalidateToken) {
+ std::set<std::string> scopes;
+ oauth2_service_->set_refresh_token("refreshToken");
+
+ // First request.
+ scoped_ptr<OAuth2TokenService::Request> request(
+ oauth2_service_->StartRequest(scopes, &consumer_));
+ message_loop_.RunUntilIdle();
+
+ 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_successful_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_errors_);
+ EXPECT_EQ("token", consumer_.last_token_);
+
+ // Second request, should return the same token without needing a network
+ // request.
+ scoped_ptr<OAuth2TokenService::Request> request2(
+ oauth2_service_->StartRequest(scopes, &consumer_));
+ message_loop_.RunUntilIdle();
+
+ // No new network fetcher.
+ EXPECT_EQ(fetcher, factory_.GetFetcherByID(0));
+ EXPECT_EQ(2, consumer_.number_of_successful_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_errors_);
+ EXPECT_EQ("token", consumer_.last_token_);
+
+ // Invalidating the token should return a new token on the next request.
+ oauth2_service_->InvalidateToken(scopes, consumer_.last_token_);
+ scoped_ptr<OAuth2TokenService::Request> request3(
+ oauth2_service_->StartRequest(scopes, &consumer_));
+ message_loop_.RunUntilIdle();
+ 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_successful_tokens_);
+ EXPECT_EQ(0, consumer_.number_of_errors_);
+ EXPECT_EQ("token2", consumer_.last_token_);
+}
« no previous file with comments | « chrome/browser/signin/oauth2_token_service.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698