Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/payments/content/payment_request_state.h" | 5 #include "components/payments/content/payment_request_state.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/memory/weak_ptr.h" | 9 #include "base/memory/weak_ptr.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 266 EXPECT_FALSE(state()->is_ready_to_pay()); | 266 EXPECT_FALSE(state()->is_ready_to_pay()); |
| 267 | 267 |
| 268 state()->SetSelectedContactProfile(test_address()); | 268 state()->SetSelectedContactProfile(test_address()); |
| 269 EXPECT_EQ(2, num_on_selected_information_changed_called()); | 269 EXPECT_EQ(2, num_on_selected_information_changed_called()); |
| 270 | 270 |
| 271 // Ready to pay! | 271 // Ready to pay! |
| 272 EXPECT_TRUE(state()->is_ready_to_pay()); | 272 EXPECT_TRUE(state()->is_ready_to_pay()); |
| 273 } | 273 } |
| 274 | 274 |
| 275 // Test generating a PaymentResponse. | 275 // Test generating a PaymentResponse. |
| 276 TEST_F(PaymentRequestStateTest, GeneratePaymentResponse) { | 276 TEST_F(PaymentRequestStateTest, GeneratePaymentResponse_SupportedMethod) { |
| 277 // Default options (no shipping, no contact info). | 277 // Default options (no shipping, no contact info). |
| 278 RecreateStateWithOptions(mojom::PaymentOptions::New()); | 278 RecreateStateWithOptions(mojom::PaymentOptions::New()); |
| 279 state()->SetSelectedInstrument(state()->available_instruments()[0].get()); | 279 state()->SetSelectedInstrument(state()->available_instruments()[0].get()); |
| 280 EXPECT_EQ(1, num_on_selected_information_changed_called()); | 280 EXPECT_EQ(1, num_on_selected_information_changed_called()); |
| 281 EXPECT_TRUE(state()->is_ready_to_pay()); | 281 EXPECT_TRUE(state()->is_ready_to_pay()); |
| 282 | 282 |
| 283 // TODO(mathp): Currently synchronous, when async will need a RunLoop. | 283 // TODO(mathp): Currently synchronous, when async will need a RunLoop. |
| 284 // "visa" is specified directly in the supportedMethods so it is returned | |
| 285 // as the method name. | |
| 284 state()->GeneratePaymentResponse(); | 286 state()->GeneratePaymentResponse(); |
| 285 EXPECT_EQ("visa", response()->method_name); | 287 EXPECT_EQ("visa", response()->method_name); |
| 286 EXPECT_EQ( | 288 EXPECT_EQ( |
| 287 "{\"billingAddress\":" | 289 "{\"billingAddress\":" |
| 288 "{\"addressLine\":[\"666 Erebus St.\",\"Apt 8\"]," | 290 "{\"addressLine\":[\"666 Erebus St.\",\"Apt 8\"]," |
| 289 "\"city\":\"Elysium\"," | 291 "\"city\":\"Elysium\"," |
| 290 "\"country\":\"US\"," | 292 "\"country\":\"US\"," |
| 291 "\"organization\":\"Underworld\"," | 293 "\"organization\":\"Underworld\"," |
| 292 "\"phone\":\"16502111111\"," | 294 "\"phone\":\"16502111111\"," |
| 293 "\"postalCode\":\"91111\"," | 295 "\"postalCode\":\"91111\"," |
| 294 "\"recipient\":\"John H. Doe\"," | 296 "\"recipient\":\"John H. Doe\"," |
| 295 "\"region\":\"CA\"}," | 297 "\"region\":\"CA\"}," |
| 296 "\"cardNumber\":\"4111111111111111\"," | 298 "\"cardNumber\":\"4111111111111111\"," |
| 297 "\"cardSecurityCode\":\"123\"," | 299 "\"cardSecurityCode\":\"123\"," |
| 298 "\"cardholderName\":\"Test User\"," | 300 "\"cardholderName\":\"Test User\"," |
| 299 "\"expiryMonth\":\"11\"," | 301 "\"expiryMonth\":\"11\"," |
| 300 "\"expiryYear\":\"2017\"}", | 302 "\"expiryYear\":\"2017\"}", |
| 301 response()->stringified_details); | 303 response()->stringified_details); |
| 302 } | 304 } |
| 303 | 305 |
| 306 // Test generating a PaymentResponse when the method is specified through | |
| 307 // "basic-card". | |
| 308 TEST_F(PaymentRequestStateTest, GeneratePaymentResponse_BasicCard) { | |
| 309 // The method data supports visa through basic-card. | |
| 310 mojom::PaymentMethodDataPtr entry = mojom::PaymentMethodData::New(); | |
| 311 entry->supported_methods.push_back("basic-card"); | |
| 312 entry->supported_networks.push_back(mojom::BasicCardNetwork::VISA); | |
| 313 std::vector<mojom::PaymentMethodDataPtr> method_data; | |
| 314 method_data.push_back(std::move(entry)); | |
| 315 RecreateStateWithOptionsAndDetails(mojom::PaymentOptions::New(), | |
| 316 mojom::PaymentDetails::New(), | |
| 317 std::move(method_data)); | |
| 318 | |
| 319 EXPECT_TRUE(state()->is_ready_to_pay()); | |
| 320 | |
| 321 // TODO(mathp): Currently synchronous, when async will need a RunLoop. | |
| 322 // "basic-card" is specified so it is returned as the method name. | |
| 323 state()->GeneratePaymentResponse(); | |
| 324 EXPECT_EQ(kBasicCardMethodName, response()->method_name); | |
|
please use gerrit instead
2017/03/25 17:07:33
Let's use "basic-card" here, similar to line 311.
Mathieu
2017/03/25 20:27:25
Done.
| |
| 325 EXPECT_EQ( | |
| 326 "{\"billingAddress\":" | |
| 327 "{\"addressLine\":[\"666 Erebus St.\",\"Apt 8\"]," | |
| 328 "\"city\":\"Elysium\"," | |
| 329 "\"country\":\"US\"," | |
| 330 "\"organization\":\"Underworld\"," | |
| 331 "\"phone\":\"16502111111\"," | |
| 332 "\"postalCode\":\"91111\"," | |
| 333 "\"recipient\":\"John H. Doe\"," | |
| 334 "\"region\":\"CA\"}," | |
| 335 "\"cardNumber\":\"4111111111111111\"," | |
| 336 "\"cardSecurityCode\":\"123\"," | |
| 337 "\"cardholderName\":\"Test User\"," | |
| 338 "\"expiryMonth\":\"11\"," | |
| 339 "\"expiryYear\":\"2017\"}", | |
| 340 response()->stringified_details); | |
| 341 } | |
| 342 | |
| 304 } // namespace payments | 343 } // namespace payments |
| OLD | NEW |