Chromium Code Reviews| Index: third_party/WebKit/Source/modules/payments/PaymentResponseTest.cpp |
| diff --git a/third_party/WebKit/Source/modules/payments/PaymentResponseTest.cpp b/third_party/WebKit/Source/modules/payments/PaymentResponseTest.cpp |
| index d2e54e322f4daafa359cd714d801d85caa37ab26..b15ab43bffea2d497ac2a6a627459929bd8cf940 100644 |
| --- a/third_party/WebKit/Source/modules/payments/PaymentResponseTest.cpp |
| +++ b/third_party/WebKit/Source/modules/payments/PaymentResponseTest.cpp |
| @@ -9,6 +9,7 @@ |
| #include "bindings/core/v8/ScriptValue.h" |
| #include "bindings/core/v8/V8Binding.h" |
| #include "bindings/core/v8/V8BindingForTesting.h" |
| +#include "modules/payments/PaymentAddress.h" |
| #include "modules/payments/PaymentCompleter.h" |
| #include "modules/payments/PaymentTestHelper.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| @@ -112,5 +113,41 @@ TEST(PaymentResponseTest, CompleteCalledWithFailure) |
| output.complete(scope.getScriptState(), "fail"); |
| } |
| +TEST(PaymentResponseTest, JSONSerializerTest) |
| +{ |
| + V8TestingScope scope; |
| + mojom::blink::PaymentResponsePtr input = buildPaymentResponseForTest(); |
|
please use gerrit instead
2016/09/20 08:15:46
This function is just "mojom::blink::PaymentRespon
zino
2016/09/20 16:55:43
Done.
|
| + input->method_name = "foo"; |
| + input->stringified_details = "{\"transactionId\": 123}"; |
| + input->shipping_option = "standardShippingOption"; |
| + input->payer_email = "abc@gmail.com"; |
| + input->payer_phone = "0123"; |
| + input->shipping_address = mojom::blink::PaymentAddress::New(); |
| + input->shipping_address->country = "US"; |
| + input->shipping_address->language_code = "en"; |
| + input->shipping_address->script_code = "Latn"; |
| + input->shipping_address->address_line = mojo::WTFArray<WTF::String>::New(3); |
| + input->shipping_address->address_line[0] = "340 Main St"; |
| + input->shipping_address->address_line[1] = "BIN1"; |
| + input->shipping_address->address_line[2] = "First floor"; |
| + MockPaymentCompleter* completeCallback = new MockPaymentCompleter; |
| + |
| + PaymentResponse output(std::move(input), completeCallback); |
|
please use gerrit instead
2016/09/20 08:15:46
Inline the completeCallback, because you're using
zino
2016/09/20 16:55:43
Done.
|
| + ScriptValue jsonObject = output.toJSONForBinding(scope.getScriptState()); |
| + EXPECT_TRUE(jsonObject.isObject()); |
| + |
| + String jsonString = v8StringToWebCoreString<String>( |
| + v8::JSON::Stringify(scope.context(), |
| + jsonObject.v8Value().As<v8::Object>()).ToLocalChecked(), |
| + DoNotExternalize); |
| + String expected = "{\"methodName\":\"foo\",\"details\":{\"transactionId\":123}," |
| + "\"shippingAddress\":{\"country\":\"US\",\"addressLine\":[\"340 Main St\"," |
| + "\"BIN1\",\"First floor\"],\"region\":\"\",\"city\":\"\",\"dependentLocality\":" |
| + "\"\",\"postalCode\":\"\",\"sortingCode\":\"\",\"languageCode\":\"en-Latn\"," |
| + "\"organization\":\"\",\"recipient\":\"\",\"phone\":\"\"},\"shippingOption\":" |
| + "\"standardShippingOption\",\"payerEmail\":\"abc@gmail.com\",\"payerPhone\":\"0123\"}"; |
| + EXPECT_EQ(expected, jsonString); |
| +} |
| + |
| } // namespace |
| } // namespace blink |