mirror of
https://github.com/servo/servo.git
synced 2025-06-24 00:54:32 +01:00
171 lines
5.2 KiB
HTML
171 lines
5.2 KiB
HTML
<!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>
|