| <!doctype html> | |
| <meta charset=utf-8> | |
| <title>XMLHttpRequest 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>XMLHttpRequest IDL tests</h1> | |
| <div id=log></div> | |
| <script type=text/plain class=untested> | |
| [Constructor(DOMString type, optional EventInit eventInitDict)/*, | |
| Exposed=(Window,Worker)*/] | |
| interface Event { | |
| readonly attribute DOMString type; | |
| readonly attribute EventTarget? target; | |
| readonly attribute EventTarget? currentTarget; | |
| const unsigned short NONE = 0; | |
| const unsigned short CAPTURING_PHASE = 1; | |
| const unsigned short AT_TARGET = 2; | |
| const unsigned short BUBBLING_PHASE = 3; | |
| readonly attribute unsigned short eventPhase; | |
| void stopPropagation(); | |
| void stopImmediatePropagation(); | |
| readonly attribute boolean bubbles; | |
| readonly attribute boolean cancelable; | |
| void preventDefault(); | |
| readonly attribute boolean defaultPrevented; | |
| [Unforgeable] readonly attribute boolean isTrusted; | |
| readonly attribute DOMTimeStamp timeStamp; | |
| void initEvent(DOMString type, boolean bubbles, boolean cancelable); | |
| }; | |
| dictionary EventInit { | |
| boolean bubbles = false; | |
| boolean cancelable = false; | |
| }; | |
| /*[Exposed=(Window,Worker)]*/ | |
| interface EventTarget { | |
| void addEventListener(DOMString type, EventListener? callback, optional boolean capture = false); | |
| void removeEventListener(DOMString type, EventListener? callback, optional boolean capture = false); | |
| boolean dispatchEvent(Event event); | |
| }; | |
| </script> | |
| <script type=text/plain class=untested> | |
| [TreatNonCallableAsNull] | |
| callback EventHandlerNonNull = any (Event event); | |
| typedef EventHandlerNonNull? EventHandler; | |
| </script> | |
| <script type=text/plain> | |
| /*[Exposed=(Window,Worker)]*/ | |
| interface XMLHttpRequestEventTarget : EventTarget { | |
| // event handlers | |
| attribute EventHandler onloadstart; | |
| attribute EventHandler onprogress; | |
| attribute EventHandler onabort; | |
| attribute EventHandler onerror; | |
| attribute EventHandler onload; | |
| attribute EventHandler ontimeout; | |
| attribute EventHandler onloadend; | |
| }; | |
| /*[Exposed=(Window,Worker)]*/ | |
| interface XMLHttpRequestUpload : XMLHttpRequestEventTarget { | |
| }; | |
| enum XMLHttpRequestResponseType { | |
| "", | |
| "arraybuffer", | |
| "blob", | |
| "document", | |
| "json", | |
| "text" | |
| }; | |
| [Constructor/*, | |
| Exposed=(Window,Worker)*/] | |
| interface XMLHttpRequest : XMLHttpRequestEventTarget { | |
| // event handler | |
| attribute EventHandler onreadystatechange; | |
| // states | |
| const unsigned short UNSENT = 0; | |
| const unsigned short OPENED = 1; | |
| const unsigned short HEADERS_RECEIVED = 2; | |
| const unsigned short LOADING = 3; | |
| const unsigned short DONE = 4; | |
| readonly attribute unsigned short readyState; | |
| // request | |
| void open(ByteString method, USVString url); | |
| void open(ByteString method, USVString url, boolean async, optional USVString? username = null, optional USVString? password = null); | |
| void setRequestHeader(ByteString name, ByteString value); | |
| attribute unsigned long timeout; | |
| attribute boolean withCredentials; | |
| readonly attribute XMLHttpRequestUpload upload; | |
| void send(optional (Document or BodyInit)? body = null); | |
| void abort(); | |
| // response | |
| readonly attribute USVString responseURL; | |
| readonly attribute unsigned short status; | |
| readonly attribute ByteString statusText; | |
| ByteString? getResponseHeader(ByteString name); | |
| ByteString getAllResponseHeaders(); | |
| void overrideMimeType(DOMString mime); | |
| attribute XMLHttpRequestResponseType responseType; | |
| readonly attribute any response; | |
| readonly attribute USVString responseText; | |
| [Exposed=Window] readonly attribute Document? responseXML; | |
| }; | |
| typedef (File or USVString) FormDataEntryValue; | |
| [Constructor(optional HTMLFormElement form)/*, | |
| Exposed=(Window,Worker)*/] | |
| interface FormData { | |
| void append(USVString name, Blob value, optional USVString filename); | |
| void append(USVString name, USVString value); | |
| void delete(USVString name); | |
| FormDataEntryValue? get(USVString name); | |
| sequence<FormDataEntryValue> getAll(USVString name); | |
| boolean has(USVString name); | |
| void set(USVString name, Blob value, optional USVString filename); | |
| void set(USVString name, USVString value); | |
| /*iterable<USVString, FormDataEntryValue>;*/ | |
| }; | |
| [Constructor(DOMString type, optional ProgressEventInit eventInitDict)/*, | |
| Exposed=(Window,Worker)*/] | |
| interface ProgressEvent : Event { | |
| readonly attribute boolean lengthComputable; | |
| readonly attribute unsigned long long loaded; | |
| readonly attribute unsigned long long total; | |
| }; | |
| dictionary ProgressEventInit : EventInit { | |
| boolean lengthComputable = false; | |
| unsigned long long loaded = 0; | |
| unsigned long long total = 0; | |
| }; | |
| </script> | |
| <script> | |
| "use strict"; | |
| var form; | |
| var idlArray; | |
| setup(function() { | |
| form = document.createElement("form"); | |
| idlArray = new IdlArray(); | |
| [].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) { | |
| if (node.className == "untested") { | |
| idlArray.add_untested_idls(node.textContent); | |
| } else { | |
| idlArray.add_idls(node.textContent); | |
| } | |
| }); | |
| idlArray.add_objects({ | |
| XMLHttpRequest: ['new XMLHttpRequest()'], | |
| XMLHttpRequestUpload: ['(new XMLHttpRequest()).upload'], | |
| FormData: ['new FormData()', 'new FormData(form)'] | |
| }); | |
| }); | |
| idlArray.test(); | |
| </script> |