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) {
button.disabled = true;
const { response, request } = await getPaymentRequestResponse();
promise_test(async t => {
let completePromise;
let invalidComplete;
let afterComplete;
try {
// 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");
// Immediately calling complete() again yields a rejected promise.
const invalidComplete = response.complete(result);
invalidComplete = response.complete(result);
await promise_rejects(t, "InvalidStateError", invalidComplete);
// but the original promise is unaffected
const returnedValue = await completePromise;
......@@ -28,7 +31,7 @@ async function runManualTest({ completeWith: result }, button) {
);
// We now call .complete() again, to force an exception
// because [[complete]] is true.
const afterComplete = response.complete(result);
afterComplete = response.complete(result);
await promise_rejects(t, "InvalidStateError", afterComplete);
button.innerHTML = `✅ ${button.textContent}`;
} catch (err) {
......@@ -41,7 +44,7 @@ async function runManualTest({ completeWith: result }, button) {
afterComplete,
]);
assert_equals(
allPromises.length,
allPromises.size,
3,
"Calling complete() multiple times is always a new object."
);
......@@ -68,7 +71,7 @@ async function runManualTest({ completeWith: result }, button) {
</button>
</li>
<li>
<button onclick="runManualTest({completeWith: 'unknown'}, this)">
<button onclick="runManualTest({completeWith: undefined}, this)">
Passing no argument defaults to "unknown",
eventually closing the sheet and doesn't throw.
</button>
......@@ -79,10 +82,18 @@ async function runManualTest({ completeWith: result }, button) {
</button>
</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.
</button>
</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>
<small>
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) {
promise_test(async t => {
const { response } = await getPaymentRequestResponse();
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(
t,
"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"
);
assert_not_equals(
completePromise1,
completePromise2,
"complete() must return unique promises"
);
await retryPromise;
await response.complete("success");
}, 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