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

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

Issue 2038423002: Adding support for phone and email. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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/ExceptionState.h" 7 #include "bindings/core/v8/ExceptionState.h"
8 #include "bindings/core/v8/JSONValuesForV8.h" 8 #include "bindings/core/v8/JSONValuesForV8.h"
9 #include "bindings/core/v8/ScriptState.h" 9 #include "bindings/core/v8/ScriptState.h"
10 #include "bindings/modules/v8/V8PaymentResponse.h" 10 #include "bindings/modules/v8/V8PaymentResponse.h"
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 request->show(getScriptState()).then(MockFunction::expectNoCall(getScriptSta te()), MockFunction::expectNoCall(getScriptState())); 500 request->show(getScriptState()).then(MockFunction::expectNoCall(getScriptSta te()), MockFunction::expectNoCall(getScriptState()));
501 String detail = "{\"total\": {\"label\": \"Total\", \"amount\": {\"currency\ ": \"USD\", \"value\": \"5.00\"}}," 501 String detail = "{\"total\": {\"label\": \"Total\", \"amount\": {\"currency\ ": \"USD\", \"value\": \"5.00\"}},"
502 "\"shippingOptions\": [{\"id\": \"standardShippingOption\", \"label\": \ "Standard shipping\", \"amount\": {\"currency\": \"USD\", \"value\": \"5.00\"}}] }"; 502 "\"shippingOptions\": [{\"id\": \"standardShippingOption\", \"label\": \ "Standard shipping\", \"amount\": {\"currency\": \"USD\", \"value\": \"5.00\"}}] }";
503 503
504 request->onUpdatePaymentDetails(ScriptValue::from(getScriptState(), fromJSON String(getScriptState(), detail, getExceptionState()))); 504 request->onUpdatePaymentDetails(ScriptValue::from(getScriptState(), fromJSON String(getScriptState(), detail, getExceptionState())));
505 EXPECT_FALSE(getExceptionState().hadException()); 505 EXPECT_FALSE(getExceptionState().hadException());
506 506
507 EXPECT_EQ("standardShippingOption", request->shippingOption()); 507 EXPECT_EQ("standardShippingOption", request->shippingOption());
508 } 508 }
509 509
510 TEST_F(PaymentRequestTest, ResolveShowPromiseWithRequestPayerEmailTrueAndValidPa yerEmailInResponse)
511 {
512 ScriptState::Scope scope(getScriptState());
513 PaymentOptions options;
514 options.setRequestPayerEmail(true);
515 PaymentRequest* request = PaymentRequest::create(getScriptState(), Vector<St ring>(1, "foo"), buildPaymentDetailsForTest(), options, getExceptionState());
516 EXPECT_FALSE(getExceptionState().hadException());
517 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
518 response->payer_email = "abc@gmail.com";
519
520 ScriptValue outValue;
521 request->show(getScriptState()).then(PaymentResponseFunction::create(getScri ptState(), &outValue), MockFunction::expectNoCall(getScriptState()));
522
523 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
524 v8::MicrotasksScope::PerformCheckpoint(getScriptState()->isolate());
525 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(getScriptState( )->isolate(), outValue.v8Value());
526
527 EXPECT_EQ("abc@gmail.com", pr->payerEmail());
528 }
529
530 TEST_F(PaymentRequestTest, RejectShowPromiseWithRequestPayerEmailTrueAndEmptyPay erEmailInResponse)
531 {
532 ScriptState::Scope scope(getScriptState());
533 PaymentOptions options;
534 options.setRequestPayerEmail(true);
535 PaymentRequest* request = PaymentRequest::create(getScriptState(), Vector<St ring>(1, "foo"), buildPaymentDetailsForTest(), options, getExceptionState());
536 EXPECT_FALSE(getExceptionState().hadException());
537 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
538 response->payer_email = "";
539
540 request->show(getScriptState()).then(MockFunction::expectNoCall(getScriptSta te()), MockFunction::expectCall(getScriptState()));
541
542 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
543 }
544
545 TEST_F(PaymentRequestTest, RejectShowPromiseWithRequestPayerEmailTrueAndNullPaye rEmailInResponse)
546 {
547 ScriptState::Scope scope(getScriptState());
548 PaymentOptions options;
549 options.setRequestPayerEmail(true);
550 PaymentRequest* request = PaymentRequest::create(getScriptState(), Vector<St ring>(1, "foo"), buildPaymentDetailsForTest(), options, getExceptionState());
551 EXPECT_FALSE(getExceptionState().hadException());
552 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
553 response->payer_email = String();
554
555 request->show(getScriptState()).then(MockFunction::expectNoCall(getScriptSta te()), MockFunction::expectCall(getScriptState()));
556
557 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
558 }
559
560 TEST_F(PaymentRequestTest, ResolveShowPromiseWithRequestPayerEmailFalseAndEmptyP ayerEmailInResponse)
561 {
562 ScriptState::Scope scope(getScriptState());
563 PaymentOptions options;
564 options.setRequestPayerEmail(false);
565 PaymentRequest* request = PaymentRequest::create(getScriptState(), Vector<St ring>(1, "foo"), buildPaymentDetailsForTest(), options, getExceptionState());
566 EXPECT_FALSE(getExceptionState().hadException());
567 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
568 response->payer_email = "";
569
570 ScriptValue outValue;
571 request->show(getScriptState()).then(PaymentResponseFunction::create(getScri ptState(), &outValue), MockFunction::expectNoCall(getScriptState()));
572
573 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
574 v8::MicrotasksScope::PerformCheckpoint(getScriptState()->isolate());
575 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(getScriptState( )->isolate(), outValue.v8Value());
576
577 EXPECT_TRUE(pr->payerEmail().isNull());
578 }
579
580 TEST_F(PaymentRequestTest, ResolveShowPromiseWithRequestPayerEmailFalseAndNullPa yerEmailInResponse)
581 {
582 ScriptState::Scope scope(getScriptState());
583 PaymentOptions options;
584 options.setRequestPayerEmail(false);
585 PaymentRequest* request = PaymentRequest::create(getScriptState(), Vector<St ring>(1, "foo"), buildPaymentDetailsForTest(), options, getExceptionState());
586 EXPECT_FALSE(getExceptionState().hadException());
587 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
588 response->payer_email = String();
589
590 ScriptValue outValue;
591 request->show(getScriptState()).then(PaymentResponseFunction::create(getScri ptState(), &outValue), MockFunction::expectNoCall(getScriptState()));
592
593 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
594 v8::MicrotasksScope::PerformCheckpoint(getScriptState()->isolate());
595 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(getScriptState( )->isolate(), outValue.v8Value());
596
597 EXPECT_TRUE(pr->payerEmail().isNull());
598 }
599
600 TEST_F(PaymentRequestTest, ResolveShowPromiseWithRequestPayerPhoneTrueAndValidPa yerPhoneInResponse)
601 {
602 ScriptState::Scope scope(getScriptState());
603 PaymentOptions options;
604 options.setRequestPayerPhone(true);
605 PaymentRequest* request = PaymentRequest::create(getScriptState(), Vector<St ring>(1, "foo"), buildPaymentDetailsForTest(), options, getExceptionState());
606 EXPECT_FALSE(getExceptionState().hadException());
607 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
608 response->payer_phone = "0123";
609
610 ScriptValue outValue;
611 request->show(getScriptState()).then(PaymentResponseFunction::create(getScri ptState(), &outValue), MockFunction::expectNoCall(getScriptState()));
612
613 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
614 v8::MicrotasksScope::PerformCheckpoint(getScriptState()->isolate());
615 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(getScriptState( )->isolate(), outValue.v8Value());
616
617 EXPECT_EQ("0123", pr->payerPhone());
618 }
619
620 TEST_F(PaymentRequestTest, RejectShowPromiseWithRequestPayerPhoneTrueAndEmptyPay erPhoneInResponse)
621 {
622 ScriptState::Scope scope(getScriptState());
623 PaymentOptions options;
624 options.setRequestPayerPhone(true);
625 PaymentRequest* request = PaymentRequest::create(getScriptState(), Vector<St ring>(1, "foo"), buildPaymentDetailsForTest(), options, getExceptionState());
626 EXPECT_FALSE(getExceptionState().hadException());
627 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
628 response->payer_phone = "";
629
630 request->show(getScriptState()).then(MockFunction::expectNoCall(getScriptSta te()), MockFunction::expectCall(getScriptState()));
631
632 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
633 }
634
635 TEST_F(PaymentRequestTest, RejectShowPromiseWithRequestPayerPhoneTrueAndNullPaye rPhoneInResponse)
636 {
637 ScriptState::Scope scope(getScriptState());
638 PaymentOptions options;
639 options.setRequestPayerPhone(true);
640 PaymentRequest* request = PaymentRequest::create(getScriptState(), Vector<St ring>(1, "foo"), buildPaymentDetailsForTest(), options, getExceptionState());
641 EXPECT_FALSE(getExceptionState().hadException());
642 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
643 response->payer_phone = String();
644
645 request->show(getScriptState()).then(MockFunction::expectNoCall(getScriptSta te()), MockFunction::expectCall(getScriptState()));
646
647 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
648 }
649
650 TEST_F(PaymentRequestTest, ResolveShowPromiseWithRequestPayerPhoneFalseAndEmptyP ayerPhoneInResponse)
651 {
652 ScriptState::Scope scope(getScriptState());
653 PaymentOptions options;
654 options.setRequestPayerPhone(false);
655 PaymentRequest* request = PaymentRequest::create(getScriptState(), Vector<St ring>(1, "foo"), buildPaymentDetailsForTest(), options, getExceptionState());
656 EXPECT_FALSE(getExceptionState().hadException());
657 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
658 response->payer_phone = "";
659
660 ScriptValue outValue;
661 request->show(getScriptState()).then(PaymentResponseFunction::create(getScri ptState(), &outValue), MockFunction::expectNoCall(getScriptState()));
662
663 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
664 v8::MicrotasksScope::PerformCheckpoint(getScriptState()->isolate());
665 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(getScriptState( )->isolate(), outValue.v8Value());
666
667 EXPECT_TRUE(pr->payerPhone().isNull());
668 }
669
670 TEST_F(PaymentRequestTest, ResolveShowPromiseWithRequestPayerPhoneFalseAndNullPa yerPhoneInResponse)
671 {
672 ScriptState::Scope scope(getScriptState());
673 PaymentOptions options;
674 options.setRequestPayerPhone(false);
675 PaymentRequest* request = PaymentRequest::create(getScriptState(), Vector<St ring>(1, "foo"), buildPaymentDetailsForTest(), options, getExceptionState());
676 EXPECT_FALSE(getExceptionState().hadException());
677 mojom::blink::PaymentResponsePtr response = mojom::blink::PaymentResponse::N ew();
678
679 ScriptValue outValue;
680 request->show(getScriptState()).then(PaymentResponseFunction::create(getScri ptState(), &outValue), MockFunction::expectNoCall(getScriptState()));
681
682 static_cast<mojom::blink::PaymentRequestClient*>(request)->OnPaymentResponse (std::move(response));
683 v8::MicrotasksScope::PerformCheckpoint(getScriptState()->isolate());
684 PaymentResponse* pr = V8PaymentResponse::toImplWithTypeCheck(getScriptState( )->isolate(), outValue.v8Value());
685
686 EXPECT_TRUE(pr->payerPhone().isNull());
687 }
688
510 } // namespace 689 } // namespace
511 } // namespace blink 690 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698