Chromium Code Reviews| Index: ios/chrome/browser/payments/payment_request_unittest.mm |
| diff --git a/ios/chrome/browser/payments/payment_request_unittest.mm b/ios/chrome/browser/payments/payment_request_unittest.mm |
| index 61e584b2c95019936f962731e18378ff46e6fac0..4f59b44ab5904c126f48f6250b51a36dbe089b3c 100644 |
| --- a/ios/chrome/browser/payments/payment_request_unittest.mm |
| +++ b/ios/chrome/browser/payments/payment_request_unittest.mm |
| @@ -4,6 +4,9 @@ |
| #include "ios/chrome/browser/payments/payment_request.h" |
| +#include <memory> |
| + |
| +#include "base/memory/ptr_util.h" |
|
please use gerrit instead
2017/07/06 14:52:24
Not used, I believe.
Moe
2017/07/07 02:24:53
Done.
|
| #include "base/strings/utf_string_conversions.h" |
| #include "base/test/scoped_task_environment.h" |
| #include "components/autofill/core/browser/autofill_test_utils.h" |
| @@ -14,9 +17,11 @@ |
| #include "components/payments/core/currency_formatter.h" |
| #include "components/payments/core/payment_method_data.h" |
| #include "ios/chrome/browser/application_context.h" |
| +#include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" |
| #include "ios/chrome/browser/payments/payment_request_test_util.h" |
| #include "ios/chrome/browser/payments/test_payment_request.h" |
| #include "ios/web/public/payments/payment_request.h" |
| +#import "ios/web/public/test/fakes/test_web_state.h" |
| #include "testing/gmock/include/gmock/gmock-matchers.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -43,6 +48,11 @@ namespace payments { |
| class PaymentRequestTest : public testing::Test { |
| protected: |
| + PaymentRequestTest() { |
|
please use gerrit instead
2017/07/06 14:52:24
PaymentRequestTest()
: chrome_browser_state_(T
Moe
2017/07/07 02:24:54
Done.
|
| + TestChromeBrowserState::Builder test_cbs_builder; |
| + chrome_browser_state_ = test_cbs_builder.Build(); |
| + } |
| + |
| // Returns PaymentDetails with one shipping option that's selected. |
| web::PaymentDetails CreateDetailsWithShippingOption() { |
| web::PaymentDetails details; |
| @@ -69,6 +79,9 @@ class PaymentRequestTest : public testing::Test { |
| } |
| base::test::ScopedTaskEnvironment scoped_task_environment_; |
| + |
| + web::TestWebState web_state_; |
| + std::unique_ptr<TestChromeBrowserState> chrome_browser_state_; |
| }; |
| // Tests that the payments::CurrencyFormatter is constructed with the correct |
| @@ -81,6 +94,7 @@ TEST_F(PaymentRequestTest, CreatesCurrencyFormatterCorrectly) { |
| web_payment_request.details.total.amount.currency = base::ASCIIToUTF16("USD"); |
| TestPaymentRequest payment_request1(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| CurrencyFormatter* currency_formatter = |
| payment_request1.GetOrCreateCurrencyFormatter(); |
| @@ -89,6 +103,7 @@ TEST_F(PaymentRequestTest, CreatesCurrencyFormatterCorrectly) { |
| web_payment_request.details.total.amount.currency = base::ASCIIToUTF16("JPY"); |
| TestPaymentRequest payment_request2(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| currency_formatter = payment_request2.GetOrCreateCurrencyFormatter(); |
| EXPECT_EQ(base::UTF8ToUTF16("¥55"), currency_formatter->Format("55.00")); |
| @@ -98,6 +113,7 @@ TEST_F(PaymentRequestTest, CreatesCurrencyFormatterCorrectly) { |
| base::ASCIIToUTF16("NOT_ISO4217"); |
| web_payment_request.details.total.amount.currency = base::ASCIIToUTF16("USD"); |
| TestPaymentRequest payment_request3(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| currency_formatter = payment_request3.GetOrCreateCurrencyFormatter(); |
| EXPECT_EQ(base::UTF8ToUTF16("55.00"), currency_formatter->Format("55.00")); |
| @@ -117,6 +133,7 @@ TEST_F(PaymentRequestTest, AcceptedPaymentNetworks) { |
| web_payment_request.method_data.push_back(method_datum2); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| ASSERT_EQ(2U, payment_request.supported_card_networks().size()); |
| EXPECT_EQ("visa", payment_request.supported_card_networks()[0]); |
| @@ -138,6 +155,7 @@ TEST_F(PaymentRequestTest, SupportedMethods) { |
| web_payment_request.method_data.push_back(method_datum1); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| ASSERT_EQ(2U, payment_request.supported_card_networks().size()); |
| EXPECT_EQ("visa", payment_request.supported_card_networks()[0]); |
| @@ -164,6 +182,7 @@ TEST_F(PaymentRequestTest, SupportedMethods_MultipleEntries) { |
| web_payment_request.method_data.push_back(method_datum4); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| ASSERT_EQ(2U, payment_request.supported_card_networks().size()); |
| EXPECT_EQ("visa", payment_request.supported_card_networks()[0]); |
| @@ -180,6 +199,7 @@ TEST_F(PaymentRequestTest, SupportedMethods_OnlyBasicCard) { |
| web_payment_request.method_data.push_back(method_datum1); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| // All of the basic card networks are supported. |
| @@ -206,6 +226,7 @@ TEST_F(PaymentRequestTest, SupportedMethods_BasicCard_WithSpecificMethod) { |
| web_payment_request.method_data.push_back(method_datum1); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| // All of the basic card networks are supported, but JCB is first because it |
| @@ -239,6 +260,7 @@ TEST_F(PaymentRequestTest, SupportedMethods_BasicCard_Overlap) { |
| web_payment_request.method_data.push_back(method_datum2); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| EXPECT_EQ(3u, payment_request.supported_card_networks().size()); |
| @@ -260,6 +282,7 @@ TEST_F(PaymentRequestTest, SupportedMethods_BasicCard_WithSupportedNetworks) { |
| web_payment_request.method_data.push_back(method_datum1); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| // Only the specified networks are supported. |
| @@ -284,6 +307,7 @@ TEST_F(PaymentRequestTest, AddAutofillPaymentInstrument) { |
| personal_data_manager.AddTestingCreditCard(&credit_card_1); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| EXPECT_EQ(1U, payment_request.payment_methods().size()); |
| @@ -308,6 +332,7 @@ TEST_F(PaymentRequestTest, AddAutofillProfile) { |
| personal_data_manager.AddTestingProfile(&profile_1); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| EXPECT_EQ(1U, payment_request.shipping_profiles().size()); |
| EXPECT_EQ(1U, payment_request.contact_profiles().size()); |
| @@ -344,6 +369,7 @@ TEST_F(PaymentRequestTest, SelectedShippingOptions) { |
| web_payment_request.details = std::move(details); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| // The last one marked "selected" should be selected. |
| EXPECT_EQ(base::UTF8ToUTF16("option:3"), |
| @@ -367,6 +393,7 @@ TEST_F(PaymentRequestTest, SelectedProfiles_NoProfiles) { |
| // No profiles are selected because none are available! |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| EXPECT_EQ(nullptr, payment_request.selected_shipping_profile()); |
| EXPECT_EQ(nullptr, payment_request.selected_contact_profile()); |
| @@ -390,6 +417,7 @@ TEST_F(PaymentRequestTest, SelectedProfiles_Complete) { |
| // address2 is selected because it has the most use count (Frecency model). |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| EXPECT_EQ(address2.guid(), |
| payment_request.selected_shipping_profile()->guid()); |
| @@ -415,6 +443,7 @@ TEST_F(PaymentRequestTest, SelectedProfiles_Complete_NoShippingOption) { |
| // No shipping profile is selected because the merchant has not selected a |
| // shipping option. However there is a suitable contact profile. |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| EXPECT_EQ(nullptr, payment_request.selected_shipping_profile()); |
| EXPECT_EQ(address.guid(), payment_request.selected_contact_profile()->guid()); |
| @@ -443,6 +472,7 @@ TEST_F(PaymentRequestTest, SelectedProfiles_Incomplete) { |
| // Even though address1 has more use counts, address2 is selected because it |
| // is complete. |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| EXPECT_EQ(address2.guid(), |
| payment_request.selected_shipping_profile()->guid()); |
| @@ -479,6 +509,7 @@ TEST_F(PaymentRequestTest, |
| // phone. address2 is selected as the shipping profile because it's the most |
| // complete for shipping. |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| EXPECT_EQ(address2.guid(), |
| payment_request.selected_shipping_profile()->guid()); |
| @@ -494,6 +525,7 @@ TEST_F(PaymentRequestTest, SelectedPaymentMethod_NoPaymentMethods) { |
| // No payment methods are selected because none are available! |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| EXPECT_EQ(nullptr, payment_request.selected_payment_method()); |
| } |
| @@ -513,6 +545,7 @@ TEST_F(PaymentRequestTest, SelectedPaymentMethod_ExpiredCard) { |
| // credit_card is selected because expired cards are valid for payment. |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| EXPECT_EQ(payment_request.selected_payment_method()->type(), |
| PaymentInstrument::Type::AUTOFILL); |
| @@ -542,6 +575,7 @@ TEST_F(PaymentRequestTest, SelectedPaymentMethod_Complete) { |
| // credit_card2 is selected because it has the most use count (Frecency |
| // model). |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| AutofillPaymentInstrument* payment_instrument = |
| static_cast<AutofillPaymentInstrument*>( |
| @@ -568,6 +602,7 @@ TEST_F(PaymentRequestTest, SelectedPaymentMethod_Incomplete) { |
| // Even though credit_card2 has more use counts, credit_card is selected |
| // because it is complete. |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| AutofillPaymentInstrument* payment_instrument = |
| static_cast<AutofillPaymentInstrument*>( |
| @@ -598,6 +633,7 @@ TEST_F(PaymentRequestTest, RecordUseStats_RequestShippingAndContactInfo) { |
| payment_request_test_util::CreateTestWebPaymentRequest(); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| AutofillPaymentInstrument* payment_instrument = |
| static_cast<AutofillPaymentInstrument*>( |
| @@ -634,6 +670,7 @@ TEST_F(PaymentRequestTest, RecordUseStats_SameShippingAndContactInfoProfile) { |
| payment_request_test_util::CreateTestWebPaymentRequest(); |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| AutofillPaymentInstrument* payment_instrument = |
| static_cast<AutofillPaymentInstrument*>( |
| @@ -671,6 +708,7 @@ TEST_F(PaymentRequestTest, RecordUseStats_RequestShippingOnly) { |
| web_payment_request.options.request_payer_phone = false; |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| AutofillPaymentInstrument* payment_instrument = |
| static_cast<AutofillPaymentInstrument*>( |
| @@ -704,6 +742,7 @@ TEST_F(PaymentRequestTest, RecordUseStats_RequestContactInfoOnly) { |
| web_payment_request.options.request_shipping = false; |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| AutofillPaymentInstrument* payment_instrument = |
| static_cast<AutofillPaymentInstrument*>( |
| @@ -739,6 +778,7 @@ TEST_F(PaymentRequestTest, RecordUseStats_NoShippingOrContactInfoRequested) { |
| web_payment_request.options.request_payer_phone = false; |
| TestPaymentRequest payment_request(web_payment_request, |
| + chrome_browser_state_.get(), &web_state_, |
| &personal_data_manager); |
| AutofillPaymentInstrument* payment_instrument = |
| static_cast<AutofillPaymentInstrument*>( |