OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 | 6 |
7 #include "base/stringprintf.h" | 7 #include "base/stringprintf.h" |
8 #include "chrome/browser/signin/oauth2_token_service.h" | 8 #include "chrome/browser/signin/oauth2_token_service.h" |
9 #include "chrome/browser/signin/oauth2_token_service_test_util.h" | 9 #include "chrome/browser/signin/oauth2_token_service_test_util.h" |
10 #include "chrome/browser/signin/token_service_factory.h" | 10 #include "chrome/browser/signin/token_service_factory.h" |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 TEST_F(OAuth2TokenServiceTest, RetryingConsumer) { | 398 TEST_F(OAuth2TokenServiceTest, RetryingConsumer) { |
399 oauth2_service_->set_refresh_token("refreshToken"); | 399 oauth2_service_->set_refresh_token("refreshToken"); |
400 RetryingTestingOAuth2TokenServiceConsumer consumer(oauth2_service_.get()); | 400 RetryingTestingOAuth2TokenServiceConsumer consumer(oauth2_service_.get()); |
401 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( | 401 scoped_ptr<OAuth2TokenService::Request> request(oauth2_service_->StartRequest( |
402 std::set<std::string>(), &consumer)); | 402 std::set<std::string>(), &consumer)); |
403 message_loop_.RunUntilIdle(); | 403 message_loop_.RunUntilIdle(); |
404 EXPECT_EQ(0, consumer.number_of_successful_tokens_); | 404 EXPECT_EQ(0, consumer.number_of_successful_tokens_); |
405 EXPECT_EQ(0, consumer.number_of_errors_); | 405 EXPECT_EQ(0, consumer.number_of_errors_); |
406 | 406 |
407 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); | 407 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
408 EXPECT_TRUE(fetcher); | 408 ASSERT_TRUE(fetcher); |
409 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); | 409 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); |
410 fetcher->SetResponseString(std::string()); | 410 fetcher->SetResponseString(std::string()); |
411 fetcher->delegate()->OnURLFetchComplete(fetcher); | 411 fetcher->delegate()->OnURLFetchComplete(fetcher); |
412 EXPECT_EQ(0, consumer.number_of_successful_tokens_); | 412 EXPECT_EQ(0, consumer.number_of_successful_tokens_); |
413 EXPECT_EQ(1, consumer.number_of_errors_); | 413 EXPECT_EQ(1, consumer.number_of_errors_); |
414 | 414 |
415 fetcher = factory_.GetFetcherByID(0); | 415 fetcher = factory_.GetFetcherByID(0); |
416 EXPECT_TRUE(fetcher); | 416 ASSERT_TRUE(fetcher); |
417 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); | 417 fetcher->set_response_code(net::HTTP_UNAUTHORIZED); |
418 fetcher->SetResponseString(std::string()); | 418 fetcher->SetResponseString(std::string()); |
419 fetcher->delegate()->OnURLFetchComplete(fetcher); | 419 fetcher->delegate()->OnURLFetchComplete(fetcher); |
420 EXPECT_EQ(0, consumer.number_of_successful_tokens_); | 420 EXPECT_EQ(0, consumer.number_of_successful_tokens_); |
421 EXPECT_EQ(2, consumer.number_of_errors_); | 421 EXPECT_EQ(2, consumer.number_of_errors_); |
422 } | 422 } |
| 423 |
| 424 TEST_F(OAuth2TokenServiceTest, InvalidateToken) { |
| 425 std::set<std::string> scopes; |
| 426 oauth2_service_->set_refresh_token("refreshToken"); |
| 427 |
| 428 // First request. |
| 429 scoped_ptr<OAuth2TokenService::Request> request( |
| 430 oauth2_service_->StartRequest(scopes, &consumer_)); |
| 431 message_loop_.RunUntilIdle(); |
| 432 |
| 433 EXPECT_EQ(0, consumer_.number_of_successful_tokens_); |
| 434 EXPECT_EQ(0, consumer_.number_of_errors_); |
| 435 net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0); |
| 436 EXPECT_TRUE(fetcher); |
| 437 fetcher->set_response_code(net::HTTP_OK); |
| 438 fetcher->SetResponseString(GetValidTokenResponse("token", 3600)); |
| 439 fetcher->delegate()->OnURLFetchComplete(fetcher); |
| 440 EXPECT_EQ(1, consumer_.number_of_successful_tokens_); |
| 441 EXPECT_EQ(0, consumer_.number_of_errors_); |
| 442 EXPECT_EQ("token", consumer_.last_token_); |
| 443 |
| 444 // Second request, should return the same token without needing a network |
| 445 // request. |
| 446 scoped_ptr<OAuth2TokenService::Request> request2( |
| 447 oauth2_service_->StartRequest(scopes, &consumer_)); |
| 448 message_loop_.RunUntilIdle(); |
| 449 |
| 450 // No new network fetcher. |
| 451 EXPECT_EQ(fetcher, factory_.GetFetcherByID(0)); |
| 452 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); |
| 453 EXPECT_EQ(0, consumer_.number_of_errors_); |
| 454 EXPECT_EQ("token", consumer_.last_token_); |
| 455 |
| 456 // Invalidating the token should return a new token on the next request. |
| 457 oauth2_service_->InvalidateToken(scopes, consumer_.last_token_); |
| 458 scoped_ptr<OAuth2TokenService::Request> request3( |
| 459 oauth2_service_->StartRequest(scopes, &consumer_)); |
| 460 message_loop_.RunUntilIdle(); |
| 461 EXPECT_EQ(2, consumer_.number_of_successful_tokens_); |
| 462 EXPECT_EQ(0, consumer_.number_of_errors_); |
| 463 fetcher = factory_.GetFetcherByID(0); |
| 464 EXPECT_TRUE(fetcher); |
| 465 fetcher->set_response_code(net::HTTP_OK); |
| 466 fetcher->SetResponseString(GetValidTokenResponse("token2", 3600)); |
| 467 fetcher->delegate()->OnURLFetchComplete(fetcher); |
| 468 EXPECT_EQ(3, consumer_.number_of_successful_tokens_); |
| 469 EXPECT_EQ(0, consumer_.number_of_errors_); |
| 470 EXPECT_EQ("token2", consumer_.last_token_); |
| 471 } |
OLD | NEW |