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

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

Issue 2073603002: Add shippingOption to PaymentResponse (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase #2 Created 4 years, 6 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
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/PaymentRequest.h" 5 #include "modules/payments/PaymentRequest.h"
6 6
7 #include "bindings/core/v8/JSONValuesForV8.h" 7 #include "bindings/core/v8/JSONValuesForV8.h"
8 #include "bindings/core/v8/ScriptFunction.h"
9 #include "bindings/core/v8/V8BindingForTesting.h" 8 #include "bindings/core/v8/V8BindingForTesting.h"
10 #include "bindings/modules/v8/V8PaymentResponse.h"
11 #include "core/dom/Document.h" 9 #include "core/dom/Document.h"
12 #include "core/dom/ExceptionCode.h" 10 #include "core/dom/ExceptionCode.h"
13 #include "modules/payments/PaymentAddress.h" 11 #include "modules/payments/PaymentAddress.h"
14 #include "modules/payments/PaymentResponse.h"
15 #include "modules/payments/PaymentTestHelper.h" 12 #include "modules/payments/PaymentTestHelper.h"
16 #include "platform/heap/HeapAllocator.h" 13 #include "platform/heap/HeapAllocator.h"
17 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
18 #include <utility>
19 15
20 namespace blink { 16 namespace blink {
21 namespace { 17 namespace {
22 18
23 TEST(PaymentRequestTest, SecureContextRequired) 19 TEST(PaymentRequestTest, SecureContextRequired)
24 { 20 {
25 V8TestingScope scope; 21 V8TestingScope scope;
26 scope.document().setSecurityOrigin(SecurityOrigin::create(KURL(KURL(), "http ://www.example.com/"))); 22 scope.document().setSecurityOrigin(SecurityOrigin::create(KURL(KURL(), "http ://www.example.com/")));
27 23
28 PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest (), buildPaymentDetailsForTest(), scope.getExceptionState()); 24 PaymentRequest::create(scope.getScriptState(), buildPaymentMethodDataForTest (), buildPaymentDetailsForTest(), scope.getExceptionState());
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 PaymentRequestMockFunctionScope funcs(scope.getScriptState()); 191 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
196 makePaymentRequestOriginSecure(scope.document()); 192 makePaymentRequestOriginSecure(scope.document());
197 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), scope.getExceptionSt ate()); 193 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), scope.getExceptionSt ate());
198 EXPECT_FALSE(scope.getExceptionState().hadException()); 194 EXPECT_FALSE(scope.getExceptionState().hadException());
199 195
200 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall()); 196 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall());
201 197
202 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnShippingAddress Change(mojom::blink::PaymentAddress::New()); 198 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnShippingAddress Change(mojom::blink::PaymentAddress::New());
203 } 199 }
204 200
205 TEST(PaymentRequestTest, RejectShowPromiseWithRequestShippingTrueAndEmptyShippin gAddressInResponse)
206 {
207 V8TestingScope scope;
208 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
209 makePaymentRequestOriginSecure(scope.document());
210 PaymentOptions options;
211 options.setRequestShipping(true);
212 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
213 EXPECT_FALSE(scope.getExceptionState().hadException());
214 mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
215
216 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall());
217
218 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
219 }
220
221 TEST(PaymentRequestTest, RejectShowPromiseWithRequestShippingTrueAndInvalidShipp ingAddressInResponse)
222 {
223 V8TestingScope scope;
224 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
225 makePaymentRequestOriginSecure(scope.document());
226 PaymentOptions options;
227 options.setRequestShipping(true);
228 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
229 EXPECT_FALSE(scope.getExceptionState().hadException());
230 mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
231 response->shipping_address = mojom::blink::PaymentAddress::New();
232
233 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall());
234
235 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
236 }
237
238 TEST(PaymentRequestTest, RejectShowPromiseWithRequestShippingFalseAndShippingAdd ressExistsInResponse)
239 {
240 V8TestingScope scope;
241 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
242 makePaymentRequestOriginSecure(scope.document());
243 PaymentOptions options;
244 options.setRequestShipping(false);
245 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
246 EXPECT_FALSE(scope.getExceptionState().hadException());
247 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
248 response->shipping_address = mojom::blink::PaymentAddress::New();
249 response->shipping_address->country = "US";
250 response->shipping_address->language_code = "en";
251 response->shipping_address->script_code = "Latn";
252
253 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall());
254
255 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
256 }
257
258 class PaymentResponseFunction : public ScriptFunction {
259 public:
260 static v8::Local<v8::Function> create(ScriptState* scriptState, ScriptValue* outValue)
261 {
262 PaymentResponseFunction* self = new PaymentResponseFunction(scriptState, outValue);
263 return self->bindToV8Function();
264 }
265
266 ScriptValue call(ScriptValue value) override
267 {
268 DCHECK(!value.isEmpty());
269 *m_value = value;
270 return value;
271 }
272
273 private:
274 PaymentResponseFunction(ScriptState* scriptState, ScriptValue* outValue)
275 : ScriptFunction(scriptState)
276 , m_value(outValue)
277 {
278 DCHECK(m_value);
279 }
280
281 ScriptValue* m_value;
282 };
283
284 TEST(PaymentRequestTest, ResolveShowPromiseWithRequestShippingTrueAndValidShippi ngAddressInResponse)
285 {
286 V8TestingScope scope;
287 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
288 makePaymentRequestOriginSecure(scope.document());
289 PaymentOptions options;
290 options.setRequestShipping(true);
291 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
292 EXPECT_FALSE(scope.getExceptionState().hadException());
293 mojom::blink::PaymentResponsePtr response = buildPaymentResponseForTest();
294 response->shipping_address = mojom::blink::PaymentAddress::New();
295 response->shipping_address->country = "US";
296 response->shipping_address->language_code = "en";
297 response->shipping_address->script_code = "Latn";
298
299 ScriptValue outValue;
300 request->show(scope.getScriptState()).then(PaymentResponseFunction::create(s cope.getScriptState(), &outValue), funcs.expectNoCall());
301
302 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
303 v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
304 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate() , outValue.v8Value());
305
306 EXPECT_EQ("US", pr->shippingAddress()->country());
307 EXPECT_EQ("en-Latn", pr->shippingAddress()->languageCode());
308 }
309
310 TEST(PaymentRequestTest, ResolveShowPromiseWithRequestShippingFalseAndEmptyShipp ingAddressInResponse)
311 {
312 V8TestingScope scope;
313 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
314 makePaymentRequestOriginSecure(scope.document());
315 PaymentOptions options;
316 options.setRequestShipping(false);
317 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
318 EXPECT_FALSE(scope.getExceptionState().hadException());
319
320 ScriptValue outValue;
321 request->show(scope.getScriptState()).then(PaymentResponseFunction::create(s cope.getScriptState(), &outValue), funcs.expectNoCall());
322
323 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (buildPaymentResponseForTest());
324 v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
325 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate() , outValue.v8Value());
326
327 EXPECT_EQ(nullptr, pr->shippingAddress());
328 }
329
330 TEST(PaymentRequestTest, OnShippingOptionChange) 201 TEST(PaymentRequestTest, OnShippingOptionChange)
331 { 202 {
332 V8TestingScope scope; 203 V8TestingScope scope;
333 PaymentRequestMockFunctionScope funcs(scope.getScriptState()); 204 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
334 makePaymentRequestOriginSecure(scope.document()); 205 makePaymentRequestOriginSecure(scope.document());
335 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), scope.getExceptionSt ate()); 206 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), scope.getExceptionSt ate());
336 EXPECT_FALSE(scope.getExceptionState().hadException()); 207 EXPECT_FALSE(scope.getExceptionState().hadException());
337 208
338 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tNoCall()); 209 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tNoCall());
339 210
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 String detail = "{\"total\": {\"label\": \"Total\", \"amount\": {\"currency\ ": \"USD\", \"value\": \"5.00\"}}," 407 String detail = "{\"total\": {\"label\": \"Total\", \"amount\": {\"currency\ ": \"USD\", \"value\": \"5.00\"}},"
537 "\"shippingOptions\": [{\"id\": \"slow\", \"label\": \"Slow\", \"amount\ ": {\"currency\": \"USD\", \"value\": \"5.00\"}}," 408 "\"shippingOptions\": [{\"id\": \"slow\", \"label\": \"Slow\", \"amount\ ": {\"currency\": \"USD\", \"value\": \"5.00\"}},"
538 "{\"id\": \"fast\", \"label\": \"Fast\", \"amount\": {\"currency\": \"US D\", \"value\": \"50.00\"}, \"selected\": true}]}"; 409 "{\"id\": \"fast\", \"label\": \"Fast\", \"amount\": {\"currency\": \"US D\", \"value\": \"50.00\"}, \"selected\": true}]}";
539 410
540 request->onUpdatePaymentDetails(ScriptValue::from(scope.getScriptState(), fr omJSONString(scope.getScriptState(), detail, scope.getExceptionState()))); 411 request->onUpdatePaymentDetails(ScriptValue::from(scope.getScriptState(), fr omJSONString(scope.getScriptState(), detail, scope.getExceptionState())));
541 EXPECT_FALSE(scope.getExceptionState().hadException()); 412 EXPECT_FALSE(scope.getExceptionState().hadException());
542 413
543 EXPECT_EQ("fast", request->shippingOption()); 414 EXPECT_EQ("fast", request->shippingOption());
544 } 415 }
545 416
546 TEST(PaymentRequestTest, ResolveShowPromiseWithRequestPayerEmailTrueAndValidPaye rEmailInResponse)
547 {
548 V8TestingScope scope;
549 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
550 makePaymentRequestOriginSecure(scope.document());
551 PaymentOptions options;
552 options.setRequestPayerEmail(true);
553 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
554 EXPECT_FALSE(scope.getExceptionState().hadException());
555 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
556 response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
557 response->payer_email = "abc@gmail.com";
558
559 ScriptValue outValue;
560 request->show(scope.getScriptState()).then(PaymentResponseFunction::create(s cope.getScriptState(), &outValue), funcs.expectNoCall());
561
562 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
563 v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
564 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate() , outValue.v8Value());
565
566 EXPECT_EQ("abc@gmail.com", pr->payerEmail());
567 }
568
569 TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerEmailTrueAndEmptyPayer EmailInResponse)
570 {
571 V8TestingScope scope;
572 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
573 makePaymentRequestOriginSecure(scope.document());
574 PaymentOptions options;
575 options.setRequestPayerEmail(true);
576 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
577 EXPECT_FALSE(scope.getExceptionState().hadException());
578 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
579 response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
580 response->payer_email = "";
581
582 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall());
583
584 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
585 }
586
587 TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerEmailTrueAndNullPayerE mailInResponse)
588 {
589 V8TestingScope scope;
590 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
591 makePaymentRequestOriginSecure(scope.document());
592 PaymentOptions options;
593 options.setRequestPayerEmail(true);
594 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
595 EXPECT_FALSE(scope.getExceptionState().hadException());
596 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
597 response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
598 response->payer_email = String();
599
600 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall());
601
602 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
603 }
604
605 TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerEmailFalseAndNonNullPa yerEmailInResponse)
606 {
607 V8TestingScope scope;
608 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
609 makePaymentRequestOriginSecure(scope.document());
610 PaymentOptions options;
611 options.setRequestPayerEmail(false);
612 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
613 EXPECT_FALSE(scope.getExceptionState().hadException());
614 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
615 response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
616 response->payer_email = "";
617
618 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall());
619
620 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
621 }
622
623 TEST(PaymentRequestTest, ResolveShowPromiseWithRequestPayerEmailFalseAndNullPaye rEmailInResponse)
624 {
625 V8TestingScope scope;
626 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
627 makePaymentRequestOriginSecure(scope.document());
628 PaymentOptions options;
629 options.setRequestPayerEmail(false);
630 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
631 EXPECT_FALSE(scope.getExceptionState().hadException());
632 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
633 response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
634 response->payer_email = String();
635
636 ScriptValue outValue;
637 request->show(scope.getScriptState()).then(PaymentResponseFunction::create(s cope.getScriptState(), &outValue), funcs.expectNoCall());
638
639 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
640 v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
641 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate() , outValue.v8Value());
642
643 EXPECT_TRUE(pr->payerEmail().isNull());
644 }
645
646 TEST(PaymentRequestTest, ResolveShowPromiseWithRequestPayerPhoneTrueAndValidPaye rPhoneInResponse)
647 {
648 V8TestingScope scope;
649 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
650 makePaymentRequestOriginSecure(scope.document());
651 PaymentOptions options;
652 options.setRequestPayerPhone(true);
653 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
654 EXPECT_FALSE(scope.getExceptionState().hadException());
655 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
656 response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
657 response->payer_phone = "0123";
658
659 ScriptValue outValue;
660 request->show(scope.getScriptState()).then(PaymentResponseFunction::create(s cope.getScriptState(), &outValue), funcs.expectNoCall());
661
662 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
663 v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
664 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate() , outValue.v8Value());
665
666 EXPECT_EQ("0123", pr->payerPhone());
667 }
668
669 TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerPhoneTrueAndEmptyPayer PhoneInResponse)
670 {
671 V8TestingScope scope;
672 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
673 makePaymentRequestOriginSecure(scope.document());
674 PaymentOptions options;
675 options.setRequestPayerPhone(true);
676 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
677 EXPECT_FALSE(scope.getExceptionState().hadException());
678 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
679 response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
680 response->payer_phone = "";
681
682 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall());
683
684 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
685 }
686
687 TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerPhoneTrueAndNullPayerP honeInResponse)
688 {
689 V8TestingScope scope;
690 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
691 makePaymentRequestOriginSecure(scope.document());
692 PaymentOptions options;
693 options.setRequestPayerPhone(true);
694 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
695 EXPECT_FALSE(scope.getExceptionState().hadException());
696 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
697 response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
698 response->payer_phone = String();
699
700 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall());
701
702 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
703 }
704
705 TEST(PaymentRequestTest, RejectShowPromiseWithRequestPayerPhoneFalseAndNonNulPay erPhoneInResponse)
706 {
707 V8TestingScope scope;
708 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
709 makePaymentRequestOriginSecure(scope.document());
710 PaymentOptions options;
711 options.setRequestPayerPhone(false);
712 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
713 EXPECT_FALSE(scope.getExceptionState().hadException());
714 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
715 response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
716 response->payer_phone = "";
717
718 request->show(scope.getScriptState()).then(funcs.expectNoCall(), funcs.expec tCall());
719
720 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
721 }
722
723 TEST(PaymentRequestTest, ResolveShowPromiseWithRequestPayerPhoneFalseAndNullPaye rPhoneInResponse)
724 {
725 V8TestingScope scope;
726 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
727 makePaymentRequestOriginSecure(scope.document());
728 PaymentOptions options;
729 options.setRequestPayerPhone(false);
730 PaymentRequest* request = PaymentRequest::create(scope.getScriptState(), bui ldPaymentMethodDataForTest(), buildPaymentDetailsForTest(), options, scope.getEx ceptionState());
731 EXPECT_FALSE(scope.getExceptionState().hadException());
732 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
733 response->total_amount = mojom::blink::PaymentCurrencyAmount::New();
734 response->payer_phone = String();
735
736 ScriptValue outValue;
737 request->show(scope.getScriptState()).then(PaymentResponseFunction::create(s cope.getScriptState(), &outValue), funcs.expectNoCall());
738
739 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
740 v8::MicrotasksScope::PerformCheckpoint(scope.isolate());
741 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(scope.isolate() , outValue.v8Value());
742
743 EXPECT_TRUE(pr->payerPhone().isNull());
744 }
745
746 } // namespace 417 } // namespace
747 } // namespace blink 418 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698