mirror of
https://github.com/servo/servo.git
synced 2025-07-01 12:33:40 +01:00
138 lines
4.3 KiB
HTML
138 lines
4.3 KiB
HTML
<!doctype html>
|
|
<meta charset=utf-8>
|
|
<title>WebVTT IDL tests</title>
|
|
<script src=/resources/testharness.js></script>
|
|
<script src=/resources/testharnessreport.js></script>
|
|
<script src=/resources/WebIDLParser.js></script>
|
|
<script src=/resources/idlharness.js></script>
|
|
|
|
<h1>WebVTT IDL tests</h1>
|
|
<div id=log></div>
|
|
|
|
<script type=text/plain id=untested>
|
|
// HTML
|
|
interface TextTrackCue : EventTarget {
|
|
readonly attribute TextTrack? track;
|
|
|
|
attribute DOMString id;
|
|
attribute double startTime;
|
|
attribute double endTime;
|
|
attribute boolean pauseOnExit;
|
|
|
|
attribute EventHandler onenter;
|
|
attribute EventHandler onexit;
|
|
};
|
|
|
|
[TreatNonObjectAsNull]
|
|
callback EventHandlerNonNull = any (Event event);
|
|
typedef EventHandlerNonNull? EventHandler;
|
|
|
|
// DOM
|
|
[Exposed=(Window,Worker)]
|
|
interface EventTarget {
|
|
void addEventListener(DOMString type, EventListener? callback, optional (AddEventListenerOptions or boolean) options);
|
|
void removeEventListener(DOMString type, EventListener? callback, optional (EventListenerOptions or boolean) options);
|
|
boolean dispatchEvent(Event event);
|
|
};
|
|
|
|
callback interface EventListener {
|
|
void handleEvent(Event event);
|
|
};
|
|
|
|
dictionary EventListenerOptions {
|
|
boolean capture = false;
|
|
};
|
|
|
|
dictionary AddEventListenerOptions : EventListenerOptions {
|
|
boolean passive = false;
|
|
boolean once = false;
|
|
};
|
|
|
|
[Constructor,
|
|
Exposed=Window]
|
|
interface DocumentFragment : Node {
|
|
};
|
|
|
|
[Exposed=Window]
|
|
interface Node : EventTarget {
|
|
const unsigned short ELEMENT_NODE = 1;
|
|
const unsigned short ATTRIBUTE_NODE = 2;
|
|
const unsigned short TEXT_NODE = 3;
|
|
const unsigned short CDATA_SECTION_NODE = 4;
|
|
const unsigned short ENTITY_REFERENCE_NODE = 5; // historical
|
|
const unsigned short ENTITY_NODE = 6; // historical
|
|
const unsigned short PROCESSING_INSTRUCTION_NODE = 7;
|
|
const unsigned short COMMENT_NODE = 8;
|
|
const unsigned short DOCUMENT_NODE = 9;
|
|
const unsigned short DOCUMENT_TYPE_NODE = 10;
|
|
const unsigned short DOCUMENT_FRAGMENT_NODE = 11;
|
|
const unsigned short NOTATION_NODE = 12; // historical
|
|
readonly attribute unsigned short nodeType;
|
|
readonly attribute DOMString nodeName;
|
|
|
|
readonly attribute USVString baseURI;
|
|
|
|
readonly attribute boolean isConnected;
|
|
readonly attribute Document? ownerDocument;
|
|
Node getRootNode(optional GetRootNodeOptions options);
|
|
readonly attribute Node? parentNode;
|
|
readonly attribute Element? parentElement;
|
|
boolean hasChildNodes();
|
|
[SameObject] readonly attribute NodeList childNodes;
|
|
readonly attribute Node? firstChild;
|
|
readonly attribute Node? lastChild;
|
|
readonly attribute Node? previousSibling;
|
|
readonly attribute Node? nextSibling;
|
|
|
|
[CEReactions] attribute DOMString? nodeValue;
|
|
[CEReactions] attribute DOMString? textContent;
|
|
[CEReactions] void normalize();
|
|
|
|
[CEReactions, NewObject] Node cloneNode(optional boolean deep = false);
|
|
boolean isEqualNode(Node? otherNode);
|
|
boolean isSameNode(Node? otherNode); // historical alias of ===
|
|
|
|
const unsigned short DOCUMENT_POSITION_DISCONNECTED = 0x01;
|
|
const unsigned short DOCUMENT_POSITION_PRECEDING = 0x02;
|
|
const unsigned short DOCUMENT_POSITION_FOLLOWING = 0x04;
|
|
const unsigned short DOCUMENT_POSITION_CONTAINS = 0x08;
|
|
const unsigned short DOCUMENT_POSITION_CONTAINED_BY = 0x10;
|
|
const unsigned short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
|
|
unsigned short compareDocumentPosition(Node other);
|
|
boolean contains(Node? other);
|
|
|
|
DOMString? lookupPrefix(DOMString? namespace);
|
|
DOMString? lookupNamespaceURI(DOMString? prefix);
|
|
boolean isDefaultNamespace(DOMString? namespace);
|
|
|
|
[CEReactions] Node insertBefore(Node node, Node? child);
|
|
[CEReactions] Node appendChild(Node node);
|
|
[CEReactions] Node replaceChild(Node node, Node child);
|
|
[CEReactions] Node removeChild(Node child);
|
|
};
|
|
|
|
dictionary GetRootNodeOptions {
|
|
boolean composed = false;
|
|
};
|
|
</script>
|
|
|
|
<script>
|
|
"use strict";
|
|
|
|
// https://w3c.github.io/webvtt/
|
|
|
|
promise_test(async () => {
|
|
const webvttIDL = await fetch('/interfaces/webvtt.idl').then(response =>
|
|
response.text(),
|
|
);
|
|
var idlArray = new IdlArray();
|
|
idlArray.add_untested_idls(document.getElementById('untested').textContent);
|
|
idlArray.add_idls(webvttIDL);
|
|
idlArray.add_objects({
|
|
VTTCue: ['new VTTCue(0, 0, "")'],
|
|
VTTRegion: ['new VTTRegion()'],
|
|
});
|
|
idlArray.test();
|
|
done();
|
|
}, 'webvtt interfaces.');
|
|
</script>
|