mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Update web-platform-tests to revision 2b80e6d28f3c1ca734384ebded282bf07df80657
This commit is contained in:
parent
32eb858a6a
commit
aff72973cf
379 changed files with 13969 additions and 2161 deletions
|
@ -10,21 +10,83 @@
|
|||
<script>
|
||||
'use strict';
|
||||
|
||||
setup({
|
||||
allow_uncaught_exception: true
|
||||
});
|
||||
|
||||
(function() {
|
||||
var resolveLoaded;
|
||||
var loadedPromise = new Promise(function(resolve) { resolveLoaded = resolve; });
|
||||
|
||||
async_test(function(t) {
|
||||
addEventListener('unhandledrejection', t.unreached_func('unhandledrejection event should never be triggered'));
|
||||
addEventListener('rejectionhandled', t.unreached_func('rejectionhandled event should never be triggered'));
|
||||
promise_test(function(t) {
|
||||
var unreachedUnhandled = t.unreached_func('unhandledrejection event should never be triggered');
|
||||
var unreachedHandled = t.unreached_func('rejectionhandled event should never be triggered');
|
||||
|
||||
loadedPromise.then(t.step_func(function() {
|
||||
t.step_timeout(function() {
|
||||
t.done();
|
||||
}, 1000);
|
||||
addEventListener('unhandledrejection', unreachedUnhandled);
|
||||
addEventListener('rejectionhandled', unreachedHandled);
|
||||
ensureCleanup(t, unreachedUnhandled, unreachedHandled);
|
||||
|
||||
return loadedPromise.then(t.step_func(function() {
|
||||
return new Promise(function(resolve) {
|
||||
t.step_timeout(function() {
|
||||
resolve();
|
||||
}, 1000);
|
||||
});
|
||||
}));
|
||||
}, 'Promise rejection event should be muted for cross-origin non-CORS script');
|
||||
|
||||
promise_test(function(t) {
|
||||
var unreachedUnhandled = t.unreached_func('unhandledrejection event should never be triggered');
|
||||
var unreachedHandled = t.unreached_func('rejectionhandled event should never be triggered');
|
||||
|
||||
addEventListener('unhandledrejection', unreachedUnhandled);
|
||||
addEventListener('rejectionhandled', unreachedHandled);
|
||||
ensureCleanup(t, unreachedUnhandled, unreachedHandled);
|
||||
|
||||
return new Promise(function(resolve) {
|
||||
handleRejectedPromise(new Promise(function(resolve, reject) { reject(42); }));
|
||||
t.step_timeout(function() {
|
||||
resolve();
|
||||
}, 1000);
|
||||
});
|
||||
}, 'Promise rejection should be muted if the rejected promise is handled in cross-origin non-CORS script');
|
||||
|
||||
promise_test(function(t) {
|
||||
var promise = new Promise(function(resolve, reject) { reject(42); });
|
||||
var resolveReceived;
|
||||
var eventPromise = new Promise(function(resolve) { resolveReceived = resolve; });
|
||||
var unhandled = t.step_func(function(e) {
|
||||
if (e.promise === promise) {
|
||||
handleRejectedPromise(promise);
|
||||
resolveReceived();
|
||||
}
|
||||
});
|
||||
var unreachedHandled = t.unreached_func('rejectionhandled event should never be triggered');
|
||||
|
||||
addEventListener('unhandledrejection', unhandled);
|
||||
addEventListener('rejectionhandled', unreachedHandled);
|
||||
ensureCleanup(t, unhandled, unreachedHandled);
|
||||
|
||||
return eventPromise.then(t.step_func(function() {
|
||||
return new Promise(function(resolve) {
|
||||
t.step_timeout(function() {
|
||||
resolve();
|
||||
}, 1000);
|
||||
});
|
||||
}));
|
||||
}, 'Promise rejection should be muted if the rejected promise is handled in unhandledrejection event handler in cross-origin non-CORS script');
|
||||
|
||||
function ensureCleanup(t, unhandled, handled) {
|
||||
t.add_cleanup(function() {
|
||||
if (unhandled) {
|
||||
removeEventListener('unhandledrejection', unhandled);
|
||||
}
|
||||
if (handled) {
|
||||
removeEventListener('rejectionhandled', handled);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var scriptEl = document.createElement('script');
|
||||
scriptEl.src = CROSSDOMAIN + 'support/promise-access-control.py?allow=false';
|
||||
scriptEl.onload = resolveLoaded;
|
||||
|
|
|
@ -5,6 +5,14 @@ def main(request, response):
|
|||
if allow != "false":
|
||||
headers.append(("Access-Control-Allow-Origin", "*"))
|
||||
|
||||
body = "new Promise(function(resolve, reject) { reject(42); })"
|
||||
body = """
|
||||
function handleRejectedPromise(promise) {
|
||||
promise.catch(() => {});
|
||||
}
|
||||
|
||||
(function() {
|
||||
new Promise(function(resolve, reject) { reject(42); });
|
||||
})();
|
||||
"""
|
||||
|
||||
return headers, body
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue