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 327e4a650b22beff2708c91c5c56c7bca24691b4..787a305bbcfa5443df4ae114e159e0670cfcf372 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" |
@@ -110,5 +111,40 @@ TEST(PaymentResponseTest, CompleteCalledWithFailure) |
output.complete(scope.getScriptState(), "fail"); |
} |
+TEST(PaymentResponseTest, JSONSerializerTest) |
+{ |
+ V8TestingScope scope; |
+ mojom::blink::PaymentResponsePtr input = mojom::blink::PaymentResponse::New(); |
+ 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"; |
+ |
+ PaymentResponse output(std::move(input), new MockPaymentCompleter); |
+ 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 |