| <!doctype html> | |
| <title>Selection interface tests</title> | |
| <div id=log></div> | |
| <script src=/resources/testharness.js></script> | |
| <script src=/resources/testharnessreport.js></script> | |
| <script src=/resources/WebIDLParser.js></script> | |
| <script src=/resources/idlharness.js></script> | |
| <script type=text/plain> | |
| // http://w3c.github.io/selection-api/#selection-interface | |
| interface Selection { | |
| readonly attribute Node? anchorNode; | |
| readonly attribute unsigned long anchorOffset; | |
| readonly attribute Node? focusNode; | |
| readonly attribute unsigned long focusOffset; | |
| readonly attribute boolean isCollapsed; | |
| readonly attribute unsigned long rangeCount; | |
| readonly attribute DOMString type; | |
| Range getRangeAt(unsigned long index); | |
| void addRange(Range range); | |
| void removeRange(Range range); | |
| void removeAllRanges(); | |
| void empty(); | |
| void collapse(Node? node, optional unsigned long offset = 0); | |
| void setPosition(Node? node, optional unsigned long offset = 0); | |
| void collapseToStart(); | |
| void collapseToEnd(); | |
| void extend(Node node, optional unsigned long offset = 0); | |
| void setBaseAndExtent(Node anchorNode, | |
| unsigned long anchorOffset, | |
| Node focusNode, | |
| unsigned long focusOffset); | |
| void selectAllChildren(Node node); | |
| [CEReactions] | |
| void deleteFromDocument(); | |
| boolean containsNode(Node node, | |
| optional boolean allowPartialContainment = false); | |
| stringifier DOMString (); | |
| }; | |
| partial interface Document { | |
| Selection? getSelection(); | |
| }; | |
| partial interface Window { | |
| Selection? getSelection(); | |
| }; | |
| partial interface GlobalEventHandlers { | |
| attribute EventHandler onselectstart; | |
| attribute EventHandler onselectionchange; | |
| }; | |
| </script> | |
| <script> | |
| "use strict"; | |
| function doTest([dom, cssom, touchevents, uievents, html]) { | |
| var idlArray = new IdlArray(); | |
| idlArray.add_untested_idls(dom + cssom + touchevents + uievents + html); | |
| idlArray.add_idls(document.querySelector("script[type=text\\/plain]").textContent); | |
| idlArray.add_objects({Selection: ['getSelection()']}); | |
| idlArray.test(); | |
| } | |
| function fetchData(url) { | |
| return fetch(url).then((response) => response.text()); | |
| } | |
| promise_test(function() { | |
| return Promise.all([fetchData("/interfaces/dom.idl"), | |
| fetchData("/interfaces/cssom.idl"), | |
| fetchData("/interfaces/touchevents.idl"), | |
| fetchData("/interfaces/uievents.idl"), | |
| fetchData("/interfaces/html.idl")]) | |
| .then(doTest); | |
| }, "Test driver"); | |
| </script> |