83 lines
2.4 KiB
HTML
83 lines
2.4 KiB
HTML
<!doctype html>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<body>
|
|
<div style="height: 1000px; width: 1000px;"></div>
|
|
<div id="frag"></div>
|
|
<script>
|
|
let i = 0;
|
|
async function urlDidChangeImmediately(listener, expected) {
|
|
navigation.addEventListener("navigate", listener, { once: true });
|
|
let expected_hash = "#" + ++i;
|
|
assert_not_equals(location.hash, expected_hash);
|
|
let finished = navigation.navigate(expected_hash).finished;
|
|
assert_equals(location.hash === expected_hash, expected);
|
|
await finished;
|
|
assert_equals(location.hash, expected_hash);
|
|
}
|
|
|
|
async function testUrlDidChangeImmediately(listener) {
|
|
await urlDidChangeImmediately(listener, true);
|
|
}
|
|
|
|
async function testUrlDidNotChangeImmediately(listener) {
|
|
await urlDidChangeImmediately(listener, false);
|
|
}
|
|
|
|
promise_test(async t => {
|
|
await testUrlDidNotChangeImmediately(e => {
|
|
e.intercept({ precommitHandler: async () => {} });
|
|
e.intercept({ precommitHandler: async () => {} });
|
|
});
|
|
}, "precommitHandler + precommitHandler");
|
|
|
|
promise_test(async t => {
|
|
await testUrlDidNotChangeImmediately(e => {
|
|
e.intercept({ precommitHandler: async () => {} });
|
|
e.intercept();
|
|
});
|
|
}, "precommitHandler + (not provided)");
|
|
|
|
promise_test(async t => {
|
|
await testUrlDidNotChangeImmediately(e => {
|
|
e.intercept({ precommitHandler: async () => {} });
|
|
e.intercept({ handler: async () => {} });
|
|
});
|
|
}, "precommitHandler + handler");
|
|
|
|
promise_test(async t => {
|
|
await testUrlDidNotChangeImmediately(e => {
|
|
e.intercept({ handler: async () => {} });
|
|
e.intercept({ precommitHandler: async () => {} });
|
|
});
|
|
}, "handler + precommitHandler");
|
|
|
|
promise_test(async t => {
|
|
await testUrlDidChangeImmediately(e => {
|
|
e.intercept({ handler: async () => {} });
|
|
e.intercept();
|
|
});
|
|
}, "handler + (not provided)");
|
|
|
|
promise_test(async t => {
|
|
await testUrlDidChangeImmediately(e => {
|
|
e.intercept({ handler: async () => {} });
|
|
e.intercept({ handler: async () => {} });
|
|
});
|
|
}, "handler + handler");
|
|
|
|
promise_test(async t => {
|
|
await testUrlDidNotChangeImmediately(e => {
|
|
e.intercept();
|
|
e.intercept({ precommitHandler: async () => {} });
|
|
});
|
|
}, "(not provided) + precommitHandler");
|
|
|
|
promise_test(async t => {
|
|
await testUrlDidChangeImmediately(e => {
|
|
e.intercept();
|
|
e.intercept({ handler: async () => {} });
|
|
});
|
|
}, "(not provided) + handler");
|
|
</script>
|
|
</body>
|