Diff
Modified: trunk/LayoutTests/ChangeLog (236569 => 236570)
--- trunk/LayoutTests/ChangeLog 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/ChangeLog 2018-09-27 21:04:58 UTC (rev 236570)
@@ -1,3 +1,15 @@
+2018-09-27 Andy Estes <[email protected]>
+
+ [Payment Request] Update web platform tests
+ https://bugs.webkit.org/show_bug.cgi?id=190049
+
+ Reviewed by Youenn Fablet.
+
+ Updated web-platform-tests/payment-request/ to tip-of-tree from web-platform-tests.
+
+ * platform/ios-wk2/TestExpectations:
+ * platform/mac-wk2/TestExpectations:
+
2018-09-27 Alicia Boya García <[email protected]>
[MSE] Fix unwanted sample erase from the decode queue
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2018-09-27 21:04:58 UTC (rev 236570)
@@ -1,3 +1,29 @@
+2018-09-27 Andy Estes <[email protected]>
+
+ [Payment Request] Update web platform tests
+ https://bugs.webkit.org/show_bug.cgi?id=190049
+
+ Reviewed by Youenn Fablet.
+
+ Updated web-platform-tests/payment-request/ to tip-of-tree from web-platform-tests.
+
+ * web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https-expected.txt: Added.
+ * web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html.
+ * web-platform-tests/payment-request/MerchantValidationEvent/constructor.https-expected.txt:
+ * web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html:
+ * web-platform-tests/payment-request/MerchantValidationEvent/w3c-import.log:
+ * web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html:
+ * web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https-expected.txt:
+ * web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https.html:
+ * web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https-expected.txt:
+ * web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https.html:
+ * web-platform-tests/payment-request/PaymentValidationErrors/retry-shows-shippingAddress-member-manual.https.html:
+ * web-platform-tests/payment-request/historical.https-expected.txt:
+ * web-platform-tests/payment-request/historical.https.html:
+ * web-platform-tests/payment-request/idlharness.https.window.js:
+ * web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute-manual.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html.
+ * web-platform-tests/payment-request/payment-response/w3c-import.log:
+
2018-09-27 Ryan Haddad <[email protected]>
Unreviewed, rolling out r236557.
Deleted: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html 2018-09-27 21:04:58 UTC (rev 236570)
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<link rel="help" href=""
-<title>Test for the MerchantValidationEvent's complete() method.</title>
-<script src=""
-<script src=""
-<body>
-<script>
-test(() => {
- const event = new MerchantValidationEvent("test");
- assert_throws(() => {
- event.complete("");
- })
-}, "If event's isTrusted attribute is false, then then throw an InvalidStateError DOMException.");
-</script>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https-expected.txt (0 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https-expected.txt 2018-09-27 21:04:58 UTC (rev 236570)
@@ -0,0 +1,3 @@
+
+PASS If event's isTrusted attribute is false, then then throw an InvalidStateError DOMException.
+
Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https.html (from rev 236568, trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html) (0 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https.html 2018-09-27 21:04:58 UTC (rev 236570)
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="help" href=""
+<title>Test for the MerchantValidationEvent's complete() method.</title>
+<script src=""
+<script src=""
+<body>
+<script>
+test(() => {
+ const event = new MerchantValidationEvent("test");
+ assert_throws("InvalidStateError", () => {
+ event.complete("");
+ })
+}, "If event's isTrusted attribute is false, then then throw an InvalidStateError DOMException.");
+</script>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https-expected.txt (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https-expected.txt 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https-expected.txt 2018-09-27 21:04:58 UTC (rev 236570)
@@ -5,4 +5,10 @@
PASS Must have a validationURL IDL attribute, which is initialized with to the validationURL dictionary value.
PASS Must throw TypeError if initialized with an invalid URL.
PASS Relative validationURLs use the document as the base.
+FAIL Must have a methodName IDL attribute, which is initialized with to the methodName dictionary value. assert_idl_attribute: property "methodName" not found in prototype chain
+FAIL When no methodName is passed, methodName attribute defaults to the empty string assert_equals: expected (string) "" but got (undefined) undefined
+FAIL MerchantValidationEvent can be constructed with valid PMIs assert_equals: expected (string) "https://example.com/pay" but got (undefined) undefined
+FAIL MerchantValidationEvent can't be constructed with invalid PMIs assert_throws: expected to throw when constructed with invalid PMI: 'basic-💳' function "() => {
+ const event = new MerchantValidationEvent("test", { methodName });
+ }" did not throw
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html 2018-09-27 21:04:58 UTC (rev 236570)
@@ -6,7 +6,9 @@
<script src=""
<script src=""
<script>
-const applePay = Object.freeze({ supportedMethods: "https://apple.com/apple-pay"});
+const applePay = Object.freeze({
+ supportedMethods: "https://apple.com/apple-pay",
+});
const basicCard = Object.freeze({ supportedMethods: "basic-card" });
const defaultMethods = Object.freeze([basicCard, applePay]);
const defaultDetails = Object.freeze({
@@ -56,21 +58,69 @@
test(() => {
const validationURL = "http://\u005B"; // invalid URL
assert_throws(new TypeError(), () => {
- new MerchantValidationEvent("test", { validationURL })
+ new MerchantValidationEvent("test", { validationURL });
});
}, "Must throw TypeError if initialized with an invalid URL.");
test(() => {
const validationURL = "";
- const relativePaths = [
- "",
- ".",
- "/test",
- ]
- for(const path of relativePaths ) {
+ const relativePaths = ["", ".", "/test"];
+ for (const path of relativePaths) {
const event = new MerchantValidationEvent("test", { validationURL: path });
const expected = new URL(path, document.location.href).href;
assert_equals(event.validationURL, expected);
}
}, "Relative validationURLs use the document as the base.");
+
+test(() => {
+ const methodName = "https://pass.com";
+ const event = new MerchantValidationEvent("test", { methodName });
+ assert_idl_attribute(event, "methodName");
+ assert_equals(event.methodName, "https://pass.com");
+}, "Must have a methodName IDL attribute, which is initialized with to the methodName dictionary value.");
+
+test(() => {
+ const event = new MerchantValidationEvent("test", {});
+ assert_equals(event.methodName, "");
+}, "When no methodName is passed, methodName attribute defaults to the empty string");
+
+test(() => {
+ const validPMIs = [
+ "https://example.com/pay",
+ "https://example.com/pay?version=1",
+ "https://example.com/pay/version/1",
+ "basic-card",
+ "https://apple.com/apple-pay",
+ // special case for as default value
+ "",
+ ];
+ for (const methodName of validPMIs) {
+ const event = new MerchantValidationEvent("test", { methodName });
+ assert_equals(event.methodName, methodName);
+ }
+}, "MerchantValidationEvent can be constructed with valid PMIs");
+
+test(() => {
+ const invalidPMIs = [
+ // ❌ Contains Unicode character outside the valid ranges.
+ "basic-💳",
+ // ❌ Contains uppercase characters.
+ "Basic-Card",
+ // ❌ Contains Unicode characters outside the valid ranges.
+ "¡basic-*-card!",
+ // ❌ Uses http://, a username, and a password.
+ "http://username:[email protected]/pay",
+ // ❌ Uses unknown URI scheme.
+ "unknown://example.com/pay",
+ ];
+ for (const methodName of invalidPMIs) {
+ assert_throws(
+ new RangeError(),
+ () => {
+ const event = new MerchantValidationEvent("test", { methodName });
+ },
+ `expected to throw when constructed with invalid PMI: '${methodName}'`
+ );
+ }
+}, "MerchantValidationEvent can't be constructed with invalid PMIs");
</script>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/w3c-import.log (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/w3c-import.log 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/w3c-import.log 2018-09-27 21:04:58 UTC (rev 236570)
@@ -14,6 +14,6 @@
None
------------------------------------------------------------------------
List of files:
-/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html
+/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https.html
/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.http.html
/LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html 2018-09-27 21:04:58 UTC (rev 236570)
@@ -74,7 +74,6 @@
dependentLocality: '',
postalCode: '6095',
sortingCode: '',
- languageCode: 'en',
organization: 'w3c',
recipient: 'web platform test',
phone: '+61733780000',
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https-expected.txt (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https-expected.txt 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https-expected.txt 2018-09-27 21:04:58 UTC (rev 236570)
@@ -1,3 +1,4 @@
PASS Must have a methodDetails IDL attribute, which is initialized with to the methodName dictionary value
+PASS The methodDetails member defaults to null
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https.html (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https.html 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https.html 2018-09-27 21:04:58 UTC (rev 236570)
@@ -19,4 +19,15 @@
assert_equals(test, "pass");
assert_equals(event.methodDetails, methodDetails);
}, "Must have a methodDetails IDL attribute, which is initialized with to the methodName dictionary value");
+
+test(() => {
+ const event = new PaymentMethodChangeEvent("test");
+ assert_equals(event.methodDetails, null, "methodDetails attribute must initialize to null");
+
+ const event2 = new PaymentMethodChangeEvent("test", { methodName: "basic-card" });
+ assert_equals(event2.methodDetails, null, "methodDetails attribute must initialize to null");
+
+ const event3 = new PaymentMethodChangeEvent("test", {});
+ assert_equals(event2.methodDetails, null, "methodDetails attribute must initialize to null");
+}, "The methodDetails member defaults to null");
</script>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https-expected.txt (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https-expected.txt 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https-expected.txt 2018-09-27 21:04:58 UTC (rev 236570)
@@ -1,3 +1,4 @@
PASS Must have a methodName IDL attribute, which is initialized with to the methodName dictionary value
+PASS When no dictionary is passed, the methodName member defaults to the empty string
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https.html (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https.html 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https.html 2018-09-27 21:04:58 UTC (rev 236570)
@@ -14,4 +14,15 @@
const { methodName } = event;
assert_equals(methodName, "wpt-test");
}, "Must have a methodName IDL attribute, which is initialized with to the methodName dictionary value");
+
+test(() => {
+ const event = new PaymentMethodChangeEvent("test");
+ assert_equals(event.methodName, "", "methodName attribute must initialize to empty string");
+
+ const event2 = new PaymentMethodChangeEvent("test", { methodDetails: {} });
+ assert_equals(event2.methodName, "", "methodName attribute must initialize to empty string");
+
+ const event3 = new PaymentMethodChangeEvent("test", {});
+ assert_equals(event3.methodName, "", "methodName attribute must initialize to empty string");
+}, "When no dictionary is passed, the methodName member defaults to the empty string");
</script>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentValidationErrors/retry-shows-shippingAddress-member-manual.https.html (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentValidationErrors/retry-shows-shippingAddress-member-manual.https.html 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/PaymentValidationErrors/retry-shows-shippingAddress-member-manual.https.html 2018-09-27 21:04:58 UTC (rev 236570)
@@ -57,11 +57,6 @@
</button>
</li>
<li>
- <button _onclick_="retryShowsShippingAddressMember(this, { languageCode: 'LANGUAGECODE ERROR' });">
- The payment sheet shows "LANGUAGECODE ERROR" for the shipping address' languageCode.
- </button>
- </li>
- <li>
<button _onclick_="retryShowsShippingAddressMember(this, { organization: 'ORGANIZATION ERROR' });">
The payment sheet shows "ORGANIZATION ERROR" for the shipping address' organization.
</button>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/historical.https-expected.txt (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/historical.https-expected.txt 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/historical.https-expected.txt 2018-09-27 21:04:58 UTC (rev 236570)
@@ -5,5 +5,6 @@
PASS totalAmount in PaymentResponse
PASS paymentRequestId in PaymentRequest
PASS paymentRequestId in PaymentResponse
+PASS languageCode in PaymentAddress
PASS supportedMethods must not support sequence<DOMString>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/historical.https.html (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/historical.https.html 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/historical.https.html 2018-09-27 21:04:58 UTC (rev 236570)
@@ -19,6 +19,8 @@
["paymentRequestId", "PaymentRequest"],
["paymentRequestId", "PaymentResponse"],
+ // https://github.com/w3c/payment-request/pull/765
+ ["languageCode", "PaymentAddress"],
].forEach(([member, interf]) => {
test(() => {
assert_false(member in window[interf].prototype);
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/idlharness.https.window.js (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/idlharness.https.window.js 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/idlharness.https.window.js 2018-09-27 21:04:58 UTC (rev 236570)
@@ -25,6 +25,7 @@
PaymentRequest: ['paymentRequest'],
PaymentMethodChangeEvent: ['new PaymentMethodChangeEvent("paymentmethodchange")'],
PaymentRequestUpdateEvent: ['new PaymentRequestUpdateEvent("paymentrequestupdate")'],
+ MerchantValidationEvent: ['new MerchantValidationEvent("merchantvalidation")'],
});
}
);
Copied: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute-manual.https.html (from rev 236568, trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html) (0 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute-manual.https.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute-manual.https.html 2018-09-27 21:04:58 UTC (rev 236570)
@@ -0,0 +1,66 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>PaymentResponse.prototype.onpayerdetailchange attribute</title>
+<script src=""
+<script src=""
+<script src=""
+<script>
+function runTest(button, options, expected){
+ button.disabled = true;
+ promise_test(async () => {
+ const response = await getPaymentResponse(options);
+ const eventPromise = new Promise(resolve => {
+ response.addEventListener("payerdetailchange", resolve);
+ });
+ const error = button.previousElementSibling.textContent.trim();
+ await response.retry({ error });
+ const event = await eventPromise;
+ assert_true(event instanceof PaymentRequestUpdateEvent);
+ for(const [prop, value] of Object.entries(expected)){
+ assert_equals(response[prop], value);
+ }
+ await response.complete("success");
+ }, button.textContent.trim());
+}
+</script>
+<h2>Handling PaymentResponse.prototype.onpayerdetailchange events</h2>
+<p>
+ Each button will bring up the Payment Request UI window.
+ When shown the payment sheet, use any details and hit pay.
+</p>
+<p>
+ When asked to retry the payment:
+</p>
+<ol>
+ <li>
+ <p>
+ Change payer's name to "pass".
+ </p>
+ <button _onclick_="runTest(this, { requestPayerName: true }, { payerName: 'pass' });">
+ PaymentRequestUpdateEvent is dispatched when payer name changes.
+ </button>
+ </li>
+ <li>
+ <p>
+ Change payer's email to "[email protected]".
+ </p>
+ <button _onclick_="runTest(this, {requestPayerEmail: true}, { payerEmail: '[email protected]' });">
+ PaymentRequestUpdateEvent is dispatched when payer email changes.
+ </button>
+ </li>
+ <li>
+ <p>
+ Change payer's phone to "+1-800-000-0000".
+ </p>
+ <button _onclick_="runTest(this, {requestPayerPhone: true}, { payerPhone: '+1-800-000-0000' })">
+ PaymentRequestUpdateEvent is dispatched when payer phone changes.
+ </button>
+ </li>
+ <li>
+ <button _onclick_="done();">DONE!</button>
+ </li>
+</ol>
+<small>
+ If you find a buggy test, please <a href="" a bug</a>
+ and tag one of the <a href=""
+</small>
Deleted: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html 2018-09-27 21:04:58 UTC (rev 236570)
@@ -1,66 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<title>PaymentResponse.prototype.onpayerdetailchange attribute</title>
-<script src=""
-<script src=""
-<script src=""
-<script>
-function runTest(button, options, expected){
- button.disabled = true;
- promise_test(async () => {
- const response = await getPaymentResponse(options);
- const eventPromise = new Promise(resolve => {
- response.addEventListener("payerdetailchange", resolve);
- });
- const error = button.previousElementSibling.textContent.trim();
- const retryPromise = response.retry({ error });
- const event = await eventPromise;
- assert_true(event instanceof PaymentRequestUpdateEvent);
- for(const [prop, value] of Object.entries(expected)){
- assert_equals(response[prop], value);
- }
- await response.complete("success");
- }, button.textContent.trim());
-}
-</script>
-<h2>Handling PaymentResponse.prototype.onpayerdetailchange events</h2>
-<p>
- Each button will bring up the Payment Request UI window.
- When shown the payment sheet, use any details and hit pay.
-</p>
-<p>
- When asked to retry the payment:
-</p>
-<ol>
- <li>
- <p>
- Change payer's name to "pass".
- </p>
- <button _onclick_="runTest(this, { requestPayerName: true }, { payerName: 'pass' });">
- PaymentRequestUpdateEvent is dispatched when payer name changes.
- </button>
- </li>
- <li>
- <p>
- Change payer's email to "[email protected]".
- </p>
- <button _onclick_="runTest(this, {requestPayerEmail: true}, { payerEmail: '[email protected]' });">
- PaymentRequestUpdateEvent is dispatched when payer email changes.
- </button>
- </li>
- <li>
- <p>
- Change payer's phone to "+1-800-000-0000".
- </p>
- <button _onclick_="runTest(this, {requestPayerPhone: true}, { payerPhone: '+1-800-000-0000' })">
- PaymentRequestUpdateEvent is dispatched when payer phone changes.
- </button>
- </li>
- <li>
- <button _onclick_="done();">DONE!</button>
- </li>
-</ol>
-<small>
- If you find a buggy test, please <a href="" a bug</a>
- and tag one of the <a href=""
-</small>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/w3c-import.log (236569 => 236570)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/w3c-import.log 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/w3c-import.log 2018-09-27 21:04:58 UTC (rev 236570)
@@ -17,8 +17,8 @@
/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/complete-method-manual.https.html
/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/helpers.js
/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/methodName-attribute-manual.https.html
+/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute-manual.https.html
/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.https.html
-/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html
/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/payerEmail-attribute-manual.https.html
/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/payerName-attribute-manual.https.html
/LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/payerPhone-attribute-manual.https.html
Modified: trunk/LayoutTests/platform/ios-wk2/TestExpectations (236569 => 236570)
--- trunk/LayoutTests/platform/ios-wk2/TestExpectations 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/platform/ios-wk2/TestExpectations 2018-09-27 21:04:58 UTC (rev 236570)
@@ -1264,7 +1264,6 @@
webkit.org/b/179853 [ Debug ] imported/blink/fast/text/international-iteration-simple-text.html [ Pass Failure ]
# skip manual payment-request tests
-imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html [ Skip ]
@@ -1278,7 +1277,7 @@
imported/w3c/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/payment-response/complete-method-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/payment-response/methodName-attribute-manual.https.html [ Skip ]
-imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html [ Skip ]
+imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/payment-response/payerEmail-attribute-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/payment-response/payerName-attribute-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/payment-response/payerPhone-attribute-manual.https.html [ Skip ]
Modified: trunk/LayoutTests/platform/mac-wk2/TestExpectations (236569 => 236570)
--- trunk/LayoutTests/platform/mac-wk2/TestExpectations 2018-09-27 21:04:33 UTC (rev 236569)
+++ trunk/LayoutTests/platform/mac-wk2/TestExpectations 2018-09-27 21:04:58 UTC (rev 236570)
@@ -845,7 +845,6 @@
webkit.org/b/186425 [ Debug ] inspector/console/webcore-logging.html [ Pass Failure ]
# skip manual payment-request tests
-imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-call-immediate-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-duplicate-shipping-options-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/PaymentRequestUpdateEvent/updateWith-incremental-update-manual.https.html [ Skip ]
@@ -859,7 +858,7 @@
imported/w3c/web-platform-tests/payment-request/change-shipping-option-select-last-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/payment-response/complete-method-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/payment-response/methodName-attribute-manual.https.html [ Skip ]
-imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html [ Skip ]
+imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/payment-response/payerEmail-attribute-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/payment-response/payerName-attribute-manual.https.html [ Skip ]
imported/w3c/web-platform-tests/payment-request/payment-response/payerPhone-attribute-manual.https.html [ Skip ]