WebKit Bugzilla
Attachment 339160 Details for
Bug 185150
: [Apple Pay] Allow $0 totals
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-185150-20180430162506.patch (text/plain), 10.32 KB, created by
Andy Estes
on 2018-04-30 16:25:06 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Andy Estes
Created:
2018-04-30 16:25:06 PDT
Size:
10.32 KB
patch
obsolete
>Subversion Revision: 231157 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 94ad2070a4ea348dc42026f18b777d87595753d6..01becaa65f2128eb62d7e1c22adee6dcb77fb545 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,16 @@ >+2018-04-30 Andy Estes <aestes@apple.com> >+ >+ [Apple Pay] Allow $0 totals >+ https://bugs.webkit.org/show_bug.cgi?id=185150 >+ <rdar://problem/39212331> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Updated existing tests. >+ >+ * Modules/applepay/PaymentRequestValidator.mm: >+ (WebCore::PaymentRequestValidator::validateTotal): >+ > 2018-04-30 Michael Catanzaro <mcatanzaro@igalia.com> > > [GTK] Webkit should spoof as Safari on a Mac when on Chase.com >diff --git a/Source/WebCore/Modules/applepay/PaymentRequestValidator.mm b/Source/WebCore/Modules/applepay/PaymentRequestValidator.mm >index 92f9076685a7634af05cad30bf4ee5faa26d1489..88bf2350863a15a09bb24dd411ac489cede1fc81 100644 >--- a/Source/WebCore/Modules/applepay/PaymentRequestValidator.mm >+++ b/Source/WebCore/Modules/applepay/PaymentRequestValidator.mm >@@ -86,8 +86,8 @@ ExceptionOr<void> PaymentRequestValidator::validateTotal(const ApplePaySessionPa > > double amount = [NSDecimalNumber decimalNumberWithString:total.amount locale:@{ NSLocaleDecimalSeparator : @"." }].doubleValue; > >- if (amount <= 0) >- return Exception { TypeError, "Total amount must be greater than zero." }; >+ if (amount < 0) >+ return Exception { TypeError, "Total amount must be greater than or equal to zero." }; > > if (amount > 100000000) > return Exception { TypeError, "Total amount is too big." }; >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 7534cf5d270ee016dc7368256835e16b67ca1c06..5324491027e2a428d3afca940c3c68ab6cefee31 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,16 @@ >+2018-04-30 Andy Estes <aestes@apple.com> >+ >+ [Apple Pay] Allow $0 totals >+ https://bugs.webkit.org/show_bug.cgi?id=185150 >+ <rdar://problem/39212331> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * http/tests/ssl/applepay/ApplePaySession-expected.txt: >+ * http/tests/ssl/applepay/ApplePaySession.html: >+ * http/tests/ssl/applepay/PaymentRequest.https-expected.txt: >+ * http/tests/ssl/applepay/PaymentRequest.https.html: >+ > 2018-04-28 Simon Fraser <simon.fraser@apple.com> > > Fix color-filter to apply to SVG colors >diff --git a/LayoutTests/http/tests/ssl/applepay/ApplePaySession-expected.txt b/LayoutTests/http/tests/ssl/applepay/ApplePaySession-expected.txt >index 5c63b9d343495cd34d15bc29738f9b8bcb0f8739..44090878b863b50219813e2ffabe9506cf224ffd 100644 >--- a/LayoutTests/http/tests/ssl/applepay/ApplePaySession-expected.txt >+++ b/LayoutTests/http/tests/ssl/applepay/ApplePaySession-expected.txt >@@ -143,11 +143,8 @@ PASS new ApplePaySession(2, request) threw exception TypeError: "" is not a vali > SETUP: request = validRequest(); request.total = { label: 'label', amount: 'amount' }; > PASS new ApplePaySession(2, request) threw exception TypeError: "amount" is not a valid amount.. > >-SETUP: request = validRequest(); request.total = { label: 'label', amount: '0' }; >-PASS new ApplePaySession(2, request) threw exception TypeError: Total amount must be greater than zero.. >- > SETUP: request = validRequest(); request.total = { label: 'label', amount: '-10.00' }; >-PASS new ApplePaySession(2, request) threw exception TypeError: Total amount must be greater than zero.. >+PASS new ApplePaySession(2, request) threw exception TypeError: Total amount must be greater than or equal to zero.. > > SETUP: request = validRequest(); request.total = { label: 'label', amount: '10000000000.00' }; > PASS new ApplePaySession(2, request) threw exception TypeError: Total amount is too big.. >@@ -155,6 +152,9 @@ PASS new ApplePaySession(2, request) threw exception TypeError: Total amount is > SETUP: request = validRequest(); request.total = { label: 'label', amount: '10.00', type: 'invalid' }; > PASS new ApplePaySession(2, request) threw exception TypeError: Type error. > >+SETUP: request = validRequest(); request.total = { label: 'label', amount: '0' }; >+PASS new ApplePaySession(2, request) did not throw exception. >+ > SETUP: request = validRequest(); request.total = { label: 'label', amount: '10.00', type: 'pending' }; > PASS new ApplePaySession(2, request) did not throw exception. > >diff --git a/LayoutTests/http/tests/ssl/applepay/ApplePaySession.html b/LayoutTests/http/tests/ssl/applepay/ApplePaySession.html >index efec0913a87e0903af2205db26b8b9ab8239cb74..464bcf8b1a988893e088424a012fb47202b17df3 100644 >--- a/LayoutTests/http/tests/ssl/applepay/ApplePaySession.html >+++ b/LayoutTests/http/tests/ssl/applepay/ApplePaySession.html >@@ -101,10 +101,10 @@ function go() { > logAndShouldThrow("request = validRequest(); request.total = { };", "new ApplePaySession(2, request)") > logAndShouldThrow("request = validRequest(); request.total = { label: 'label' };", "new ApplePaySession(2, request)") > logAndShouldThrow("request = validRequest(); request.total = { label: 'label', amount: 'amount' };", "new ApplePaySession(2, request)") >- logAndShouldThrow("request = validRequest(); request.total = { label: 'label', amount: '0' };", "new ApplePaySession(2, request)") > logAndShouldThrow("request = validRequest(); request.total = { label: 'label', amount: '-10.00' };", "new ApplePaySession(2, request)") > logAndShouldThrow("request = validRequest(); request.total = { label: 'label', amount: '10000000000.00' };", "new ApplePaySession(2, request)") > logAndShouldThrow("request = validRequest(); request.total = { label: 'label', amount: '10.00', type: 'invalid' };", "new ApplePaySession(2, request)") >+ logAndShouldNotThrow("request = validRequest(); request.total = { label: 'label', amount: '0' };", "new ApplePaySession(2, request)") > logAndShouldNotThrow("request = validRequest(); request.total = { label: 'label', amount: '10.00', type: 'pending' };", "new ApplePaySession(2, request)") > > debug("Testing PaymentRequest.lineItems") >diff --git a/LayoutTests/http/tests/ssl/applepay/PaymentRequest.https-expected.txt b/LayoutTests/http/tests/ssl/applepay/PaymentRequest.https-expected.txt >index 417c458b47611514807671d0f0f274b655fee08e..d6314a124f76a6d41009330c253fffebac827ffa 100644 >--- a/LayoutTests/http/tests/ssl/applepay/PaymentRequest.https-expected.txt >+++ b/LayoutTests/http/tests/ssl/applepay/PaymentRequest.https-expected.txt >@@ -154,14 +154,14 @@ PASS request = new PaymentRequest([validPaymentMethod()], paymentDetails); reque > SETUP: paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: { currency: '', value: '0' } }; > PASS request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show() threw exception RangeError: "" is not a valid currency code.. > >-SETUP: paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: { currency: 'USD', value: '0' } }; >-PASS request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show() rejected promise with TypeError: Total amount must be greater than zero.. >- > SETUP: paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: { currency: 'USD', value:'-10.00'} }; > PASS request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show() threw exception TypeError: Total currency values cannot be negative.. > > SETUP: paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: { currency: 'USD', value: '10000000000.00' } }; > PASS request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show() rejected promise with TypeError: Total amount is too big.. >+SETUP: paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: { currency: 'USD', value: '0' } }; >+PASS request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show() did not throw exception. >+ > > Testing PaymentDetails.displayItems > >diff --git a/LayoutTests/http/tests/ssl/applepay/PaymentRequest.https.html b/LayoutTests/http/tests/ssl/applepay/PaymentRequest.https.html >index e91d17209e511f62c570a1e6da80f1f3e1e16aa8..0bdbdeb7aa6cc16e6e8f04e185e2ea20884c9769 100644 >--- a/LayoutTests/http/tests/ssl/applepay/PaymentRequest.https.html >+++ b/LayoutTests/http/tests/ssl/applepay/PaymentRequest.https.html >@@ -49,6 +49,13 @@ function logAndShouldReject(setup, test) { > }); > } > >+function logAndShouldNotThrow(setup, test) { >+ debug("SETUP: " + setup) >+ eval(setup); >+ shouldNotThrow(test); >+ debug("") >+} >+ > async function go() { > debug("Testing PaymentRequest") > debug("") >@@ -154,10 +161,9 @@ async function go() { > await logAndShouldThrow("paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label' };", "request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show()") > await logAndShouldThrow("paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: 'amount' };", "request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show()") > await logAndShouldThrow("paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: { currency: '', value: '0' } };", "request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show()") >- await logAndShouldReject("paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: { currency: 'USD', value: '0' } };", "request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show()") >- debug("") > await logAndShouldThrow("paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: { currency: 'USD', value:'-10.00'} };", "request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show()") > await logAndShouldReject("paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: { currency: 'USD', value: '10000000000.00' } };", "request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show()") >+ await logAndShouldNotThrow("paymentDetails = validPaymentDetails(); paymentDetails.total = { label: 'label', amount: { currency: 'USD', value: '0' } };", "request = new PaymentRequest([validPaymentMethod()], paymentDetails); request.show()") > debug("") > > debug("Testing PaymentDetails.displayItems")
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185150
:
339160
|
339178
|
347976
|
348008
|
348009