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

Unified Diff: chrome/browser/autofill/wallet/wallet_client_unittest.cc

Issue 12434004: Move remaining Autofill code to //components/autofill. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix long lines Created 7 years, 9 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: chrome/browser/autofill/wallet/wallet_client_unittest.cc
diff --git a/chrome/browser/autofill/wallet/wallet_client_unittest.cc b/chrome/browser/autofill/wallet/wallet_client_unittest.cc
deleted file mode 100644
index e1e9babd32d85d2d46aae2e92603b4515a2a431e..0000000000000000000000000000000000000000
--- a/chrome/browser/autofill/wallet/wallet_client_unittest.cc
+++ /dev/null
@@ -1,1441 +0,0 @@
-// Copyright (c) 2012 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 "base/json/json_reader.h"
-#include "base/json/json_writer.h"
-#include "base/logging.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/string_util.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/values.h"
-#include "chrome/browser/autofill/wallet/cart.h"
-#include "chrome/browser/autofill/wallet/full_wallet.h"
-#include "chrome/browser/autofill/wallet/instrument.h"
-#include "chrome/browser/autofill/wallet/wallet_client.h"
-#include "chrome/browser/autofill/wallet/wallet_client_observer.h"
-#include "chrome/browser/autofill/wallet/wallet_items.h"
-#include "chrome/browser/autofill/wallet/wallet_test_util.h"
-#include "chrome/test/base/testing_profile.h"
-#include "components/autofill/common/autocheckout_status.h"
-#include "content/public/test/test_browser_thread.h"
-#include "googleurl/src/gurl.h"
-#include "net/base/net_errors.h"
-#include "net/http/http_status_code.h"
-#include "net/url_request/test_url_fetcher_factory.h"
-#include "net/url_request/url_fetcher_delegate.h"
-#include "net/url_request/url_request_status.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace {
-
-const char kGoogleTransactionId[] = "google-transaction-id";
-const char kMerchantUrl[] = "https://example.com/path?key=value";
-
-const char kGetFullWalletValidResponse[] =
- "{"
- " \"expiration_month\":12,"
- " \"expiration_year\":2012,"
- " \"iin\":\"iin\","
- " \"rest\":\"rest\","
- " \"billing_address\":"
- " {"
- " \"id\":\"id\","
- " \"phone_number\":\"phone_number\","
- " \"postal_address\":"
- " {"
- " \"recipient_name\":\"recipient_name\","
- " \"address_line\":"
- " ["
- " \"address_line_1\","
- " \"address_line_2\""
- " ],"
- " \"locality_name\":\"locality_name\","
- " \"administrative_area_name\":\"administrative_area_name\","
- " \"postal_code_number\":\"postal_code_number\","
- " \"country_name_code\":\"country_name_code\""
- " }"
- " },"
- " \"shipping_address\":"
- " {"
- " \"id\":\"ship_id\","
- " \"phone_number\":\"ship_phone_number\","
- " \"postal_address\":"
- " {"
- " \"recipient_name\":\"ship_recipient_name\","
- " \"address_line\":"
- " ["
- " \"ship_address_line_1\","
- " \"ship_address_line_2\""
- " ],"
- " \"locality_name\":\"ship_locality_name\","
- " \"administrative_area_name\":\"ship_administrative_area_name\","
- " \"postal_code_number\":\"ship_postal_code_number\","
- " \"country_name_code\":\"ship_country_name_code\""
- " }"
- " },"
- " \"required_action\":"
- " ["
- " ]"
- "}";
-
-const char kGetFullWalletInvalidResponse[] =
- "{"
- " \"garbage\":123"
- "}";
-
-const char kGetWalletItemsValidResponse[] =
- "{"
- " \"required_action\":"
- " ["
- " ],"
- " \"google_transaction_id\":\"google_transaction_id\","
- " \"instrument\":"
- " ["
- " {"
- " \"descriptive_name\":\"descriptive_name\","
- " \"type\":\"VISA\","
- " \"supported_currency\":\"currency_code\","
- " \"last_four_digits\":\"last_four_digits\","
- " \"expiration_month\":12,"
- " \"expiration_year\":2012,"
- " \"brand\":\"monkeys\","
- " \"billing_address\":"
- " {"
- " \"name\":\"name\","
- " \"address1\":\"address1\","
- " \"address2\":\"address2\","
- " \"city\":\"city\","
- " \"state\":\"state\","
- " \"postal_code\":\"postal_code\","
- " \"phone_number\":\"phone_number\","
- " \"country_code\":\"country_code\""
- " },"
- " \"status\":\"VALID\","
- " \"object_id\":\"default_instrument_id\""
- " }"
- " ],"
- " \"default_instrument_id\":\"default_instrument_id\","
- " \"obfuscated_gaia_id\":\"obfuscated_gaia_id\","
- " \"address\":"
- " ["
- " ],"
- " \"default_address_id\":\"default_address_id\","
- " \"required_legal_document\":"
- " ["
- " ]"
- "}";
-
-const char kSaveAddressValidResponse[] =
- "{"
- " \"shipping_address_id\":\"shipping_address_id\""
- "}";
-
-const char kSaveAddressWithRequiredActionsValidResponse[] =
- "{"
- " \"required_action\":"
- " ["
- " \" \\treqUIRE_PhOnE_number \\n\\r\","
- " \"INVALID_form_field\""
- " ]"
- "}";
-
-const char kSaveWithInvalidRequiredActionsResponse[] =
- "{"
- " \"required_action\":"
- " ["
- " \" setup_wallet\","
- " \" \\treqUIRE_PhOnE_number \\n\\r\","
- " \"INVALID_form_field\""
- " ]"
- "}";
-
-const char kSaveInvalidResponse[] =
- "{"
- " \"garbage\":123"
- "}";
-
-const char kSaveInstrumentValidResponse[] =
- "{"
- " \"instrument_id\":\"instrument_id\""
- "}";
-
-const char kSaveInstrumentWithRequiredActionsValidResponse[] =
- "{"
- " \"required_action\":"
- " ["
- " \" \\treqUIRE_PhOnE_number \\n\\r\","
- " \"INVALID_form_field\""
- " ]"
- "}";
-
-const char kSaveInstrumentAndAddressValidResponse[] =
- "{"
- " \"shipping_address_id\":\"shipping_address_id\","
- " \"instrument_id\":\"instrument_id\""
- "}";
-
-const char kSaveInstrumentAndAddressWithRequiredActionsValidResponse[] =
- "{"
- " \"required_action\":"
- " ["
- " \" \\treqUIRE_PhOnE_number \\n\\r\","
- " \"INVALID_form_field\""
- " ]"
- "}";
-
-const char kSaveInstrumentAndAddressMissingAddressResponse[] =
- "{"
- " \"instrument_id\":\"instrument_id\""
- "}";
-
-const char kSaveInstrumentAndAddressMissingInstrumentResponse[] =
- "{"
- " \"shipping_address_id\":\"shipping_address_id\""
- "}";
-
-const char kUpdateInstrumentValidResponse[] =
- "{"
- " \"instrument_id\":\"instrument_id\""
- "}";
-
-const char kUpdateInstrumentWithRequiredActionsValidResponse[] =
- "{"
- " \"required_action\":"
- " ["
- " \" \\treqUIRE_PhOnE_number \\n\\r\","
- " \"INVALID_form_field\""
- " ]"
- "}";
-
-const char kUpdateInstrumentMalformedResponse[] =
- "{"
- " \"cheese\":\"monkeys\""
- "}";
-
-const char kAuthenticateInstrumentFailureResponse[] =
- "{"
- " \"auth_result\":\"anything else\""
- "}";
-
-const char kAuthenticateInstrumentSuccessResponse[] =
- "{"
- " \"auth_result\":\"SUCCESS\""
- "}";
-
-// The JSON below is used to test against the request payload being sent to
-// Online Wallet. It's indented differently since JSONWriter creates compact
-// JSON from DictionaryValues.
-
-const char kAcceptLegalDocumentsValidRequest[] =
- "{"
- "\"accepted_legal_document\":"
- "["
- "\"doc_1\","
- "\"doc_2\""
- "],"
- "\"google_transaction_id\":\"google-transaction-id\","
- "\"merchant_domain\":\"https://example.com/\""
- "}";
-
-const char kAuthenticateInstrumentValidRequest[] =
- "{"
- "\"instrument_escrow_handle\":\"escrow_handle\","
- "\"instrument_id\":\"instrument_id\","
- "\"risk_params\":\"\""
- "}";
-
-const char kGetFullWalletValidRequest[] =
- "{"
- "\"cart\":"
- "{"
- "\"currency_code\":\"currency_code\","
- "\"total_price\":\"currency_code\""
- "},"
- "\"encrypted_otp\":\"encrypted_one_time_pad\","
- "\"feature\":\"REQUEST_AUTOCOMPLETE\","
- "\"google_transaction_id\":\"google_transaction_id\","
- "\"merchant_domain\":\"https://example.com/\","
- "\"risk_params\":\"\","
- "\"selected_address_id\":\"shipping_address_id\","
- "\"selected_instrument_id\":\"instrument_id\","
- "\"session_material\":\"session_material\""
- "}";
-
-const char kGetWalletItemsValidRequest[] =
- "{"
- "\"merchant_domain\":\"https://example.com/\","
- "\"risk_params\":\"\""
- "}";
-
-const char kSaveAddressValidRequest[] =
- "{"
- "\"merchant_domain\":\"https://example.com/\","
- "\"risk_params\":\"\","
- "\"shipping_address\":"
- "{"
- "\"phone_number\":\"ship_phone_number\","
- "\"postal_address\":"
- "{"
- "\"address_line\":"
- "["
- "\"ship_address_line_1\","
- "\"ship_address_line_2\""
- "],"
- "\"administrative_area_name\":\"ship_admin_area_name\","
- "\"country_name_code\":\"ship_country_name_code\","
- "\"locality_name\":\"ship_locality_name\","
- "\"postal_code_number\":\"ship_postal_code_number\","
- "\"recipient_name\":\"ship_recipient_name\""
- "}"
- "}"
- "}";
-
-const char kSaveInstrumentValidRequest[] =
- "{"
- "\"instrument\":"
- "{"
- "\"credit_card\":"
- "{"
- "\"address\":"
- "{"
- "\"address_line\":"
- "["
- "\"address_line_1\","
- "\"address_line_2\""
- "],"
- "\"administrative_area_name\":\"admin_area_name\","
- "\"country_name_code\":\"country_name_code\","
- "\"locality_name\":\"locality_name\","
- "\"postal_code_number\":\"postal_code_number\","
- "\"recipient_name\":\"recipient_name\""
- "},"
- "\"exp_month\":12,"
- "\"exp_year\":2012,"
- "\"fop_type\":\"VISA\","
- "\"last_4_digits\":\"4448\""
- "},"
- "\"type\":\"CREDIT_CARD\""
- "},"
- "\"instrument_escrow_handle\":\"escrow_handle\","
- "\"instrument_phone_number\":\"phone_number\","
- "\"merchant_domain\":\"https://example.com/\","
- "\"risk_params\":\"\""
- "}";
-
-const char kSaveInstrumentAndAddressValidRequest[] =
- "{"
- "\"instrument\":"
- "{"
- "\"credit_card\":"
- "{"
- "\"address\":"
- "{"
- "\"address_line\":"
- "["
- "\"address_line_1\","
- "\"address_line_2\""
- "],"
- "\"administrative_area_name\":\"admin_area_name\","
- "\"country_name_code\":\"country_name_code\","
- "\"locality_name\":\"locality_name\","
- "\"postal_code_number\":\"postal_code_number\","
- "\"recipient_name\":\"recipient_name\""
- "},"
- "\"exp_month\":12,"
- "\"exp_year\":2012,"
- "\"fop_type\":\"VISA\","
- "\"last_4_digits\":\"4448\""
- "},"
- "\"type\":\"CREDIT_CARD\""
- "},"
- "\"instrument_escrow_handle\":\"escrow_handle\","
- "\"instrument_phone_number\":\"phone_number\","
- "\"merchant_domain\":\"https://example.com/\","
- "\"risk_params\":\"\","
- "\"shipping_address\":"
- "{"
- "\"phone_number\":\"ship_phone_number\","
- "\"postal_address\":"
- "{"
- "\"address_line\":"
- "["
- "\"ship_address_line_1\","
- "\"ship_address_line_2\""
- "],"
- "\"administrative_area_name\":\"ship_admin_area_name\","
- "\"country_name_code\":\"ship_country_name_code\","
- "\"locality_name\":\"ship_locality_name\","
- "\"postal_code_number\":\"ship_postal_code_number\","
- "\"recipient_name\":\"ship_recipient_name\""
- "}"
- "}"
- "}";
-
-const char kSendAutocheckoutStatusOfSuccessValidRequest[] =
- "{"
- "\"google_transaction_id\":\"google_transaction_id\","
- "\"merchant_domain\":\"https://example.com/\","
- "\"success\":true"
- "}";
-
-const char kSendAutocheckoutStatusOfFailureValidRequest[] =
- "{"
- "\"google_transaction_id\":\"google_transaction_id\","
- "\"merchant_domain\":\"https://example.com/\","
- "\"reason\":\"CANNOT_PROCEED\","
- "\"success\":false"
- "}";
-
-const char kUpdateInstrumentValidRequest[] =
- "{"
- "\"instrument_phone_number\":\"phone_number\","
- "\"merchant_domain\":\"https://example.com/\","
- "\"risk_params\":\"\","
- "\"upgraded_billing_address\":"
- "{"
- "\"address_line\":"
- "["
- "\"address_line_1\","
- "\"address_line_2\""
- "],"
- "\"administrative_area_name\":\"admin_area_name\","
- "\"country_name_code\":\"country_name_code\","
- "\"locality_name\":\"locality_name\","
- "\"postal_code_number\":\"postal_code_number\","
- "\"recipient_name\":\"recipient_name\""
- "},"
- "\"upgraded_instrument_id\":\"instrument_id\""
- "}";
-
-} // namespace
-
-namespace autofill {
-namespace wallet {
-
-class WalletClientTest : public testing::Test {
- public:
- WalletClientTest() : io_thread_(content::BrowserThread::IO) {}
-
- virtual void SetUp() {
- io_thread_.StartIOThread();
- profile_.CreateRequestContext();
- }
-
- virtual void TearDown() {
- profile_.ResetRequestContext();
- io_thread_.Stop();
- }
-
- std::string GetData(net::TestURLFetcher* fetcher) {
- std::string data = fetcher->upload_data();
- scoped_ptr<Value> root(base::JSONReader::Read(data));
-
- // If this is not a JSON dictionary, return plain text.
- if (root.get() == NULL || !root->IsType(Value::TYPE_DICTIONARY))
- return data;
-
- // Remove api_key entry (to prevent accidental leak), return JSON as text.
- DictionaryValue* dict = static_cast<DictionaryValue*>(root.get());
- dict->Remove("api_key", NULL);
- base::JSONWriter::Write(dict, &data);
- return data;
- }
-
- void VerifyAndFinishRequest(const net::TestURLFetcherFactory& fetcher_factory,
- net::HttpStatusCode response_code,
- const std::string& request_body,
- const std::string& response_body) {
- net::TestURLFetcher* fetcher = fetcher_factory.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- EXPECT_EQ(request_body, GetData(fetcher));
- fetcher->set_response_code(response_code);
- fetcher->SetResponseString(response_body);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
- }
- protected:
- TestingProfile profile_;
-
- private:
- // The profile's request context must be released on the IO thread.
- content::TestBrowserThread io_thread_;
-};
-
-class MockWalletClientObserver : public WalletClientObserver {
- public:
- MockWalletClientObserver()
- : full_wallets_received_(0), wallet_items_received_(0) {}
- ~MockWalletClientObserver() {}
-
- MOCK_METHOD0(OnDidAcceptLegalDocuments, void());
- MOCK_METHOD1(OnDidAuthenticateInstrument, void(bool success));
- MOCK_METHOD2(OnDidSaveAddress,
- void(const std::string& address_id,
- const std::vector<RequiredAction>& required_actions));
- MOCK_METHOD2(OnDidSaveInstrument,
- void(const std::string& instrument_id,
- const std::vector<RequiredAction>& required_actions));
- MOCK_METHOD3(OnDidSaveInstrumentAndAddress,
- void(const std::string& instrument_id,
- const std::string& shipping_address_id,
- const std::vector<RequiredAction>& required_actions));
- MOCK_METHOD0(OnDidSendAutocheckoutStatus, void());
- MOCK_METHOD2(OnDidUpdateInstrument,
- void(const std::string& instrument_id,
- const std::vector<RequiredAction>& required_actions));
- MOCK_METHOD0(OnWalletError, void());
- MOCK_METHOD0(OnMalformedResponse, void());
- MOCK_METHOD1(OnNetworkError, void(int response_code));
-
- virtual void OnDidGetFullWallet(scoped_ptr<FullWallet> full_wallet) OVERRIDE {
- EXPECT_TRUE(full_wallet);
- ++full_wallets_received_;
- }
- virtual void OnDidGetWalletItems(scoped_ptr<WalletItems> wallet_items)
- OVERRIDE {
- EXPECT_TRUE(wallet_items);
- ++wallet_items_received_;
- }
- size_t full_wallets_received() const { return full_wallets_received_; }
- size_t wallet_items_received() const { return wallet_items_received_; }
-
- private:
- size_t full_wallets_received_;
- size_t wallet_items_received_;
-};
-
-// TODO(ahutter): Implement API compatibility tests. See
-// http://crbug.com/164465.
-
-// TODO(ahutter): Improve this when the error body is captured. See
-// http://crbug.com/164410.
-TEST_F(WalletClientTest, WalletErrorOnExpectedVoidResponse) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnWalletError()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SendAutocheckoutStatus(autofill::SUCCESS,
- GURL(kMerchantUrl),
- "");
- net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
-}
-
-// TODO(ahutter): Improve this when the error body is captured. See
-// http://crbug.com/164410.
-TEST_F(WalletClientTest, WalletErrorOnExpectedResponse) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnWalletError()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.GetWalletItems(GURL(kMerchantUrl));
- net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
-}
-
-TEST_F(WalletClientTest, NetworkFailureOnExpectedVoidResponse) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnNetworkError(net::HTTP_UNAUTHORIZED)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SendAutocheckoutStatus(autofill::SUCCESS,
- GURL(kMerchantUrl),
- "");
- net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
-}
-
-TEST_F(WalletClientTest, NetworkFailureOnExpectedResponse) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnNetworkError(net::HTTP_UNAUTHORIZED)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.GetWalletItems(GURL(kMerchantUrl));
- net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- fetcher->set_response_code(net::HTTP_UNAUTHORIZED);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
-}
-
-TEST_F(WalletClientTest, RequestError) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnWalletError()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SendAutocheckoutStatus(autofill::SUCCESS,
- GURL(kMerchantUrl),
- "");
- net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- fetcher->set_response_code(net::HTTP_BAD_REQUEST);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
-}
-
-TEST_F(WalletClientTest, GetFullWalletSuccess) {
- MockWalletClientObserver observer;
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- Cart cart("currency_code", "currency_code");
- wallet_client.GetFullWallet("instrument_id",
- "shipping_address_id",
- GURL(kMerchantUrl),
- cart,
- "google_transaction_id",
- DIALOG_TYPE_REQUEST_AUTOCOMPLETE);
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(
- "session_material|encrypted_one_time_pad");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kGetFullWalletValidRequest,
- kGetFullWalletValidResponse);
- EXPECT_EQ(1U, observer.full_wallets_received());
-}
-
-TEST_F(WalletClientTest, GetFullWalletEncryptionDown) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer,
- OnNetworkError(net::HTTP_INTERNAL_SERVER_ERROR)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- Cart cart("currency_code", "currency_code");
- wallet_client.GetFullWallet("instrument_id",
- "shipping_address_id",
- GURL(kMerchantUrl),
- cart,
- "google_transaction_id",
- DIALOG_TYPE_REQUEST_AUTOCOMPLETE);
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- EXPECT_EQ(0U, observer.full_wallets_received());
-}
-
-TEST_F(WalletClientTest, GetFullWalletEncryptionMalformed) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- Cart cart("currency_code", "currency_code");
- wallet_client.GetFullWallet("instrument_id",
- "shipping_address_id",
- GURL(kMerchantUrl),
- cart,
- "google_transaction_id",
- DIALOG_TYPE_REQUEST_AUTOCOMPLETE);
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(
- "session_material:encrypted_one_time_pad");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- EXPECT_EQ(0U, observer.full_wallets_received());
-}
-
-TEST_F(WalletClientTest, GetFullWalletMalformedResponse) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- Cart cart("currency_code", "currency_code");
- wallet_client.GetFullWallet("instrument_id",
- "shipping_address_id",
- GURL(kMerchantUrl),
- cart,
- "google_transaction_id",
- DIALOG_TYPE_REQUEST_AUTOCOMPLETE);
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(
- "session_material|encrypted_one_time_pad");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kGetFullWalletValidRequest,
- kGetFullWalletInvalidResponse);
- EXPECT_EQ(0U, observer.full_wallets_received());
-}
-
-TEST_F(WalletClientTest, AcceptLegalDocuments) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnDidAcceptLegalDocuments()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- std::vector<std::string> doc_ids;
- doc_ids.push_back("doc_1");
- doc_ids.push_back("doc_2");
- wallet_client.AcceptLegalDocuments(doc_ids,
- kGoogleTransactionId,
- GURL(kMerchantUrl));
- net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- EXPECT_EQ(kAcceptLegalDocumentsValidRequest, GetData(fetcher));
- fetcher->SetResponseString(")]}'"); // Invalid JSON. Should be ignored.
- fetcher->set_response_code(net::HTTP_OK);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
-}
-
-TEST_F(WalletClientTest, AuthenticateInstrumentSucceeded) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnDidAuthenticateInstrument(true)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.AuthenticateInstrument("instrument_id",
- "cvv",
- "obfuscated_gaia_id");
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kAuthenticateInstrumentValidRequest,
- kAuthenticateInstrumentSuccessResponse);
-}
-
-TEST_F(WalletClientTest, AuthenticateInstrumentFailed) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnDidAuthenticateInstrument(false)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.AuthenticateInstrument("instrument_id",
- "cvv",
- "obfuscated_gaia_id");
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kAuthenticateInstrumentValidRequest,
- kAuthenticateInstrumentFailureResponse);
-}
-
-TEST_F(WalletClientTest, AuthenticateInstrumentEscrowDown) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer,
- OnNetworkError(net::HTTP_INTERNAL_SERVER_ERROR)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.AuthenticateInstrument("instrument_id",
- "cvv",
- "obfuscated_gaia_id");
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-}
-
-TEST_F(WalletClientTest, AuthenticateInstrumentEscrowMalformed) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.AuthenticateInstrument("instrument_id",
- "cvv",
- "obfuscated_gaia_id");
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-}
-
-TEST_F(WalletClientTest, AuthenticateInstrumentFailedMalformedResponse) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.AuthenticateInstrument("instrument_id",
- "cvv",
- "obfuscated_gaia_id");
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kAuthenticateInstrumentValidRequest,
- kSaveInvalidResponse);
-}
-
-// TODO(ahutter): Add failure tests for GetWalletItems.
-
-TEST_F(WalletClientTest, GetWalletItems) {
- MockWalletClientObserver observer;
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.GetWalletItems(GURL(kMerchantUrl));
- net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- EXPECT_EQ(kGetWalletItemsValidRequest, GetData(fetcher));
- fetcher->set_response_code(net::HTTP_OK);
- fetcher->SetResponseString(kGetWalletItemsValidResponse);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
-
- EXPECT_EQ(1U, observer.wallet_items_received());
-}
-
-TEST_F(WalletClientTest, SaveAddressSucceeded) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer,
- OnDidSaveAddress("shipping_address_id",
- std::vector<RequiredAction>())).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveAddress(*address, GURL(kMerchantUrl));
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveAddressValidRequest,
- kSaveAddressValidResponse);
-}
-
-TEST_F(WalletClientTest, SaveAddressWithRequiredActionsSucceeded) {
- MockWalletClientObserver observer;
-
- std::vector<RequiredAction> required_actions;
- required_actions.push_back(REQUIRE_PHONE_NUMBER);
- required_actions.push_back(INVALID_FORM_FIELD);
-
- EXPECT_CALL(observer,
- OnDidSaveAddress(std::string(),
- required_actions)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveAddress(*address, GURL(kMerchantUrl));
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveAddressValidRequest,
- kSaveAddressWithRequiredActionsValidResponse);
-}
-
-TEST_F(WalletClientTest, SaveAddressFailedInvalidRequiredAction) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveAddress(*address, GURL(kMerchantUrl));
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveAddressValidRequest,
- kSaveWithInvalidRequiredActionsResponse);
-}
-
-TEST_F(WalletClientTest, SaveAddressFailedMalformedResponse) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveAddress(*address, GURL(kMerchantUrl));
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveAddressValidRequest,
- kSaveInvalidResponse);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentSucceeded) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer,
- OnDidSaveInstrument("instrument_id",
- std::vector<RequiredAction>())).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrument(*instrument,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveInstrumentValidRequest,
- kSaveInstrumentValidResponse);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentWithRequiredActionsSucceeded) {
- MockWalletClientObserver observer;
-
- std::vector<RequiredAction> required_actions;
- required_actions.push_back(REQUIRE_PHONE_NUMBER);
- required_actions.push_back(INVALID_FORM_FIELD);
-
- EXPECT_CALL(observer,
- OnDidSaveInstrument(std::string(),
- required_actions)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrument(*instrument,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveInstrumentValidRequest,
- kSaveInstrumentWithRequiredActionsValidResponse);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentFailedInvalidRequiredActions) {
- MockWalletClientObserver observer;
-
- EXPECT_CALL(observer, OnMalformedResponse());
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrument(*instrument,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveInstrumentValidRequest,
- kSaveWithInvalidRequiredActionsResponse);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentEscrowDown) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer,
- OnNetworkError(net::HTTP_INTERNAL_SERVER_ERROR)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrument(*instrument,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentEscrowMalformed) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrument(*instrument,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentFailedMalformedResponse) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrument(*instrument,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveInstrumentValidRequest,
- kSaveInvalidResponse);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentAndAddressSucceeded) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer,
- OnDidSaveInstrumentAndAddress(
- "instrument_id",
- "shipping_address_id",
- std::vector<RequiredAction>())).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrumentAndAddress(*instrument,
- *address,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveInstrumentAndAddressValidRequest,
- kSaveInstrumentAndAddressValidResponse);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentAndAddressWithRequiredActionsSucceeded) {
- MockWalletClientObserver observer;
-
- std::vector<RequiredAction> required_actions;
- required_actions.push_back(REQUIRE_PHONE_NUMBER);
- required_actions.push_back(INVALID_FORM_FIELD);
-
- EXPECT_CALL(observer,
- OnDidSaveInstrumentAndAddress(
- std::string(),
- std::string(),
- required_actions)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrumentAndAddress(*instrument,
- *address,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
- VerifyAndFinishRequest(
- factory,
- net::HTTP_OK,
- kSaveInstrumentAndAddressValidRequest,
- kSaveInstrumentAndAddressWithRequiredActionsValidResponse);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentAndAddressFailedInvalidRequiredAction) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrumentAndAddress(*instrument,
- *address,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveInstrumentAndAddressValidRequest,
- kSaveWithInvalidRequiredActionsResponse);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentAndAddressEscrowDown) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer,
- OnNetworkError(net::HTTP_INTERNAL_SERVER_ERROR)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrumentAndAddress(*instrument,
- *address,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_INTERNAL_SERVER_ERROR);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentAndAddressEscrowMalformed) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrumentAndAddress(*instrument,
- *address,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString(std::string());
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentAndAddressFailedAddressMissing) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrumentAndAddress(*instrument,
- *address,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveInstrumentAndAddressValidRequest,
- kSaveInstrumentAndAddressMissingAddressResponse);
-}
-
-TEST_F(WalletClientTest, SaveInstrumentAndAddressFailedInstrumentMissing) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Instrument> instrument = GetTestInstrument();
-
- scoped_ptr<Address> address = GetTestShippingAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SaveInstrumentAndAddress(*instrument,
- *address,
- "obfuscated_gaia_id",
- GURL(kMerchantUrl));
-
- net::TestURLFetcher* encryption_fetcher = factory.GetFetcherByID(1);
- ASSERT_TRUE(encryption_fetcher);
- encryption_fetcher->set_response_code(net::HTTP_OK);
- encryption_fetcher->SetResponseString("escrow_handle");
- encryption_fetcher->delegate()->OnURLFetchComplete(encryption_fetcher);
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kSaveInstrumentAndAddressValidRequest,
- kSaveInstrumentAndAddressMissingInstrumentResponse);
-}
-
-TEST_F(WalletClientTest, UpdateInstrumentSucceeded) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer,
- OnDidUpdateInstrument("instrument_id",
- std::vector<RequiredAction>())).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Address> address = GetTestAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.UpdateInstrument("instrument_id",
- *address,
- GURL(kMerchantUrl));
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kUpdateInstrumentValidRequest,
- kUpdateInstrumentValidResponse);
-}
-
-TEST_F(WalletClientTest, UpdateInstrumentWithRequiredActionsSucceeded) {
- MockWalletClientObserver observer;
-
- std::vector<RequiredAction> required_actions;
- required_actions.push_back(REQUIRE_PHONE_NUMBER);
- required_actions.push_back(INVALID_FORM_FIELD);
-
- EXPECT_CALL(observer,
- OnDidUpdateInstrument(std::string(),
- required_actions)).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Address> address = GetTestAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.UpdateInstrument("instrument_id",
- *address,
- GURL(kMerchantUrl));
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kUpdateInstrumentValidRequest,
- kUpdateInstrumentWithRequiredActionsValidResponse);
-}
-
-TEST_F(WalletClientTest, UpdateInstrumentFailedInvalidRequiredAction) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Address> address = GetTestAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.UpdateInstrument("instrument_id",
- *address,
- GURL(kMerchantUrl));
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kUpdateInstrumentValidRequest,
- kSaveWithInvalidRequiredActionsResponse);
-}
-
-TEST_F(WalletClientTest, UpdateInstrumentMalformedResponse) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnMalformedResponse()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- scoped_ptr<Address> address = GetTestAddress();
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.UpdateInstrument("instrument_id",
- *address,
- GURL(kMerchantUrl));
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kUpdateInstrumentValidRequest,
- kUpdateInstrumentMalformedResponse);
-}
-
-TEST_F(WalletClientTest, SendAutocheckoutOfStatusSuccess) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnDidSendAutocheckoutStatus()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SendAutocheckoutStatus(autofill::SUCCESS,
- GURL(kMerchantUrl),
- "google_transaction_id");
- net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- EXPECT_EQ(kSendAutocheckoutStatusOfSuccessValidRequest, GetData(fetcher));
- fetcher->SetResponseString(")]}'"); // Invalid JSON. Should be ignored.
- fetcher->set_response_code(net::HTTP_OK);
- fetcher->delegate()->OnURLFetchComplete(fetcher);
-}
-
-TEST_F(WalletClientTest, SendAutocheckoutStatusOfFailure) {
- MockWalletClientObserver observer;
- EXPECT_CALL(observer, OnDidSendAutocheckoutStatus()).Times(1);
-
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- wallet_client.SendAutocheckoutStatus(autofill::CANNOT_PROCEED,
- GURL(kMerchantUrl),
- "google_transaction_id");
- net::TestURLFetcher* fetcher = factory.GetFetcherByID(0);
- ASSERT_TRUE(fetcher);
- EXPECT_EQ(kSendAutocheckoutStatusOfFailureValidRequest, GetData(fetcher));
- fetcher->set_response_code(net::HTTP_OK);
- fetcher->SetResponseString(")]}'"); // Invalid JSON. Should be ignored.
- fetcher->delegate()->OnURLFetchComplete(fetcher);
-}
-
-TEST_F(WalletClientTest, HasRequestInProgress) {
- MockWalletClientObserver observer;
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- EXPECT_FALSE(wallet_client.HasRequestInProgress());
-
- wallet_client.GetWalletItems(GURL(kMerchantUrl));
- EXPECT_TRUE(wallet_client.HasRequestInProgress());
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kGetWalletItemsValidRequest,
- kGetWalletItemsValidResponse);
- EXPECT_FALSE(wallet_client.HasRequestInProgress());
-}
-
-TEST_F(WalletClientTest, PendingRequest) {
- MockWalletClientObserver observer;
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- ASSERT_EQ(0U, wallet_client.pending_requests_.size());
-
- // Shouldn't queue the first request.
- wallet_client.GetWalletItems(GURL(kMerchantUrl));
- EXPECT_EQ(0U, wallet_client.pending_requests_.size());
-
- wallet_client.GetWalletItems(GURL(kMerchantUrl));
- EXPECT_EQ(1U, wallet_client.pending_requests_.size());
-
- VerifyAndFinishRequest(factory,
- net::HTTP_OK,
- kGetWalletItemsValidRequest,
- kGetWalletItemsValidResponse);
- EXPECT_EQ(0U, wallet_client.pending_requests_.size());
-
- EXPECT_CALL(observer, OnWalletError()).Times(1);
- VerifyAndFinishRequest(factory,
- net::HTTP_INTERNAL_SERVER_ERROR,
- kGetWalletItemsValidRequest,
- std::string());
-}
-
-TEST_F(WalletClientTest, CancelPendingRequests) {
- MockWalletClientObserver observer;
- net::TestURLFetcherFactory factory;
-
- WalletClient wallet_client(profile_.GetRequestContext(), &observer);
- ASSERT_EQ(0U, wallet_client.pending_requests_.size());
-
- wallet_client.GetWalletItems(GURL(kMerchantUrl));
- wallet_client.GetWalletItems(GURL(kMerchantUrl));
- wallet_client.GetWalletItems(GURL(kMerchantUrl));
- EXPECT_EQ(2U, wallet_client.pending_requests_.size());
-
- wallet_client.CancelPendingRequests();
- EXPECT_EQ(0U, wallet_client.pending_requests_.size());
-}
-
-} // namespace wallet
-} // namespace autofill
« no previous file with comments | « chrome/browser/autofill/wallet/wallet_client_observer.h ('k') | chrome/browser/autofill/wallet/wallet_items.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698