Index: components/payments/content/payment_request_state_unittest.cc |
diff --git a/components/payments/content/payment_request_state_unittest.cc b/components/payments/content/payment_request_state_unittest.cc |
index 3f1ac1166e406cd7aca68d9550fc7ba823e45604..f92169d8bc4f31ca7076ae4eee17ec182d7d24f6 100644 |
--- a/components/payments/content/payment_request_state_unittest.cc |
+++ b/components/payments/content/payment_request_state_unittest.cc |
@@ -340,4 +340,65 @@ TEST_F(PaymentRequestStateTest, GeneratePaymentResponse_BasicCard) { |
response()->stringified_details); |
} |
+// Tests the the generated PaymentResponse has the correct values for the |
+// shipping address. |
+TEST_F(PaymentRequestStateTest, GeneratePaymentResponse_ShippingAddress) { |
+ mojom::PaymentOptionsPtr options = mojom::PaymentOptions::New(); |
+ options->request_shipping = true; |
+ RecreateStateWithOptions(std::move(options)); |
+ |
+ EXPECT_TRUE(state()->is_ready_to_pay()); |
+ state()->GeneratePaymentResponse(); |
+ |
+ // Check that all the expected values were set. |
+ EXPECT_EQ("US", response()->shipping_address->country); |
+ EXPECT_EQ("666 Erebus St.", response()->shipping_address->address_line[0]); |
+ EXPECT_EQ("Apt 8", response()->shipping_address->address_line[1]); |
+ EXPECT_EQ("CA", response()->shipping_address->region); |
+ EXPECT_EQ("Elysium", response()->shipping_address->city); |
+ EXPECT_EQ("", response()->shipping_address->dependent_locality); |
+ EXPECT_EQ("91111", response()->shipping_address->postal_code); |
+ EXPECT_EQ("", response()->shipping_address->sorting_code); |
+ EXPECT_EQ("", response()->shipping_address->language_code); |
+ EXPECT_EQ("Underworld", response()->shipping_address->organization); |
+ EXPECT_EQ("John H. Doe", response()->shipping_address->recipient); |
+ EXPECT_EQ("16502111111", response()->shipping_address->phone); |
+} |
+ |
+// Tests the the generated PaymentResponse has the correct values for the |
+// contact details when all values are requested. |
+TEST_F(PaymentRequestStateTest, GeneratePaymentResponse_ContactDetails_All) { |
+ // Request all contact detail values. |
+ mojom::PaymentOptionsPtr options = mojom::PaymentOptions::New(); |
+ options->request_payer_name = true; |
+ options->request_payer_phone = true; |
+ options->request_payer_email = true; |
+ RecreateStateWithOptions(std::move(options)); |
+ |
+ EXPECT_TRUE(state()->is_ready_to_pay()); |
+ state()->GeneratePaymentResponse(); |
+ |
+ // Check that all the expected values were set. |
+ EXPECT_EQ("John H. Doe", response()->payer_name.value()); |
+ EXPECT_EQ("16502111111", response()->payer_phone.value()); |
+ EXPECT_EQ("johndoe@hades.com", response()->payer_email.value()); |
+} |
+ |
+// Tests the the generated PaymentResponse has the correct values for the |
+// contact details when all values are requested. |
+TEST_F(PaymentRequestStateTest, GeneratePaymentResponse_ContactDetails_Some) { |
+ // Request one contact detail value. |
+ mojom::PaymentOptionsPtr options = mojom::PaymentOptions::New(); |
+ options->request_payer_name = true; |
+ RecreateStateWithOptions(std::move(options)); |
+ |
+ EXPECT_TRUE(state()->is_ready_to_pay()); |
+ state()->GeneratePaymentResponse(); |
+ |
+ // Check that the name was set, but not the other values. |
+ EXPECT_EQ("John H. Doe", response()->payer_name.value()); |
+ EXPECT_FALSE(response()->payer_phone.has_value()); |
+ EXPECT_FALSE(response()->payer_email.has_value()); |
+} |
+ |
} // namespace payments |