Commit 18260fbf authored by Chromium WPT Sync's avatar Chromium WPT Sync Committed by Commit Bot

Import wpt@becd4a72757b16321cddb9c79db9b443831d5d5e

Using wpt-import in Chromium 9f0d01c8.

Note to sheriffs: This CL imports external tests and adds
expectations for those tests; if this CL is large and causes
a few new failures, please fix the failures by adding new
lines to TestExpectations rather than reverting. See:
https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md

Directory owners for changes in this CL:
rouslan@chromium.org, mathp@chromium.org:
  external/wpt/payment-request

NOAUTOREVERT=true
TBR=raphael.kubo.da.costa@intel.com

No-Export: true
Change-Id: I1a79dd552f4873a11c4a94573791a779690a14db
Reviewed-on: https://chromium-review.googlesource.com/c/1340515
Commit-Queue: WPT Autoroller <wpt-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: default avatarWPT Autoroller <wpt-autoroller@chops-service-accounts.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#609326}
parent 87c5ea5e
...@@ -12,12 +12,15 @@ async function runManualTest({ completeWith: result }, button) { ...@@ -12,12 +12,15 @@ async function runManualTest({ completeWith: result }, button) {
button.disabled = true; button.disabled = true;
const { response, request } = await getPaymentRequestResponse(); const { response, request } = await getPaymentRequestResponse();
promise_test(async t => { promise_test(async t => {
let completePromise;
let invalidComplete;
let afterComplete;
try { try {
// We .complete() as normal, using the passed test value // We .complete() as normal, using the passed test value
const completePromise = response.complete(result); completePromise = response.complete(result);
assert_true(completePromise instanceof Promise, "returns a promise"); assert_true(completePromise instanceof Promise, "returns a promise");
// Immediately calling complete() again yields a rejected promise. // Immediately calling complete() again yields a rejected promise.
const invalidComplete = response.complete(result); invalidComplete = response.complete(result);
await promise_rejects(t, "InvalidStateError", invalidComplete); await promise_rejects(t, "InvalidStateError", invalidComplete);
// but the original promise is unaffected // but the original promise is unaffected
const returnedValue = await completePromise; const returnedValue = await completePromise;
...@@ -28,7 +31,7 @@ async function runManualTest({ completeWith: result }, button) { ...@@ -28,7 +31,7 @@ async function runManualTest({ completeWith: result }, button) {
); );
// We now call .complete() again, to force an exception // We now call .complete() again, to force an exception
// because [[complete]] is true. // because [[complete]] is true.
const afterComplete = response.complete(result); afterComplete = response.complete(result);
await promise_rejects(t, "InvalidStateError", afterComplete); await promise_rejects(t, "InvalidStateError", afterComplete);
button.innerHTML = `✅ ${button.textContent}`; button.innerHTML = `✅ ${button.textContent}`;
} catch (err) { } catch (err) {
...@@ -41,7 +44,7 @@ async function runManualTest({ completeWith: result }, button) { ...@@ -41,7 +44,7 @@ async function runManualTest({ completeWith: result }, button) {
afterComplete, afterComplete,
]); ]);
assert_equals( assert_equals(
allPromises.length, allPromises.size,
3, 3,
"Calling complete() multiple times is always a new object." "Calling complete() multiple times is always a new object."
); );
...@@ -68,7 +71,7 @@ async function runManualTest({ completeWith: result }, button) { ...@@ -68,7 +71,7 @@ async function runManualTest({ completeWith: result }, button) {
</button> </button>
</li> </li>
<li> <li>
<button onclick="runManualTest({completeWith: 'unknown'}, this)"> <button onclick="runManualTest({completeWith: undefined}, this)">
Passing no argument defaults to "unknown", Passing no argument defaults to "unknown",
eventually closing the sheet and doesn't throw. eventually closing the sheet and doesn't throw.
</button> </button>
...@@ -79,10 +82,18 @@ async function runManualTest({ completeWith: result }, button) { ...@@ -79,10 +82,18 @@ async function runManualTest({ completeWith: result }, button) {
</button> </button>
</li> </li>
<li> <li>
<button onclick="runManualTest({completeWith: 'fail'}, this).then(done)"> <button onclick="runManualTest({completeWith: 'fail'}, this)">
Passing "fail" eventually closes the sheet and doesn't throw. Passing "fail" eventually closes the sheet and doesn't throw.
</button> </button>
</li> </li>
<li>
<button onclick="runManualTest({completeWith: 'unknown'}, this)">
Passing "unknown" eventually closes the sheet and doesn't throw.
</button>
</li>
<li>
<button onclick="done()">Done!</button>
</li>
</ol> </ol>
<small> <small>
If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a> If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a>
......
...@@ -55,12 +55,30 @@ function callCompleteWhileRetrying(button) { ...@@ -55,12 +55,30 @@ function callCompleteWhileRetrying(button) {
promise_test(async t => { promise_test(async t => {
const { response } = await getPaymentRequestResponse(); const { response } = await getPaymentRequestResponse();
const retryPromise = response.retry(); const retryPromise = response.retry();
const completePromise1 = response.complete("success");
const completePromise2 = response.complete("failure");
assert_not_equals(
completePromise1,
completePromise2,
"complete() must return unique promises"
);
await promise_rejects( await promise_rejects(
t, t,
"InvalidStateError", "InvalidStateError",
response.complete("success"), completePromise1,
"Calling complete() while retrying rejects with an InvalidStateError"
);
await promise_rejects(
t,
"InvalidStateError",
completePromise2,
"Calling complete() while retrying rejects with an InvalidStateError" "Calling complete() while retrying rejects with an InvalidStateError"
); );
assert_not_equals(
completePromise1,
completePromise2,
"complete() must return unique promises"
);
await retryPromise; await retryPromise;
await response.complete("success"); await response.complete("success");
}, button.textContent.trim()); }, button.textContent.trim());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment