blob: 21b3f3e824895e5b1af3e8798c50e8b799cb8ea2 [file] [log] [blame]
<!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>