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

Unified Diff: third_party/WebKit/Source/modules/payments/PaymentRequestUpdateEventTest.cpp

Issue 2823393002: Web payment shipping address/option timeout. (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/Source/modules/payments/PaymentRequestUpdateEvent.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/modules/payments/PaymentRequestUpdateEventTest.cpp
diff --git a/third_party/WebKit/Source/modules/payments/PaymentRequestUpdateEventTest.cpp b/third_party/WebKit/Source/modules/payments/PaymentRequestUpdateEventTest.cpp
index c5bc819c9eb500c15a5f296d0dbdaf3d4e714ce4..e8c707dd9aeee9d098ada7fe527a306343943c6d 100644
--- a/third_party/WebKit/Source/modules/payments/PaymentRequestUpdateEventTest.cpp
+++ b/third_party/WebKit/Source/modules/payments/PaymentRequestUpdateEventTest.cpp
@@ -121,7 +121,7 @@ TEST(PaymentRequestUpdateEventTest, UpdaterNotRequired) {
EXPECT_FALSE(scope.GetExceptionState().HadException());
}
-TEST(PaymentRequestUpdateEventTest, OnUpdatePaymentDetailsTimeout) {
+TEST(PaymentRequestUpdateEventTest, AddressChangeUpdateWithTimeout) {
V8TestingScope scope;
PaymentRequestMockFunctionScope funcs(scope.GetScriptState());
MakePaymentRequestOriginSecure(scope.GetDocument());
@@ -141,9 +141,112 @@ TEST(PaymentRequestUpdateEventTest, OnUpdatePaymentDetailsTimeout) {
v8::MicrotasksScope::PerformCheckpoint(scope.GetScriptState()->GetIsolate());
EXPECT_EQ(
- "AbortError: Timed out as the page didn't resolve the promise from "
- "change event",
+ "AbortError: Timed out waiting for a response to a "
+ "'shippingaddresschange' event",
error_message);
+
+ event->updateWith(
+ scope.GetScriptState(),
+ ScriptPromiseResolver::Create(scope.GetScriptState())->Promise(),
+ scope.GetExceptionState());
+
+ EXPECT_FALSE(scope.GetExceptionState().HadException());
+}
+
+TEST(PaymentRequestUpdateEventTest, OptionChangeUpdateWithTimeout) {
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.GetScriptState());
+ MakePaymentRequestOriginSecure(scope.GetDocument());
+ PaymentRequest* request = PaymentRequest::Create(
+ scope.GetExecutionContext(), BuildPaymentMethodDataForTest(),
+ BuildPaymentDetailsInitForTest(), scope.GetExceptionState());
+ PaymentRequestUpdateEvent* event = PaymentRequestUpdateEvent::Create(
+ scope.GetExecutionContext(), EventTypeNames::shippingoptionchange);
+ event->SetPaymentDetailsUpdater(request);
+ EXPECT_FALSE(scope.GetExceptionState().HadException());
+
+ String error_message;
+ request->show(scope.GetScriptState())
+ .Then(funcs.ExpectNoCall(), funcs.ExpectCall(&error_message));
+
+ event->OnUpdateEventTimeoutForTesting();
+
+ v8::MicrotasksScope::PerformCheckpoint(scope.GetScriptState()->GetIsolate());
+ EXPECT_EQ(
+ "AbortError: Timed out waiting for a response to a "
+ "'shippingoptionchange' event",
+ error_message);
+
+ event->updateWith(
+ scope.GetScriptState(),
+ ScriptPromiseResolver::Create(scope.GetScriptState())->Promise(),
+ scope.GetExceptionState());
+
+ EXPECT_FALSE(scope.GetExceptionState().HadException());
+}
+
+TEST(PaymentRequestUpdateEventTest, AddressChangePromiseTimeout) {
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.GetScriptState());
+ MakePaymentRequestOriginSecure(scope.GetDocument());
+ PaymentRequest* request = PaymentRequest::Create(
+ scope.GetExecutionContext(), BuildPaymentMethodDataForTest(),
+ BuildPaymentDetailsInitForTest(), scope.GetExceptionState());
+ EXPECT_FALSE(scope.GetExceptionState().HadException());
+ PaymentRequestUpdateEvent* event = PaymentRequestUpdateEvent::Create(
+ scope.GetExecutionContext(), EventTypeNames::shippingaddresschange);
+ event->SetPaymentDetailsUpdater(request);
+ event->SetEventPhase(Event::kCapturingPhase);
+ ScriptPromiseResolver* payment_details =
+ ScriptPromiseResolver::Create(scope.GetScriptState());
+ String error_message;
+ request->show(scope.GetScriptState())
+ .Then(funcs.ExpectNoCall(), funcs.ExpectCall(&error_message));
+ event->updateWith(scope.GetScriptState(), payment_details->Promise(),
+ scope.GetExceptionState());
+ EXPECT_FALSE(scope.GetExceptionState().HadException());
+
+ event->OnUpdateEventTimeoutForTesting();
+
+ v8::MicrotasksScope::PerformCheckpoint(scope.GetScriptState()->GetIsolate());
+ EXPECT_EQ(
+ "AbortError: Timed out waiting for a response to a "
+ "'shippingaddresschange' event",
+ error_message);
+
+ payment_details->Resolve("foo");
+}
+
+TEST(PaymentRequestUpdateEventTest, OptionChangePromiseTimeout) {
+ V8TestingScope scope;
+ PaymentRequestMockFunctionScope funcs(scope.GetScriptState());
+ MakePaymentRequestOriginSecure(scope.GetDocument());
+ PaymentRequest* request = PaymentRequest::Create(
+ scope.GetExecutionContext(), BuildPaymentMethodDataForTest(),
+ BuildPaymentDetailsInitForTest(), scope.GetExceptionState());
+ EXPECT_FALSE(scope.GetExceptionState().HadException());
+ PaymentRequestUpdateEvent* event = PaymentRequestUpdateEvent::Create(
+ scope.GetExecutionContext(), EventTypeNames::shippingoptionchange);
+ event->SetPaymentDetailsUpdater(request);
+ event->SetEventPhase(Event::kCapturingPhase);
+ ScriptPromiseResolver* payment_details =
+ ScriptPromiseResolver::Create(scope.GetScriptState());
+ String error_message;
+ request->show(scope.GetScriptState())
+ .Then(funcs.ExpectNoCall(), funcs.ExpectCall(&error_message));
+ event->updateWith(scope.GetScriptState(), payment_details->Promise(),
+ scope.GetExceptionState());
+ EXPECT_FALSE(scope.GetExceptionState().HadException());
+
+ event->OnUpdateEventTimeoutForTesting();
+
+ v8::MicrotasksScope::PerformCheckpoint(scope.GetScriptState()->GetIsolate());
+ EXPECT_EQ(
+ "AbortError: Timed out waiting for a response to a "
+ "'shippingoptionchange' event",
+ error_message);
+
+ payment_details->Resolve("foo");
}
} // namespace
« no previous file with comments | « third_party/WebKit/Source/modules/payments/PaymentRequestUpdateEvent.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698