| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body> |
| <a href="#fragment1" id="link1" tabindex="0">link1</a> |
| <a href="#fragment2" id="link2" tabindex="0">link2</a> |
| <a href="#fragment3" id="link3" tabindex="0">link3</a> |
| <a href="#top" id="link4" tabindex="0">link4</a> |
| <a href="#" id="link5" tabindex="0">link5</a> |
| <a href="#input1" id="link6" tabindex="0">link6</a> |
| <br><br> |
| <div id="fragment1" name="fragment1" tabindex="0">fragment1</div> |
| <div id="fragment2" name="fragment2">fragment2</div> |
| <input id="input1" value="abcdef"> |
| <script> |
| description("This tests that if an in-page link is activated, focus control is transferred to the fragment if possible."); |
| |
| var link1 = document.getElementById("link1"); |
| link1.focus(); |
| debug("Verify that the focus is on the link."); |
| shouldBe("document.activeElement", "link1"); |
| |
| link1.click(); |
| debug("Click the link and verify that focus has moved to the fragment."); |
| shouldBe("document.activeElement", "document.getElementById('fragment1')"); |
| |
| debug("Move focus back to the link and verify."); |
| link1.focus(); |
| shouldBe("document.activeElement", "link1"); |
| |
| if (window.testRunner) { |
| debug("Send an enter key event which should also trigger focus to move to the fragment."); |
| eventSender.keyDown("Enter"); |
| shouldBe("document.activeElement", "document.getElementById('fragment1')"); |
| } |
| |
| debug("Activate a link that does not have a focusable fragment and verify that the currently focused element is unfocused."); |
| var link2 = document.getElementById("link2"); |
| link2.focus(); |
| shouldBe("document.activeElement", "link2"); |
| link2.click(); |
| shouldBe("document.activeElement", "document.body"); |
| |
| debug("Activate a link that does not refer to an existing fragment and verify that the currently focused element remains focused."); |
| var link3 = document.getElementById("link3"); |
| link3.focus(); |
| shouldBe("document.activeElement", "link3"); |
| link3.click(); |
| shouldBe("document.activeElement", "link3"); |
| |
| debug("Activate a link to #top and verify that the link remains focused"); |
| var link4 = document.getElementById("link4"); |
| link4.focus(); |
| shouldBe("document.activeElement", "link4"); |
| link4.click(); |
| shouldBe("document.activeElement", "link4"); |
| |
| debug("Activate a link to # and verify that the link remains focused"); |
| var link5 = document.getElementById("link5"); |
| link5.focus(); |
| shouldBe("document.activeElement", "link5"); |
| link5.click(); |
| shouldBe("document.activeElement", "link5"); |
| |
| debug("Activate a link to an INPUT elemnt, verify that the INPUT is editable"); |
| var input1 = document.getElementById("input1"); |
| input1.setSelectionRange(3, 3); |
| var link6 = document.getElementById("link6"); |
| link6.focus(); |
| shouldBe("document.activeElement", "link6"); |
| link6.click(); |
| shouldBe("document.activeElement", "input1"); |
| if (window.eventSender) { |
| eventSender.keyDown('X'); |
| shouldBeEqualToString("input1.value", "abcXdef"); |
| } |
| var successfullyParsed = true; |
| </script> |
| </body> |
| </html> |