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

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

Issue 2697123003: Use ExecutionContext instead of Document in PaymentRequest constructor. (Closed)
Patch Set: Created 3 years, 10 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 // Tests for PaymentRequest::canMakePayment(). 5 // Tests for PaymentRequest::canMakePayment().
6 6
7 #include "bindings/core/v8/V8BindingForTesting.h" 7 #include "bindings/core/v8/V8BindingForTesting.h"
8 #include "modules/payments/PaymentRequest.h" 8 #include "modules/payments/PaymentRequest.h"
9 #include "modules/payments/PaymentTestHelper.h" 9 #include "modules/payments/PaymentTestHelper.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 11
12 namespace blink { 12 namespace blink {
13 namespace { 13 namespace {
14 14
15 using payments::mojom::blink::CanMakePaymentQueryResult; 15 using payments::mojom::blink::CanMakePaymentQueryResult;
16 using payments::mojom::blink::PaymentErrorReason; 16 using payments::mojom::blink::PaymentErrorReason;
17 using payments::mojom::blink::PaymentRequestClient; 17 using payments::mojom::blink::PaymentRequestClient;
18 18
19 TEST(CanMakePaymentTest, RejectPromiseOnUserCancel) { 19 TEST(CanMakePaymentTest, RejectPromiseOnUserCancel) {
20 V8TestingScope scope; 20 V8TestingScope scope;
21 PaymentRequestMockFunctionScope funcs(scope.getScriptState()); 21 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
22 makePaymentRequestOriginSecure(scope.document()); 22 makePaymentRequestOriginSecure(scope.document());
23 PaymentRequest* request = PaymentRequest::create( 23 PaymentRequest* request = PaymentRequest::create(
24 scope.document(), buildPaymentMethodDataForTest(), 24 scope.getScriptState(), buildPaymentMethodDataForTest(),
25 buildPaymentDetailsForTest(), scope.getExceptionState()); 25 buildPaymentDetailsForTest(), scope.getExceptionState());
26 26
27 request->canMakePayment(scope.getScriptState()) 27 request->canMakePayment().then(funcs.expectNoCall(), funcs.expectCall());
28 .then(funcs.expectNoCall(), funcs.expectCall());
29 28
30 static_cast<PaymentRequestClient*>(request)->OnError( 29 static_cast<PaymentRequestClient*>(request)->OnError(
31 PaymentErrorReason::USER_CANCEL); 30 PaymentErrorReason::USER_CANCEL);
32 } 31 }
33 32
34 TEST(CanMakePaymentTest, RejectPromiseOnUnknownError) { 33 TEST(CanMakePaymentTest, RejectPromiseOnUnknownError) {
35 V8TestingScope scope; 34 V8TestingScope scope;
36 PaymentRequestMockFunctionScope funcs(scope.getScriptState()); 35 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
37 makePaymentRequestOriginSecure(scope.document()); 36 makePaymentRequestOriginSecure(scope.document());
38 PaymentRequest* request = PaymentRequest::create( 37 PaymentRequest* request = PaymentRequest::create(
39 scope.document(), buildPaymentMethodDataForTest(), 38 scope.getScriptState(), buildPaymentMethodDataForTest(),
40 buildPaymentDetailsForTest(), scope.getExceptionState()); 39 buildPaymentDetailsForTest(), scope.getExceptionState());
41 40
42 request->canMakePayment(scope.getScriptState()) 41 request->canMakePayment().then(funcs.expectNoCall(), funcs.expectCall());
43 .then(funcs.expectNoCall(), funcs.expectCall());
44 42
45 static_cast<PaymentRequestClient*>(request)->OnError( 43 static_cast<PaymentRequestClient*>(request)->OnError(
46 PaymentErrorReason::UNKNOWN); 44 PaymentErrorReason::UNKNOWN);
47 } 45 }
48 46
49 TEST(CanMakePaymentTest, RejectDuplicateRequest) { 47 TEST(CanMakePaymentTest, RejectDuplicateRequest) {
50 V8TestingScope scope; 48 V8TestingScope scope;
51 PaymentRequestMockFunctionScope funcs(scope.getScriptState()); 49 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
52 makePaymentRequestOriginSecure(scope.document()); 50 makePaymentRequestOriginSecure(scope.document());
53 PaymentRequest* request = PaymentRequest::create( 51 PaymentRequest* request = PaymentRequest::create(
54 scope.document(), buildPaymentMethodDataForTest(), 52 scope.getScriptState(), buildPaymentMethodDataForTest(),
55 buildPaymentDetailsForTest(), scope.getExceptionState()); 53 buildPaymentDetailsForTest(), scope.getExceptionState());
56 request->canMakePayment(scope.getScriptState()); 54 request->canMakePayment();
57 55
58 request->canMakePayment(scope.getScriptState()) 56 request->canMakePayment().then(funcs.expectNoCall(), funcs.expectCall());
59 .then(funcs.expectNoCall(), funcs.expectCall());
60 } 57 }
61 58
62 TEST(CanMakePaymentTest, RejectQueryQuotaExceeded) { 59 TEST(CanMakePaymentTest, RejectQueryQuotaExceeded) {
63 V8TestingScope scope; 60 V8TestingScope scope;
64 PaymentRequestMockFunctionScope funcs(scope.getScriptState()); 61 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
65 makePaymentRequestOriginSecure(scope.document()); 62 makePaymentRequestOriginSecure(scope.document());
66 PaymentRequest* request = PaymentRequest::create( 63 PaymentRequest* request = PaymentRequest::create(
67 scope.document(), buildPaymentMethodDataForTest(), 64 scope.getScriptState(), buildPaymentMethodDataForTest(),
68 buildPaymentDetailsForTest(), scope.getExceptionState()); 65 buildPaymentDetailsForTest(), scope.getExceptionState());
69 66
70 request->canMakePayment(scope.getScriptState()) 67 request->canMakePayment().then(funcs.expectNoCall(), funcs.expectCall());
71 .then(funcs.expectNoCall(), funcs.expectCall());
72 68
73 static_cast<PaymentRequestClient*>(request)->OnCanMakePayment( 69 static_cast<PaymentRequestClient*>(request)->OnCanMakePayment(
74 CanMakePaymentQueryResult::QUERY_QUOTA_EXCEEDED); 70 CanMakePaymentQueryResult::QUERY_QUOTA_EXCEEDED);
75 } 71 }
76 72
77 TEST(CanMakePaymentTest, ReturnCannotMakeCanMakePayment) { 73 TEST(CanMakePaymentTest, ReturnCannotMakeCanMakePayment) {
78 V8TestingScope scope; 74 V8TestingScope scope;
79 PaymentRequestMockFunctionScope funcs(scope.getScriptState()); 75 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
80 makePaymentRequestOriginSecure(scope.document()); 76 makePaymentRequestOriginSecure(scope.document());
81 PaymentRequest* request = PaymentRequest::create( 77 PaymentRequest* request = PaymentRequest::create(
82 scope.document(), buildPaymentMethodDataForTest(), 78 scope.getScriptState(), buildPaymentMethodDataForTest(),
83 buildPaymentDetailsForTest(), scope.getExceptionState()); 79 buildPaymentDetailsForTest(), scope.getExceptionState());
84 String captor; 80 String captor;
85 request->canMakePayment(scope.getScriptState()) 81 request->canMakePayment().then(funcs.expectCall(&captor),
86 .then(funcs.expectCall(&captor), funcs.expectNoCall()); 82 funcs.expectNoCall());
87 83
88 static_cast<PaymentRequestClient*>(request)->OnCanMakePayment( 84 static_cast<PaymentRequestClient*>(request)->OnCanMakePayment(
89 CanMakePaymentQueryResult::CANNOT_MAKE_PAYMENT); 85 CanMakePaymentQueryResult::CANNOT_MAKE_PAYMENT);
90 86
91 v8::MicrotasksScope::PerformCheckpoint(scope.getScriptState()->isolate()); 87 v8::MicrotasksScope::PerformCheckpoint(scope.getScriptState()->isolate());
92 EXPECT_EQ("false", captor); 88 EXPECT_EQ("false", captor);
93 } 89 }
94 90
95 TEST(CanMakePaymentTest, ReturnCanMakePayment) { 91 TEST(CanMakePaymentTest, ReturnCanMakePayment) {
96 V8TestingScope scope; 92 V8TestingScope scope;
97 PaymentRequestMockFunctionScope funcs(scope.getScriptState()); 93 PaymentRequestMockFunctionScope funcs(scope.getScriptState());
98 makePaymentRequestOriginSecure(scope.document()); 94 makePaymentRequestOriginSecure(scope.document());
99 PaymentRequest* request = PaymentRequest::create( 95 PaymentRequest* request = PaymentRequest::create(
100 scope.document(), buildPaymentMethodDataForTest(), 96 scope.getScriptState(), buildPaymentMethodDataForTest(),
101 buildPaymentDetailsForTest(), scope.getExceptionState()); 97 buildPaymentDetailsForTest(), scope.getExceptionState());
102 String captor; 98 String captor;
103 request->canMakePayment(scope.getScriptState()) 99 request->canMakePayment().then(funcs.expectCall(&captor),
104 .then(funcs.expectCall(&captor), funcs.expectNoCall()); 100 funcs.expectNoCall());
105 101
106 static_cast<PaymentRequestClient*>(request)->OnCanMakePayment( 102 static_cast<PaymentRequestClient*>(request)->OnCanMakePayment(
107 CanMakePaymentQueryResult::CAN_MAKE_PAYMENT); 103 CanMakePaymentQueryResult::CAN_MAKE_PAYMENT);
108 104
109 v8::MicrotasksScope::PerformCheckpoint(scope.getScriptState()->isolate()); 105 v8::MicrotasksScope::PerformCheckpoint(scope.getScriptState()->isolate());
110 EXPECT_EQ("true", captor); 106 EXPECT_EQ("true", captor);
111 } 107 }
112 108
113 } // namespace 109 } // namespace
114 } // namespace blink 110 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698