Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: third_party/WebKit/Source/modules/payments/PaymentResponseTest.cpp

Issue 2770193003: Implement request id in PaymentDetailsInit (Closed)
Patch Set: Rebase once more since mojom file moved Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/Source/modules/payments/PaymentResponse.idl ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 #include "bindings/core/v8/ExceptionState.h" 9 #include "bindings/core/v8/ExceptionState.h"
10 #include "bindings/core/v8/ScriptState.h" 10 #include "bindings/core/v8/ScriptState.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 BuildPaymentResponseForTest(); 48 BuildPaymentResponseForTest();
49 input->method_name = "foo"; 49 input->method_name = "foo";
50 input->stringified_details = "{\"transactionId\": 123}"; 50 input->stringified_details = "{\"transactionId\": 123}";
51 input->shipping_option = "standardShippingOption"; 51 input->shipping_option = "standardShippingOption";
52 input->payer_name = "Jon Doe"; 52 input->payer_name = "Jon Doe";
53 input->payer_email = "abc@gmail.com"; 53 input->payer_email = "abc@gmail.com";
54 input->payer_phone = "0123"; 54 input->payer_phone = "0123";
55 MockPaymentCompleter* complete_callback = new MockPaymentCompleter; 55 MockPaymentCompleter* complete_callback = new MockPaymentCompleter;
56 56
57 PaymentResponse* output = 57 PaymentResponse* output =
58 new PaymentResponse(std::move(input), complete_callback); 58 new PaymentResponse(std::move(input), complete_callback, "");
59 59
60 EXPECT_EQ("foo", output->methodName()); 60 EXPECT_EQ("foo", output->methodName());
61 EXPECT_EQ("standardShippingOption", output->shippingOption()); 61 EXPECT_EQ("standardShippingOption", output->shippingOption());
62 EXPECT_EQ("Jon Doe", output->payerName()); 62 EXPECT_EQ("Jon Doe", output->payerName());
63 EXPECT_EQ("abc@gmail.com", output->payerEmail()); 63 EXPECT_EQ("abc@gmail.com", output->payerEmail());
64 EXPECT_EQ("0123", output->payerPhone()); 64 EXPECT_EQ("0123", output->payerPhone());
65 65
66 ScriptValue details = 66 ScriptValue details =
67 output->details(scope.GetScriptState(), scope.GetExceptionState()); 67 output->details(scope.GetScriptState(), scope.GetExceptionState());
68 68
69 ASSERT_FALSE(scope.GetExceptionState().HadException()); 69 ASSERT_FALSE(scope.GetExceptionState().HadException());
70 ASSERT_TRUE(details.V8Value()->IsObject()); 70 ASSERT_TRUE(details.V8Value()->IsObject());
71 71
72 ScriptValue transaction_id( 72 ScriptValue transaction_id(
73 scope.GetScriptState(), 73 scope.GetScriptState(),
74 details.V8Value().As<v8::Object>()->Get( 74 details.V8Value().As<v8::Object>()->Get(
75 V8String(scope.GetScriptState()->GetIsolate(), "transactionId"))); 75 V8String(scope.GetScriptState()->GetIsolate(), "transactionId")));
76 76
77 ASSERT_TRUE(transaction_id.V8Value()->IsNumber()); 77 ASSERT_TRUE(transaction_id.V8Value()->IsNumber());
78 EXPECT_EQ(123, transaction_id.V8Value().As<v8::Number>()->Value()); 78 EXPECT_EQ(123, transaction_id.V8Value().As<v8::Number>()->Value());
79 } 79 }
80 80
81 TEST(PaymentResponseTest, PaymentResponseDetailsJSONObject) { 81 TEST(PaymentResponseTest, PaymentResponseDetailsJSONObject) {
82 V8TestingScope scope; 82 V8TestingScope scope;
83 payments::mojom::blink::PaymentResponsePtr input = 83 payments::mojom::blink::PaymentResponsePtr input =
84 BuildPaymentResponseForTest(); 84 BuildPaymentResponseForTest();
85 input->stringified_details = "transactionId"; 85 input->stringified_details = "transactionId";
86 MockPaymentCompleter* complete_callback = new MockPaymentCompleter; 86 MockPaymentCompleter* complete_callback = new MockPaymentCompleter;
87 PaymentResponse* output = 87 PaymentResponse* output =
88 new PaymentResponse(std::move(input), complete_callback); 88 new PaymentResponse(std::move(input), complete_callback, "");
89 89
90 ScriptValue details = 90 ScriptValue details =
91 output->details(scope.GetScriptState(), scope.GetExceptionState()); 91 output->details(scope.GetScriptState(), scope.GetExceptionState());
92 92
93 ASSERT_TRUE(scope.GetExceptionState().HadException()); 93 ASSERT_TRUE(scope.GetExceptionState().HadException());
94 } 94 }
95 95
96 TEST(PaymentResponseTest, CompleteCalledWithSuccess) { 96 TEST(PaymentResponseTest, CompleteCalledWithSuccess) {
97 V8TestingScope scope; 97 V8TestingScope scope;
98 payments::mojom::blink::PaymentResponsePtr input = 98 payments::mojom::blink::PaymentResponsePtr input =
99 BuildPaymentResponseForTest(); 99 BuildPaymentResponseForTest();
100 input->method_name = "foo"; 100 input->method_name = "foo";
101 input->stringified_details = "{\"transactionId\": 123}"; 101 input->stringified_details = "{\"transactionId\": 123}";
102 MockPaymentCompleter* complete_callback = new MockPaymentCompleter; 102 MockPaymentCompleter* complete_callback = new MockPaymentCompleter;
103 PaymentResponse* output = 103 PaymentResponse* output =
104 new PaymentResponse(std::move(input), complete_callback); 104 new PaymentResponse(std::move(input), complete_callback, "");
105 105
106 EXPECT_CALL(*complete_callback, 106 EXPECT_CALL(*complete_callback,
107 Complete(scope.GetScriptState(), PaymentCompleter::kSuccess)); 107 Complete(scope.GetScriptState(), PaymentCompleter::kSuccess));
108 108
109 output->complete(scope.GetScriptState(), "success"); 109 output->complete(scope.GetScriptState(), "success");
110 } 110 }
111 111
112 TEST(PaymentResponseTest, CompleteCalledWithFailure) { 112 TEST(PaymentResponseTest, CompleteCalledWithFailure) {
113 V8TestingScope scope; 113 V8TestingScope scope;
114 payments::mojom::blink::PaymentResponsePtr input = 114 payments::mojom::blink::PaymentResponsePtr input =
115 BuildPaymentResponseForTest(); 115 BuildPaymentResponseForTest();
116 input->method_name = "foo"; 116 input->method_name = "foo";
117 input->stringified_details = "{\"transactionId\": 123}"; 117 input->stringified_details = "{\"transactionId\": 123}";
118 MockPaymentCompleter* complete_callback = new MockPaymentCompleter; 118 MockPaymentCompleter* complete_callback = new MockPaymentCompleter;
119 PaymentResponse* output = 119 PaymentResponse* output =
120 new PaymentResponse(std::move(input), complete_callback); 120 new PaymentResponse(std::move(input), complete_callback, "");
121 121
122 EXPECT_CALL(*complete_callback, 122 EXPECT_CALL(*complete_callback,
123 Complete(scope.GetScriptState(), PaymentCompleter::kFail)); 123 Complete(scope.GetScriptState(), PaymentCompleter::kFail));
124 124
125 output->complete(scope.GetScriptState(), "fail"); 125 output->complete(scope.GetScriptState(), "fail");
126 } 126 }
127 127
128 TEST(PaymentResponseTest, JSONSerializerTest) { 128 TEST(PaymentResponseTest, JSONSerializerTest) {
129 V8TestingScope scope; 129 V8TestingScope scope;
130 payments::mojom::blink::PaymentResponsePtr input = 130 payments::mojom::blink::PaymentResponsePtr input =
131 payments::mojom::blink::PaymentResponse::New(); 131 payments::mojom::blink::PaymentResponse::New();
132 input->method_name = "foo"; 132 input->method_name = "foo";
133 input->stringified_details = "{\"transactionId\": 123}"; 133 input->stringified_details = "{\"transactionId\": 123}";
134 input->shipping_option = "standardShippingOption"; 134 input->shipping_option = "standardShippingOption";
135 input->payer_email = "abc@gmail.com"; 135 input->payer_email = "abc@gmail.com";
136 input->payer_phone = "0123"; 136 input->payer_phone = "0123";
137 input->payer_name = "Jon Doe"; 137 input->payer_name = "Jon Doe";
138 input->shipping_address = payments::mojom::blink::PaymentAddress::New(); 138 input->shipping_address = payments::mojom::blink::PaymentAddress::New();
139 input->shipping_address->country = "US"; 139 input->shipping_address->country = "US";
140 input->shipping_address->language_code = "en"; 140 input->shipping_address->language_code = "en";
141 input->shipping_address->script_code = "Latn"; 141 input->shipping_address->script_code = "Latn";
142 input->shipping_address->address_line.push_back("340 Main St"); 142 input->shipping_address->address_line.push_back("340 Main St");
143 input->shipping_address->address_line.push_back("BIN1"); 143 input->shipping_address->address_line.push_back("BIN1");
144 input->shipping_address->address_line.push_back("First floor"); 144 input->shipping_address->address_line.push_back("First floor");
145 145
146 PaymentResponse* output = 146 PaymentResponse* output =
147 new PaymentResponse(std::move(input), new MockPaymentCompleter); 147 new PaymentResponse(std::move(input), new MockPaymentCompleter, "");
148 ScriptValue json_object = output->toJSONForBinding(scope.GetScriptState()); 148 ScriptValue json_object = output->toJSONForBinding(scope.GetScriptState());
149 EXPECT_TRUE(json_object.IsObject()); 149 EXPECT_TRUE(json_object.IsObject());
150 150
151 String json_string = V8StringToWebCoreString<String>( 151 String json_string = V8StringToWebCoreString<String>(
152 v8::JSON::Stringify(scope.GetContext(), 152 v8::JSON::Stringify(scope.GetContext(),
153 json_object.V8Value().As<v8::Object>()) 153 json_object.V8Value().As<v8::Object>())
154 .ToLocalChecked(), 154 .ToLocalChecked(),
155 kDoNotExternalize); 155 kDoNotExternalize);
156 String expected = 156 String expected =
157 "{\"methodName\":\"foo\",\"details\":{\"transactionId\":123}," 157 "{\"requestId\":\"\",\"methodName\":\"foo\",\"details\":{"
158 "\"transactionId\":123},"
158 "\"shippingAddress\":{\"country\":\"US\",\"addressLine\":[\"340 Main " 159 "\"shippingAddress\":{\"country\":\"US\",\"addressLine\":[\"340 Main "
159 "St\"," 160 "St\","
160 "\"BIN1\",\"First " 161 "\"BIN1\",\"First "
161 "floor\"],\"region\":\"\",\"city\":\"\",\"dependentLocality\":" 162 "floor\"],\"region\":\"\",\"city\":\"\",\"dependentLocality\":"
162 "\"\",\"postalCode\":\"\",\"sortingCode\":\"\",\"languageCode\":\"en-" 163 "\"\",\"postalCode\":\"\",\"sortingCode\":\"\",\"languageCode\":\"en-"
163 "Latn\"," 164 "Latn\","
164 "\"organization\":\"\",\"recipient\":\"\",\"phone\":\"\"}," 165 "\"organization\":\"\",\"recipient\":\"\",\"phone\":\"\"},"
165 "\"shippingOption\":" 166 "\"shippingOption\":"
166 "\"standardShippingOption\",\"payerName\":\"Jon Doe\"," 167 "\"standardShippingOption\",\"payerName\":\"Jon Doe\","
167 "\"payerEmail\":\"abc@gmail.com\",\"payerPhone\":\"0123\"}"; 168 "\"payerEmail\":\"abc@gmail.com\",\"payerPhone\":\"0123\"}";
168 EXPECT_EQ(expected, json_string); 169 EXPECT_EQ(expected, json_string);
169 } 170 }
170 171
171 } // namespace 172 } // namespace
172 } // namespace blink 173 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/payments/PaymentResponse.idl ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698