mirror of
https://github.com/servo/servo.git
synced 2025-08-18 20:05:34 +01:00
Update web-platform-tests to revision b9d4748d6a7f9b21bd420486955b44349aa005ea
This commit is contained in:
parent
0a9a222356
commit
28ed236c3a
76 changed files with 2158 additions and 581 deletions
|
@ -0,0 +1,46 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
Tentative due to:
|
||||
https://github.com/whatwg/fullscreen/issues/152
|
||||
|
||||
-->
|
||||
<title>Element#requestFullscreen() twice</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../trusted-click.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
promise_test(async (test) => {
|
||||
const div = document.querySelector("div");
|
||||
|
||||
const fullscreenChangePromise = new Promise((resolve, reject) => {
|
||||
document.onfullscreenchange = test.step_func(() => {
|
||||
assert_equals(document.fullscreenElement, div);
|
||||
// Ensure that there's only one fullscreenchange event.
|
||||
document.onfullscreenchange = test.unreached_func("second fullscreenchange event");
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
||||
const fullscreenErrorPromise = new Promise((resolve, reject) => {
|
||||
document.onfullscreenerror = test.step_func(() => {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
||||
trusted_click(test, () => {
|
||||
// Request fullscreen twice.
|
||||
div.requestFullscreen();
|
||||
assert_equals(document.fullscreenElement, null, "fullscreenElement after first requestFullscreen()");
|
||||
var p = div.requestFullscreen();
|
||||
if (p) {
|
||||
p.then(test.unreached_func("promise unexpectedly resolved"), ()=>{});
|
||||
}
|
||||
}, document.body);
|
||||
|
||||
await Promise.all([
|
||||
fullscreenChangePromise,
|
||||
fullscreenErrorPromise,
|
||||
]);
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
Tentative due to:
|
||||
https://github.com/whatwg/fullscreen/issues/152
|
||||
|
||||
-->
|
||||
<title>Element#requestFullscreen() on two elements in the same document</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../trusted-click.js"></script>
|
||||
<div id="log"></div>
|
||||
<div id="a"></div>
|
||||
<div id="b"></div>
|
||||
<script>
|
||||
promise_test(async (test) => {
|
||||
// Request fullscreen on both elements, but in reverse tree order.
|
||||
const a = document.getElementById('a');
|
||||
const b = document.getElementById('b');
|
||||
|
||||
// Expect two fullscreenchange events, with document.fullscreenElement
|
||||
// changing in the same order as the requests.
|
||||
const order = [];
|
||||
const fullscreenChangePromise = new Promise((resolve, reject) => {
|
||||
document.onfullscreenchange = test.step_func(() => {
|
||||
assert_in_array(document.fullscreenElement, [a, b]);
|
||||
order.push(document.fullscreenElement.id);
|
||||
if (order.length == 2) {
|
||||
// Since fullscreenchange event occurs at animation frame timing we might
|
||||
// have not seen the transition from null -> 'b' but just see the
|
||||
// resulting 'a' transition twice.
|
||||
assert_true(order[0] == 'a' || order[0] == 'b', 'first id seen is a or b');
|
||||
assert_true(order[1] == 'a', 'second id seen is b');
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
const fullscreenErrorPromise = new Promise((resolve, reject) => {
|
||||
document.onfullscreenerror = test.step_func(() => {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
||||
trusted_click(test, () => {
|
||||
b.requestFullscreen();
|
||||
var p = a.requestFullscreen();
|
||||
if (p) {
|
||||
p.then(test.unreached_func("promise unexpectedly resolved"), ()=>{});
|
||||
}
|
||||
}, document.body);
|
||||
|
||||
await Promise.all([
|
||||
fullscreenChangePromise,
|
||||
fullscreenErrorPromise,
|
||||
]);
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,65 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
Tentative due to:
|
||||
https://github.com/whatwg/fullscreen/issues/152
|
||||
|
||||
-->
|
||||
<title>Element#requestFullscreen() on two elements in different iframes</title>
|
||||
<meta name="timeout" content="long">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../trusted-click.js"></script>
|
||||
<div id="log"></div>
|
||||
<iframe id="a" allowfullscreen></iframe>
|
||||
<iframe id="b" allowfullscreen></iframe>
|
||||
<script>
|
||||
promise_test(async (test) => {
|
||||
// Request fullscreen on the body elements of both iframes, but in reverse
|
||||
// tree order.
|
||||
const a = document.getElementById('a');
|
||||
const b = document.getElementById('b');
|
||||
var rejected = false;
|
||||
|
||||
// Expect two fullscreenchange events, with document.fullscreenElement
|
||||
// changing in the same order as the requests. (Events should also fire on the
|
||||
// iframes' documents, but this is not covered by this test.)
|
||||
const order = [];
|
||||
const fullscreenChangePromise = new Promise((resolve, reject) => {
|
||||
document.onfullscreenchange = test.step_func(() => {
|
||||
assert_in_array(document.fullscreenElement, [a, b]);
|
||||
order.push(document.fullscreenElement.id);
|
||||
if (order.length == 2) {
|
||||
// When the second event arrived, the fullscreen element may still be the
|
||||
// old one.
|
||||
//
|
||||
// TODO(mustaq): We need a better explanation here to cover the tree-order
|
||||
// idea of the spec.
|
||||
assert_true(order[0] == 'a' || order[0] == 'b', 'first id seen is a or b');
|
||||
assert_true(order[1] == 'a', 'second id seen is a');
|
||||
}
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
const fullscreenErrorPromise = new Promise((resolve, reject) => {
|
||||
document.onfullscreenerror = test.step_func(() => {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
||||
// Make a trusted click on frame 'b' to activate it.
|
||||
trusted_click(test, () => {
|
||||
// Now queue a trusted click on frame 'a' to make back-to-back calls.
|
||||
setTimeout(() => {
|
||||
trusted_click(test, () => {
|
||||
b.contentDocument.body.requestFullscreen();
|
||||
a.contentDocument.body.requestFullscreen().catch(test.step_func_done());
|
||||
}, a.contentDocument.body);
|
||||
}, 0);
|
||||
}, b.contentDocument.body);
|
||||
|
||||
await Promise.all([
|
||||
fullscreenChangePromise,
|
||||
fullscreenErrorPromise,
|
||||
]);
|
||||
});
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue