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

Side by Side Diff: chrome/browser/signin/ubertoken_fetcher_unittest.cc

Issue 9301003: Change X-Auto-Login implementation to use OAuth token. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Copyright. Created 8 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/signin/ubertoken_fetcher.h"
6
7 #include "chrome/browser/signin/token_service.h"
8 #include "chrome/browser/signin/token_service_unittest.h"
9 #include "chrome/common/chrome_notification_types.h"
10 #include "chrome/common/net/gaia/gaia_constants.h"
11 #include "content/test/test_url_fetcher_factory.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 class MockUbertokenConsumer : public UbertokenConsumer {
15 public:
16 MockUbertokenConsumer()
17 : nb_correct_token_(0),
18 last_error_(GoogleServiceAuthError::None()),
19 nb_error_(0) {
20 }
21 virtual ~MockUbertokenConsumer() {}
22
23 virtual void OnUbertokenSuccess(const std::string& token) OVERRIDE {
24 last_token_ = token;
25 ++ nb_correct_token_;
26 }
27
28 virtual void OnUbertokenFailure(const GoogleServiceAuthError& error)
29 OVERRIDE {
30 last_error_ = error;
31 ++nb_error_;
32 }
33
34 std::string last_token_;
35 int nb_correct_token_;
36 GoogleServiceAuthError last_error_;
37 int nb_error_;
38 };
39
40 class UbertokenFetcherTest : public TokenServiceTestHarness {
41 public:
42 virtual void SetUp() OVERRIDE {
43 TokenServiceTestHarness::SetUp();
44 service_->UpdateCredentials(credentials_);
45 fetcher_.reset(new UbertokenFetcher(profile_.get(), &consumer_));
46 }
47
48 virtual void TearDown() OVERRIDE {
49 TokenServiceTestHarness::TearDown();
50 }
51
52 protected:
53 TestURLFetcherFactory factory_;
54 MockUbertokenConsumer consumer_;
55 scoped_ptr<UbertokenFetcher> fetcher_;
56 };
57
58 TEST_F(UbertokenFetcherTest, TestSuccessWithoutRefreshToken) {
59 fetcher_->StartFetchingToken();
60 TokenService::TokenAvailableDetails
61 details(GaiaConstants::kGaiaOAuth2LoginRefreshToken, "refreshToken");
62 service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
63 "refreshToken");
64 fetcher_->Observe(chrome::NOTIFICATION_TOKEN_AVAILABLE,
65 content::Source<TokenService>(service_),
66 content::Details<const TokenService::TokenAvailableDetails>(
67 &details));
68 fetcher_->OnRefreshTokenResponse("accessToken", 3600);
69 fetcher_->OnUberAuthTokenSuccess("uberToken");
70 EXPECT_EQ(0, consumer_.nb_error_);
71 EXPECT_EQ(1, consumer_.nb_correct_token_);
72 EXPECT_EQ("uberToken", consumer_.last_token_);
73 }
74
75 TEST_F(UbertokenFetcherTest, TestSuccessWithRefreshToken) {
76 service_->IssueAuthTokenForTest(GaiaConstants::kGaiaOAuth2LoginRefreshToken,
77 "refreshToken");
78 fetcher_->StartFetchingToken();
79 fetcher_->OnRefreshTokenResponse("accessToken", 3600);
80 fetcher_->OnUberAuthTokenSuccess("uberToken");
81 EXPECT_EQ(0, consumer_.nb_error_);
82 EXPECT_EQ(1, consumer_.nb_correct_token_);
83 EXPECT_EQ("uberToken", consumer_.last_token_);
84 }
85
86
87 TEST_F(UbertokenFetcherTest, TestFailures) {
88 GoogleServiceAuthError error(GoogleServiceAuthError::USER_NOT_SIGNED_UP);
89 EXPECT_EQ(0, consumer_.nb_error_);
90 TokenService::TokenRequestFailedDetails
91 details(GaiaConstants::kGaiaOAuth2LoginRefreshToken, error);
92 fetcher_->Observe(
93 chrome::NOTIFICATION_TOKEN_REQUEST_FAILED,
94 content::Source<TokenService>(service_),
95 content::Details<const TokenService::TokenRequestFailedDetails>(
96 &details));
97 EXPECT_EQ(1, consumer_.nb_error_);
98 fetcher_->OnOAuthError();
99 EXPECT_EQ(2, consumer_.nb_error_);
100 fetcher_->OnNetworkError(401);
101 EXPECT_EQ(3, consumer_.nb_error_);
102 fetcher_->OnUberAuthTokenFailure(error);
103 EXPECT_EQ(4, consumer_.nb_error_);
104 }
OLDNEW
« no previous file with comments | « chrome/browser/signin/ubertoken_fetcher.cc ('k') | chrome/browser/ui/auto_login_info_bar_delegate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698