blob: c245da99455a0771eea081ef4e3875b42e2b760e [file] [log] [blame]
<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<iframe id="i" src="/common/blank.html"></iframe>
<script>
promise_test(async t => {
await new Promise(resolve => window.onload = resolve);
let iframe_constructor = i.contentWindow.DOMException;
let i_win = i.contentWindow;
await i.contentWindow.appHistory.navigate("#1");
assert_equals(i.contentWindow.appHistory.entries().length, 2);
let key = i.contentWindow.appHistory.entries()[0].key;
let onnavigateerror_called = false;
let onnavigateerror_error;
i.contentWindow.appHistory.onnavigate = t.step_func(() => i.remove());
i.contentWindow.appHistory.onnavigateerror = t.step_func(e => {
assert_false(onnavigateerror_called);
onnavigateerror_called = true;
onnavigateerror_error = e.error;
assert_equals(e.filename, location.href);
assert_greater_than(e.lineno, 0);
assert_greater_than(e.colno, 0);
});
await i.contentWindow.appHistory.goTo(key).catch(t.step_func(e => {
assert_true(onnavigateerror_called);
assert_equals(e, onnavigateerror_error);
}));
}, "goTo() in a detached window");
</script>