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

Unified Diff: components/autofill/content/browser/wallet/payments_client_unittest.cc

Issue 1999923002: Move the Google Payments URL functions out of content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
Index: components/autofill/content/browser/wallet/payments_client_unittest.cc
diff --git a/components/autofill/content/browser/wallet/payments_client_unittest.cc b/components/autofill/content/browser/wallet/payments_client_unittest.cc
deleted file mode 100644
index 055829e9a519480753e9af1bb22d90af18f939fd..0000000000000000000000000000000000000000
--- a/components/autofill/content/browser/wallet/payments_client_unittest.cc
+++ /dev/null
@@ -1,284 +0,0 @@
-// Copyright 2015 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 <utility>
-
-#include "base/command_line.h"
-#include "base/macros.h"
-#include "base/threading/thread_task_runner_handle.h"
-#include "base/values.h"
-#include "components/autofill/core/browser/autofill_test_utils.h"
-#include "components/autofill/core/browser/payments/payments_client.h"
-#include "components/autofill/core/common/autofill_switches.h"
-#include "content/public/test/test_browser_thread_bundle.h"
-#include "google_apis/gaia/fake_identity_provider.h"
-#include "google_apis/gaia/fake_oauth2_token_service.h"
-#include "net/url_request/test_url_fetcher_factory.h"
-#include "net/url_request/url_request_test_util.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace autofill {
-namespace payments {
-
-class PaymentsClientTest : public testing::Test, public PaymentsClientDelegate {
- public:
- PaymentsClientTest() : result_(AutofillClient::NONE) {}
- ~PaymentsClientTest() override {}
-
- void SetUp() override {
- // Silence the warning for mismatching sync and Payments servers.
- base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
- switches::kWalletServiceUseSandbox, "0");
-
- result_ = AutofillClient::NONE;
- real_pan_.clear();
- legal_message_.reset();
-
- request_context_ = new net::TestURLRequestContextGetter(
- base::ThreadTaskRunnerHandle::Get());
- token_service_.reset(new FakeOAuth2TokenService());
- identity_provider_.reset(new FakeIdentityProvider(token_service_.get()));
- client_.reset(new PaymentsClient(request_context_.get(), this));
- }
-
- void TearDown() override { client_.reset(); }
-
- // PaymentsClientDelegate
-
- IdentityProvider* GetIdentityProvider() override {
- return identity_provider_.get();
- }
-
- void OnDidGetRealPan(AutofillClient::PaymentsRpcResult result,
- const std::string& real_pan) override {
- result_ = result;
- real_pan_ = real_pan;
- }
-
- void OnDidGetUploadDetails(
- AutofillClient::PaymentsRpcResult result,
- const base::string16& context_token,
- std::unique_ptr<base::DictionaryValue> legal_message) override {
- result_ = result;
- legal_message_ = std::move(legal_message);
- }
-
- void OnDidUploadCard(AutofillClient::PaymentsRpcResult result) override {
- result_ = result;
- }
-
- protected:
- void StartUnmasking() {
- token_service_->AddAccount("example@gmail.com");
- identity_provider_->LogIn("example@gmail.com");
- PaymentsClient::UnmaskRequestDetails request_details;
- request_details.card = test::GetMaskedServerCard();
- request_details.user_response.cvc = base::ASCIIToUTF16("123");
- request_details.risk_data = "some risk data";
- client_->UnmaskCard(request_details);
- }
-
- void StartGettingUploadDetails() {
- token_service_->AddAccount("example@gmail.com");
- identity_provider_->LogIn("example@gmail.com");
- client_->GetUploadDetails("language-LOCALE");
- }
-
- void StartUploading() {
- token_service_->AddAccount("example@gmail.com");
- identity_provider_->LogIn("example@gmail.com");
- PaymentsClient::UploadRequestDetails request_details;
- request_details.card = test::GetCreditCard();
- request_details.cvc = base::ASCIIToUTF16("123");
- request_details.context_token = base::ASCIIToUTF16("context token");
- request_details.risk_data = "some risk data";
- request_details.app_locale = "language-LOCALE";
- client_->UploadCard(request_details);
- }
-
- void IssueOAuthToken() {
- token_service_->IssueAllTokensForAccount(
- "example@gmail.com", "totally_real_token",
- base::Time::Now() + base::TimeDelta::FromDays(10));
-
- // Verify the auth header.
- net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
- net::HttpRequestHeaders request_headers;
- fetcher->GetExtraRequestHeaders(&request_headers);
- std::string auth_header_value;
- EXPECT_TRUE(request_headers.GetHeader(
- net::HttpRequestHeaders::kAuthorization, &auth_header_value))
- << request_headers.ToString();
- EXPECT_EQ("Bearer totally_real_token", auth_header_value);
- }
-
- void ReturnResponse(net::HttpStatusCode response_code,
- const std::string& response_body) {
- net::TestURLFetcher* fetcher = factory_.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- fetcher->set_response_code(response_code);
- fetcher->SetResponseString(response_body);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
- }
-
- AutofillClient::PaymentsRpcResult result_;
- std::string real_pan_;
- std::unique_ptr<base::DictionaryValue> legal_message_;
-
- content::TestBrowserThreadBundle thread_bundle_;
- net::TestURLFetcherFactory factory_;
- scoped_refptr<net::TestURLRequestContextGetter> request_context_;
- std::unique_ptr<FakeOAuth2TokenService> token_service_;
- std::unique_ptr<FakeIdentityProvider> identity_provider_;
- std::unique_ptr<PaymentsClient> client_;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(PaymentsClientTest);
-};
-
-TEST_F(PaymentsClientTest, OAuthError) {
- StartUnmasking();
- token_service_->IssueErrorForAllPendingRequestsForAccount(
- "example@gmail.com",
- GoogleServiceAuthError(GoogleServiceAuthError::SERVICE_UNAVAILABLE));
- EXPECT_EQ(AutofillClient::PERMANENT_FAILURE, result_);
- EXPECT_TRUE(real_pan_.empty());
-}
-
-TEST_F(PaymentsClientTest, UnmaskSuccess) {
- StartUnmasking();
- IssueOAuthToken();
- ReturnResponse(net::HTTP_OK, "{ \"pan\": \"1234\" }");
- EXPECT_EQ(AutofillClient::SUCCESS, result_);
- EXPECT_EQ("1234", real_pan_);
-}
-
-TEST_F(PaymentsClientTest, GetDetailsSuccess) {
- StartGettingUploadDetails();
- ReturnResponse(
- net::HTTP_OK,
- "{ \"context_token\": \"some_token\", \"legal_message\": {} }");
- EXPECT_EQ(AutofillClient::SUCCESS, result_);
- EXPECT_NE(nullptr, legal_message_.get());
-}
-
-TEST_F(PaymentsClientTest, UploadSuccess) {
- StartUploading();
- IssueOAuthToken();
- ReturnResponse(net::HTTP_OK, "{}");
- EXPECT_EQ(AutofillClient::SUCCESS, result_);
-}
-
-TEST_F(PaymentsClientTest, GetDetailsFollowedByUploadSuccess) {
- StartGettingUploadDetails();
- ReturnResponse(
- net::HTTP_OK,
- "{ \"context_token\": \"some_token\", \"legal_message\": {} }");
- EXPECT_EQ(AutofillClient::SUCCESS, result_);
-
- result_ = AutofillClient::NONE;
-
- StartUploading();
- IssueOAuthToken();
- ReturnResponse(net::HTTP_OK, "{}");
- EXPECT_EQ(AutofillClient::SUCCESS, result_);
-}
-
-TEST_F(PaymentsClientTest, UnmaskMissingPan) {
- StartUnmasking();
- ReturnResponse(net::HTTP_OK, "{}");
- EXPECT_EQ(AutofillClient::PERMANENT_FAILURE, result_);
-}
-
-TEST_F(PaymentsClientTest, GetDetailsMissingContextToken) {
- StartGettingUploadDetails();
- ReturnResponse(net::HTTP_OK, "{ \"legal_message\": {} }");
- EXPECT_EQ(AutofillClient::PERMANENT_FAILURE, result_);
-}
-
-TEST_F(PaymentsClientTest, GetDetailsMissingLegalMessage) {
- StartGettingUploadDetails();
- ReturnResponse(net::HTTP_OK, "{ \"context_token\": \"some_token\" }");
- EXPECT_EQ(AutofillClient::PERMANENT_FAILURE, result_);
- EXPECT_EQ(nullptr, legal_message_.get());
-}
-
-TEST_F(PaymentsClientTest, RetryFailure) {
- StartUnmasking();
- IssueOAuthToken();
- ReturnResponse(net::HTTP_OK, "{ \"error\": { \"code\": \"INTERNAL\" } }");
- EXPECT_EQ(AutofillClient::TRY_AGAIN_FAILURE, result_);
- EXPECT_EQ("", real_pan_);
-}
-
-TEST_F(PaymentsClientTest, PermanentFailure) {
- StartUnmasking();
- IssueOAuthToken();
- ReturnResponse(net::HTTP_OK,
- "{ \"error\": { \"code\": \"ANYTHING_ELSE\" } }");
- EXPECT_EQ(AutofillClient::PERMANENT_FAILURE, result_);
- EXPECT_EQ("", real_pan_);
-}
-
-TEST_F(PaymentsClientTest, MalformedResponse) {
- StartUnmasking();
- IssueOAuthToken();
- ReturnResponse(net::HTTP_OK, "{ \"error_code\": \"WRONG_JSON_FORMAT\" }");
- EXPECT_EQ(AutofillClient::PERMANENT_FAILURE, result_);
- EXPECT_EQ("", real_pan_);
-}
-
-TEST_F(PaymentsClientTest, ReauthNeeded) {
- {
- StartUnmasking();
- IssueOAuthToken();
- ReturnResponse(net::HTTP_UNAUTHORIZED, "");
- // No response yet.
- EXPECT_EQ(AutofillClient::NONE, result_);
- EXPECT_EQ("", real_pan_);
-
- // Second HTTP_UNAUTHORIZED causes permanent failure.
- IssueOAuthToken();
- ReturnResponse(net::HTTP_UNAUTHORIZED, "");
- EXPECT_EQ(AutofillClient::PERMANENT_FAILURE, result_);
- EXPECT_EQ("", real_pan_);
- }
-
- result_ = AutofillClient::NONE;
- real_pan_.clear();
-
- {
- StartUnmasking();
- IssueOAuthToken();
- ReturnResponse(net::HTTP_UNAUTHORIZED, "");
- // No response yet.
- EXPECT_EQ(AutofillClient::NONE, result_);
- EXPECT_EQ("", real_pan_);
-
- // HTTP_OK after first HTTP_UNAUTHORIZED results in success.
- IssueOAuthToken();
- ReturnResponse(net::HTTP_OK, "{ \"pan\": \"1234\" }");
- EXPECT_EQ(AutofillClient::SUCCESS, result_);
- EXPECT_EQ("1234", real_pan_);
- }
-}
-
-TEST_F(PaymentsClientTest, NetworkError) {
- StartUnmasking();
- IssueOAuthToken();
- ReturnResponse(net::HTTP_REQUEST_TIMEOUT, std::string());
- EXPECT_EQ(AutofillClient::NETWORK_ERROR, result_);
- EXPECT_EQ("", real_pan_);
-}
-
-TEST_F(PaymentsClientTest, OtherError) {
- StartUnmasking();
- IssueOAuthToken();
- ReturnResponse(net::HTTP_FORBIDDEN, std::string());
- EXPECT_EQ(AutofillClient::PERMANENT_FAILURE, result_);
- EXPECT_EQ("", real_pan_);
-}
-
-} // namespace autofill
-} // namespace payments
« no previous file with comments | « components/autofill/content/browser/wallet/OWNERS ('k') | components/autofill/content/browser/wallet/wallet_service_url.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698