Files
sousa-gecko/testing/web-platform/tests/css/css-view-transitions/start-skip-start.html
T
Rune Lillesveen e80befb0d2 Bug 2025625 [wpt PR 58672] - assert_not_reached() -> assert_unreached() in wpt, a=testonly
Automatic update from web-platform-tests
assert_not_reached() -> assert_unreached() in wpt

There is no assert_not_reached() in testharness.js. Replace with
assert_unreached().

Change-Id: I06a7858263c04cfa045b090695d33e973817c62a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7687372
Commit-Queue: Rune Lillesveen <futhark@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1603318}

--

wpt-commits: e9b7718c7db0682db8f2d0ee0e30e49b2e391a66
wpt-pr: 58672
2026-03-30 08:08:56 +00:00

88 lines
2.4 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Test start skip and then start on a view transition</title>
<link rel="help" href="https://www.w3.org/TR/css-view-transitions-1/">
</head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
:root {
view-transition-name: none;
}
#target {
width: 100px;
height: 100px;
background: blue;
contain: paint;
view-transition-name: target;
}
#target.update-1 {
height: 150px;
}
#target.update-2 {
height: 200px;
}
</style>
<body>
<div id="target"></div>
</body>
<script>
promise_test(async t => {
let rejected_promise_tally = 0;
const target = document.getElementById("target");
assert_implements(document.startViewTransition,
"Missing document.startViewTransition");
const verifyAbortedTransition = (promise) => {
return promise.then(
() => { assert_unreached('transition aborted') },
(reason) => {
assert_true(reason instanceof DOMException);
assert_equals(reason.code, DOMException.ABORT_ERR);
rejected_promise_tally++;
});
};
const vt1 = document.startViewTransition(() => {
target.className = 'update-1';
});
vt1.skipTransition();
const vt2 = document.startViewTransition(() => {
assert_equals(target.className, 'update-1');
target.className = 'update-2';
});
vt2.skipTransition();
const vt3 = document.startViewTransition(() => {
assert_equals(target.className, 'update-2');
});
await verifyAbortedTransition(vt1.ready);
await verifyAbortedTransition(vt2.ready);
await vt3.ready;
assert_equals(rejected_promise_tally, 2,
'first 2 transitions were skipped');
const sizeTransformAnimations = document.getAnimations().filter(a => {
return 'height' in a.effect.getKeyframes()[0];
});
assert_equals(sizeTransformAnimations.length, 1);
const startingHeight =
sizeTransformAnimations[0].effect.getKeyframes()[0].height;
assert_equals(startingHeight, '200px',
'Height change applied before capture');
}, 'Synchronously starting a view transition blocks on DOM callback for ' +
'previously skipped transitions');
</script>
</html>