| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "modules/payments/PaymentResponse.h" | 5 #include "modules/payments/PaymentResponse.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ExceptionState.h" | 7 #include "bindings/core/v8/ExceptionState.h" |
| 8 #include "bindings/core/v8/ScriptState.h" | 8 #include "bindings/core/v8/ScriptState.h" |
| 9 #include "bindings/core/v8/ScriptValue.h" | 9 #include "bindings/core/v8/ScriptValue.h" |
| 10 #include "bindings/core/v8/V8Binding.h" | 10 #include "bindings/core/v8/V8Binding.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 MOCK_METHOD2(complete, ScriptPromise(ScriptState*, PaymentComplete result)); | 37 MOCK_METHOD2(complete, ScriptPromise(ScriptState*, PaymentComplete result)); |
| 38 | 38 |
| 39 DEFINE_INLINE_TRACE() {} | 39 DEFINE_INLINE_TRACE() {} |
| 40 | 40 |
| 41 private: | 41 private: |
| 42 ScriptPromise m_dummyPromise; | 42 ScriptPromise m_dummyPromise; |
| 43 }; | 43 }; |
| 44 | 44 |
| 45 TEST(PaymentResponseTest, DataCopiedOver) { | 45 TEST(PaymentResponseTest, DataCopiedOver) { |
| 46 V8TestingScope scope; | 46 V8TestingScope scope; |
| 47 payments::mojom::blink::PaymentResponsePtr input = | 47 mojom::blink::PaymentResponsePtr input = buildPaymentResponseForTest(); |
| 48 buildPaymentResponseForTest(); | |
| 49 input->method_name = "foo"; | 48 input->method_name = "foo"; |
| 50 input->stringified_details = "{\"transactionId\": 123}"; | 49 input->stringified_details = "{\"transactionId\": 123}"; |
| 51 input->shipping_option = "standardShippingOption"; | 50 input->shipping_option = "standardShippingOption"; |
| 52 input->payer_name = "Jon Doe"; | 51 input->payer_name = "Jon Doe"; |
| 53 input->payer_email = "abc@gmail.com"; | 52 input->payer_email = "abc@gmail.com"; |
| 54 input->payer_phone = "0123"; | 53 input->payer_phone = "0123"; |
| 55 MockPaymentCompleter* completeCallback = new MockPaymentCompleter; | 54 MockPaymentCompleter* completeCallback = new MockPaymentCompleter; |
| 56 | 55 |
| 57 PaymentResponse output(std::move(input), completeCallback); | 56 PaymentResponse output(std::move(input), completeCallback); |
| 58 | 57 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 72 scope.getScriptState(), | 71 scope.getScriptState(), |
| 73 details.v8Value().As<v8::Object>()->Get( | 72 details.v8Value().As<v8::Object>()->Get( |
| 74 v8String(scope.getScriptState()->isolate(), "transactionId"))); | 73 v8String(scope.getScriptState()->isolate(), "transactionId"))); |
| 75 | 74 |
| 76 ASSERT_TRUE(transactionId.v8Value()->IsNumber()); | 75 ASSERT_TRUE(transactionId.v8Value()->IsNumber()); |
| 77 EXPECT_EQ(123, transactionId.v8Value().As<v8::Number>()->Value()); | 76 EXPECT_EQ(123, transactionId.v8Value().As<v8::Number>()->Value()); |
| 78 } | 77 } |
| 79 | 78 |
| 80 TEST(PaymentResponseTest, PaymentResponseDetailsJSONObject) { | 79 TEST(PaymentResponseTest, PaymentResponseDetailsJSONObject) { |
| 81 V8TestingScope scope; | 80 V8TestingScope scope; |
| 82 payments::mojom::blink::PaymentResponsePtr input = | 81 mojom::blink::PaymentResponsePtr input = buildPaymentResponseForTest(); |
| 83 buildPaymentResponseForTest(); | |
| 84 input->stringified_details = "transactionId"; | 82 input->stringified_details = "transactionId"; |
| 85 MockPaymentCompleter* completeCallback = new MockPaymentCompleter; | 83 MockPaymentCompleter* completeCallback = new MockPaymentCompleter; |
| 86 PaymentResponse output(std::move(input), completeCallback); | 84 PaymentResponse output(std::move(input), completeCallback); |
| 87 | 85 |
| 88 ScriptValue details = | 86 ScriptValue details = |
| 89 output.details(scope.getScriptState(), scope.getExceptionState()); | 87 output.details(scope.getScriptState(), scope.getExceptionState()); |
| 90 | 88 |
| 91 ASSERT_TRUE(scope.getExceptionState().hadException()); | 89 ASSERT_TRUE(scope.getExceptionState().hadException()); |
| 92 } | 90 } |
| 93 | 91 |
| 94 TEST(PaymentResponseTest, CompleteCalledWithSuccess) { | 92 TEST(PaymentResponseTest, CompleteCalledWithSuccess) { |
| 95 V8TestingScope scope; | 93 V8TestingScope scope; |
| 96 payments::mojom::blink::PaymentResponsePtr input = | 94 mojom::blink::PaymentResponsePtr input = buildPaymentResponseForTest(); |
| 97 buildPaymentResponseForTest(); | |
| 98 input->method_name = "foo"; | 95 input->method_name = "foo"; |
| 99 input->stringified_details = "{\"transactionId\": 123}"; | 96 input->stringified_details = "{\"transactionId\": 123}"; |
| 100 MockPaymentCompleter* completeCallback = new MockPaymentCompleter; | 97 MockPaymentCompleter* completeCallback = new MockPaymentCompleter; |
| 101 PaymentResponse output(std::move(input), completeCallback); | 98 PaymentResponse output(std::move(input), completeCallback); |
| 102 | 99 |
| 103 EXPECT_CALL(*completeCallback, | 100 EXPECT_CALL(*completeCallback, |
| 104 complete(scope.getScriptState(), PaymentCompleter::Success)); | 101 complete(scope.getScriptState(), PaymentCompleter::Success)); |
| 105 | 102 |
| 106 output.complete(scope.getScriptState(), "success"); | 103 output.complete(scope.getScriptState(), "success"); |
| 107 } | 104 } |
| 108 | 105 |
| 109 TEST(PaymentResponseTest, CompleteCalledWithFailure) { | 106 TEST(PaymentResponseTest, CompleteCalledWithFailure) { |
| 110 V8TestingScope scope; | 107 V8TestingScope scope; |
| 111 payments::mojom::blink::PaymentResponsePtr input = | 108 mojom::blink::PaymentResponsePtr input = buildPaymentResponseForTest(); |
| 112 buildPaymentResponseForTest(); | |
| 113 input->method_name = "foo"; | 109 input->method_name = "foo"; |
| 114 input->stringified_details = "{\"transactionId\": 123}"; | 110 input->stringified_details = "{\"transactionId\": 123}"; |
| 115 MockPaymentCompleter* completeCallback = new MockPaymentCompleter; | 111 MockPaymentCompleter* completeCallback = new MockPaymentCompleter; |
| 116 PaymentResponse output(std::move(input), completeCallback); | 112 PaymentResponse output(std::move(input), completeCallback); |
| 117 | 113 |
| 118 EXPECT_CALL(*completeCallback, | 114 EXPECT_CALL(*completeCallback, |
| 119 complete(scope.getScriptState(), PaymentCompleter::Fail)); | 115 complete(scope.getScriptState(), PaymentCompleter::Fail)); |
| 120 | 116 |
| 121 output.complete(scope.getScriptState(), "fail"); | 117 output.complete(scope.getScriptState(), "fail"); |
| 122 } | 118 } |
| 123 | 119 |
| 124 TEST(PaymentResponseTest, JSONSerializerTest) { | 120 TEST(PaymentResponseTest, JSONSerializerTest) { |
| 125 V8TestingScope scope; | 121 V8TestingScope scope; |
| 126 payments::mojom::blink::PaymentResponsePtr input = | 122 mojom::blink::PaymentResponsePtr input = mojom::blink::PaymentResponse::New(); |
| 127 payments::mojom::blink::PaymentResponse::New(); | |
| 128 input->method_name = "foo"; | 123 input->method_name = "foo"; |
| 129 input->stringified_details = "{\"transactionId\": 123}"; | 124 input->stringified_details = "{\"transactionId\": 123}"; |
| 130 input->shipping_option = "standardShippingOption"; | 125 input->shipping_option = "standardShippingOption"; |
| 131 input->payer_email = "abc@gmail.com"; | 126 input->payer_email = "abc@gmail.com"; |
| 132 input->payer_phone = "0123"; | 127 input->payer_phone = "0123"; |
| 133 input->payer_name = "Jon Doe"; | 128 input->payer_name = "Jon Doe"; |
| 134 input->shipping_address = payments::mojom::blink::PaymentAddress::New(); | 129 input->shipping_address = mojom::blink::PaymentAddress::New(); |
| 135 input->shipping_address->country = "US"; | 130 input->shipping_address->country = "US"; |
| 136 input->shipping_address->language_code = "en"; | 131 input->shipping_address->language_code = "en"; |
| 137 input->shipping_address->script_code = "Latn"; | 132 input->shipping_address->script_code = "Latn"; |
| 138 input->shipping_address->address_line.append("340 Main St"); | 133 input->shipping_address->address_line.append("340 Main St"); |
| 139 input->shipping_address->address_line.append("BIN1"); | 134 input->shipping_address->address_line.append("BIN1"); |
| 140 input->shipping_address->address_line.append("First floor"); | 135 input->shipping_address->address_line.append("First floor"); |
| 141 | 136 |
| 142 PaymentResponse output(std::move(input), new MockPaymentCompleter); | 137 PaymentResponse output(std::move(input), new MockPaymentCompleter); |
| 143 ScriptValue jsonObject = output.toJSONForBinding(scope.getScriptState()); | 138 ScriptValue jsonObject = output.toJSONForBinding(scope.getScriptState()); |
| 144 EXPECT_TRUE(jsonObject.isObject()); | 139 EXPECT_TRUE(jsonObject.isObject()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 158 "Latn\"," | 153 "Latn\"," |
| 159 "\"organization\":\"\",\"recipient\":\"\",\"phone\":\"\"}," | 154 "\"organization\":\"\",\"recipient\":\"\",\"phone\":\"\"}," |
| 160 "\"shippingOption\":" | 155 "\"shippingOption\":" |
| 161 "\"standardShippingOption\",\"payerName\":\"Jon Doe\"," | 156 "\"standardShippingOption\",\"payerName\":\"Jon Doe\"," |
| 162 "\"payerEmail\":\"abc@gmail.com\",\"payerPhone\":\"0123\"}"; | 157 "\"payerEmail\":\"abc@gmail.com\",\"payerPhone\":\"0123\"}"; |
| 163 EXPECT_EQ(expected, jsonString); | 158 EXPECT_EQ(expected, jsonString); |
| 164 } | 159 } |
| 165 | 160 |
| 166 } // namespace | 161 } // namespace |
| 167 } // namespace blink | 162 } // namespace blink |
| OLD | NEW |