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

Unified Diff: chrome/browser/google_apis/request_sender_unittest.cc

Issue 96413002: Move c/b/google_apis to google_apis/drive. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 years 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/google_apis/request_sender.cc ('k') | chrome/browser/google_apis/request_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/google_apis/request_sender_unittest.cc
diff --git a/chrome/browser/google_apis/request_sender_unittest.cc b/chrome/browser/google_apis/request_sender_unittest.cc
deleted file mode 100644
index 0a65cc1a0d7f1c78cb9ce1d3700520386674c70c..0000000000000000000000000000000000000000
--- a/chrome/browser/google_apis/request_sender_unittest.cc
+++ /dev/null
@@ -1,250 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/google_apis/request_sender.h"
-
-#include "base/strings/string_number_conversions.h"
-#include "chrome/browser/google_apis/base_requests.h"
-#include "chrome/browser/google_apis/dummy_auth_service.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace google_apis {
-
-namespace {
-
-const char kTestRefreshToken[] = "valid-refresh-token";
-const char kTestAccessToken[] = "valid-access-token";
-
-// Enum for indicating the reason why a request is finished.
-enum FinishReason {
- NONE,
- SUCCESS,
- CANCEL,
- AUTH_FAILURE,
-};
-
-// AuthService for testing purpose. It accepts kTestRefreshToken and returns
-// kTestAccessToken + {"1", "2", "3", ...}.
-class TestAuthService : public DummyAuthService {
- public:
- TestAuthService() : auth_try_count_(0) {}
-
- virtual void StartAuthentication(
- const AuthStatusCallback& callback) OVERRIDE {
- // RequestSender should clear the rejected access token before starting
- // to request another one.
- EXPECT_FALSE(HasAccessToken());
-
- ++auth_try_count_;
-
- if (refresh_token() == kTestRefreshToken) {
- const std::string token =
- kTestAccessToken + base::IntToString(auth_try_count_);
- set_access_token(token);
- callback.Run(HTTP_SUCCESS, token);
- } else {
- set_access_token("");
- callback.Run(HTTP_UNAUTHORIZED, "");
- }
- }
-
- private:
- int auth_try_count_;
-};
-
-// The main test fixture class.
-class RequestSenderTest : public testing::Test {
- protected:
- RequestSenderTest()
- : auth_service_(new TestAuthService),
- request_sender_(auth_service_, NULL, NULL, "dummy-user-agent") {
- auth_service_->set_refresh_token(kTestRefreshToken);
- auth_service_->set_access_token(kTestAccessToken);
- }
-
- TestAuthService* auth_service_; // Owned by |request_sender_|.
- RequestSender request_sender_;
-};
-
-// Minimal implementation for AuthenticatedRequestInterface that can interact
-// with RequestSender correctly.
-class TestRequest : public AuthenticatedRequestInterface {
- public:
- TestRequest(RequestSender* sender,
- bool* start_called,
- FinishReason* finish_reason)
- : sender_(sender),
- start_called_(start_called),
- finish_reason_(finish_reason),
- weak_ptr_factory_(this) {
- }
-
- // Test the situation that the request has finished.
- void FinishRequestWithSuccess() {
- *finish_reason_ = SUCCESS;
- sender_->RequestFinished(this);
- }
-
- const std::string& passed_access_token() const {
- return passed_access_token_;
- }
-
- const ReAuthenticateCallback& passed_reauth_callback() const {
- return passed_reauth_callback_;
- }
-
- virtual void Start(const std::string& access_token,
- const std::string& custom_user_agent,
- const ReAuthenticateCallback& callback) OVERRIDE {
- *start_called_ = true;
- passed_access_token_ = access_token;
- passed_reauth_callback_ = callback;
-
- // This request class itself does not return any response at this point.
- // Each test case should respond properly by using the above methods.
- }
-
- virtual void Cancel() OVERRIDE {
- EXPECT_TRUE(*start_called_);
- *finish_reason_ = CANCEL;
- sender_->RequestFinished(this);
- }
-
- virtual void OnAuthFailed(GDataErrorCode code) OVERRIDE {
- *finish_reason_ = AUTH_FAILURE;
- sender_->RequestFinished(this);
- }
-
- virtual base::WeakPtr<AuthenticatedRequestInterface> GetWeakPtr() OVERRIDE {
- return weak_ptr_factory_.GetWeakPtr();
- }
-
- private:
- RequestSender* sender_;
- bool* start_called_;
- FinishReason* finish_reason_;
- std::string passed_access_token_;
- ReAuthenticateCallback passed_reauth_callback_;
- base::WeakPtrFactory<TestRequest> weak_ptr_factory_;
-};
-
-} // namespace
-
-TEST_F(RequestSenderTest, StartAndFinishRequest) {
- bool start_called = false;
- FinishReason finish_reason = NONE;
- TestRequest* request = new TestRequest(&request_sender_,
- &start_called,
- &finish_reason);
- base::WeakPtr<AuthenticatedRequestInterface> weak_ptr = request->GetWeakPtr();
-
- base::Closure cancel_closure = request_sender_.StartRequestWithRetry(request);
- EXPECT_TRUE(!cancel_closure.is_null());
-
- // Start is called with the specified access token. Let it succeed.
- EXPECT_TRUE(start_called);
- EXPECT_EQ(kTestAccessToken, request->passed_access_token());
- request->FinishRequestWithSuccess();
- EXPECT_FALSE(weak_ptr); // The request object is deleted.
-
- // It is safe to run the cancel closure even after the request is finished.
- // It is just no-op. The TestRequest::Cancel method is not called.
- cancel_closure.Run();
- EXPECT_EQ(SUCCESS, finish_reason);
-}
-
-TEST_F(RequestSenderTest, StartAndCancelRequest) {
- bool start_called = false;
- FinishReason finish_reason = NONE;
- TestRequest* request = new TestRequest(&request_sender_,
- &start_called,
- &finish_reason);
- base::WeakPtr<AuthenticatedRequestInterface> weak_ptr = request->GetWeakPtr();
-
- base::Closure cancel_closure = request_sender_.StartRequestWithRetry(request);
- EXPECT_TRUE(!cancel_closure.is_null());
- EXPECT_TRUE(start_called);
-
- cancel_closure.Run();
- EXPECT_EQ(CANCEL, finish_reason);
- EXPECT_FALSE(weak_ptr); // The request object is deleted.
-}
-
-TEST_F(RequestSenderTest, NoRefreshToken) {
- auth_service_->ClearRefreshToken();
- auth_service_->ClearAccessToken();
-
- bool start_called = false;
- FinishReason finish_reason = NONE;
- TestRequest* request = new TestRequest(&request_sender_,
- &start_called,
- &finish_reason);
- base::WeakPtr<AuthenticatedRequestInterface> weak_ptr = request->GetWeakPtr();
-
- base::Closure cancel_closure = request_sender_.StartRequestWithRetry(request);
- EXPECT_TRUE(!cancel_closure.is_null());
-
- // The request is not started at all because no access token is obtained.
- EXPECT_FALSE(start_called);
- EXPECT_EQ(AUTH_FAILURE, finish_reason);
- EXPECT_FALSE(weak_ptr); // The request object is deleted.
-}
-
-TEST_F(RequestSenderTest, ValidRefreshTokenAndNoAccessToken) {
- auth_service_->ClearAccessToken();
-
- bool start_called = false;
- FinishReason finish_reason = NONE;
- TestRequest* request = new TestRequest(&request_sender_,
- &start_called,
- &finish_reason);
- base::WeakPtr<AuthenticatedRequestInterface> weak_ptr = request->GetWeakPtr();
-
- base::Closure cancel_closure = request_sender_.StartRequestWithRetry(request);
- EXPECT_TRUE(!cancel_closure.is_null());
-
- // Access token should indicate that this is the first retry.
- EXPECT_TRUE(start_called);
- EXPECT_EQ(kTestAccessToken + std::string("1"),
- request->passed_access_token());
- request->FinishRequestWithSuccess();
- EXPECT_EQ(SUCCESS, finish_reason);
- EXPECT_FALSE(weak_ptr); // The request object is deleted.
-}
-
-TEST_F(RequestSenderTest, AccessTokenRejectedSeveralTimes) {
- bool start_called = false;
- FinishReason finish_reason = NONE;
- TestRequest* request = new TestRequest(&request_sender_,
- &start_called,
- &finish_reason);
- base::WeakPtr<AuthenticatedRequestInterface> weak_ptr = request->GetWeakPtr();
-
- base::Closure cancel_closure = request_sender_.StartRequestWithRetry(request);
- EXPECT_TRUE(!cancel_closure.is_null());
-
- EXPECT_TRUE(start_called);
- EXPECT_EQ(kTestAccessToken, request->passed_access_token());
- // Emulate the case that the access token was rejected by the remote service.
- request->passed_reauth_callback().Run(request);
- // New access token is fetched. Let it fail once again.
- EXPECT_EQ(kTestAccessToken + std::string("1"),
- request->passed_access_token());
- request->passed_reauth_callback().Run(request);
- // Once more.
- EXPECT_EQ(kTestAccessToken + std::string("2"),
- request->passed_access_token());
- request->passed_reauth_callback().Run(request);
-
- // Currently, limit for the retry is controlled in each request object, not
- // by the RequestSender. So with this TestRequest, RequestSender retries
- // infinitely. Let it succeed/
- EXPECT_EQ(kTestAccessToken + std::string("3"),
- request->passed_access_token());
- request->FinishRequestWithSuccess();
- EXPECT_EQ(SUCCESS, finish_reason);
- EXPECT_FALSE(weak_ptr);
-}
-
-} // namespace google_apis
« no previous file with comments | « chrome/browser/google_apis/request_sender.cc ('k') | chrome/browser/google_apis/request_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698