Skip to content

Commit

Permalink
Bug 1575944 [wpt PR 18617] - Test <frame>.tabIndex, a=testonly
Browse files Browse the repository at this point in the history
Automatic update from web-platform-tests
Test <frame>.tabIndex

Follows whatwg/html#4859.

--

wpt-commits: b8cdc9bf2f140359cc60c30241675461e6a0a71a
wpt-pr: 18617
  • Loading branch information
domenic authored and moz-wptsync-bot committed Aug 27, 2019
1 parent 0aee98d commit 54046e9
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 0 deletions.
@@ -0,0 +1,6 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>We'll grab a frame from this page to test its tabIndex</title>
<frameset>
<frame></frame>
</frameset>
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>HTML Test: tabIndex getter return value for frames</title>
<link rel="help" href="https://html.spec.whatwg.org/multipage/interaction.html#dom-tabindex">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<!-- <frame> elements are harder to test than the rest so they get their own file -->

<body>

<script>
"use strict";
test(() => {
const frame = document.createElement("frame");
assert_equals(frame.tabIndex, 0);
}, "disconnected frame element .tabIndex should return 0 by default");

for (const setValue of [-1, 0, 1]) {
test(() => {
const frame = document.createElement("frame");
frame.setAttribute("tabindex", setValue);
assert_equals(frame.tabIndex, setValue);
}, `disconnected frame element .tabIndex should return ${setValue} when set to ${setValue}`);
}

promise_test(async t => {
const frame = await getFrame(t);
assert_equals(frame.tabIndex, 0);
}, "connected frame element inside frameset .tabIndex should return 0 by default");

for (const setValue of [-1, 0, 1]) {
promise_test(async t => {
const frame = await getFrame(t);
frame.setAttribute("tabindex", setValue);
assert_equals(frame.tabIndex, setValue);
}, `connected frame element inside frameset .tabIndex should return ${setValue} when set to ${setValue}`);
}


function getFrame(t) {
return new Promise((resolve, reject) => {
const iframe = document.createElement("iframe");
t.add_cleanup(() => iframe.remove());

iframe.src = "resources/frameset-using-page.html";
iframe.onload = () => {
resolve(iframe.contentDocument.querySelector("frame"));
};
iframe.onerror = () => reject(new Error("Could not load frameset page"));

document.body.append(iframe);
});
}
</script>

0 comments on commit 54046e9

Please sign in to comment.