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 |