|
1 <!doctype html> |
|
2 <meta charset=utf-8> |
|
3 <title>XMLHttpRequest IDL tests</title> |
|
4 <div id=log></div> |
|
5 <script src=/resources/testharness.js></script> |
|
6 <script src=/resources/testharnessreport.js></script> |
|
7 <script src=/resources/WebIDLParser.js></script> |
|
8 <script src=/resources/idlharness.js></script> |
|
9 <script type=text/plain class=untested> |
|
10 interface EventTarget { |
|
11 void addEventListener(DOMString type, EventListener? callback, optional boolean capture /* = false */); |
|
12 void removeEventListener(DOMString type, EventListener? callback, optional boolean capture /* = false */); |
|
13 boolean dispatchEvent(Event event); |
|
14 }; |
|
15 </script> |
|
16 <script type=text/plain> |
|
17 [NoInterfaceObject] |
|
18 interface XMLHttpRequestEventTarget : EventTarget { |
|
19 // event handlers |
|
20 [TreatNonCallableAsNull] attribute Function? onloadstart; |
|
21 [TreatNonCallableAsNull] attribute Function? onprogress; |
|
22 [TreatNonCallableAsNull] attribute Function? onabort; |
|
23 [TreatNonCallableAsNull] attribute Function? onerror; |
|
24 [TreatNonCallableAsNull] attribute Function? onload; |
|
25 [TreatNonCallableAsNull] attribute Function? ontimeout; |
|
26 [TreatNonCallableAsNull] attribute Function? onloadend; |
|
27 }; |
|
28 |
|
29 interface XMLHttpRequestUpload : XMLHttpRequestEventTarget { |
|
30 |
|
31 }; |
|
32 |
|
33 /* |
|
34 enum XMLHttpRequestResponseType { |
|
35 "", |
|
36 "arraybuffer", |
|
37 "blob", |
|
38 "document", |
|
39 "json", |
|
40 "text" |
|
41 }; |
|
42 */ |
|
43 |
|
44 [Constructor] |
|
45 interface XMLHttpRequest : XMLHttpRequestEventTarget { |
|
46 // event handler |
|
47 [TreatNonCallableAsNull] attribute Function? onreadystatechange; |
|
48 |
|
49 // states |
|
50 const unsigned short UNSENT = 0; |
|
51 const unsigned short OPENED = 1; |
|
52 const unsigned short HEADERS_RECEIVED = 2; |
|
53 const unsigned short LOADING = 3; |
|
54 const unsigned short DONE = 4; |
|
55 readonly attribute unsigned short readyState; |
|
56 |
|
57 // request |
|
58 void open(DOMString method, DOMString url, optional boolean async/* = true*/, optional DOMString? user, optional DOMString? password); |
|
59 void setRequestHeader(DOMString header, DOMString value); |
|
60 attribute unsigned long timeout; |
|
61 attribute boolean withCredentials; |
|
62 readonly attribute XMLHttpRequestUpload upload; |
|
63 void send(optional (ArrayBufferView or Blob or Document or DOMString or FormData)? data/* = null*/); |
|
64 void abort(); |
|
65 |
|
66 // response |
|
67 readonly attribute unsigned short status; |
|
68 readonly attribute DOMString statusText; |
|
69 DOMString? getResponseHeader(DOMString header); |
|
70 DOMString getAllResponseHeaders(); |
|
71 void overrideMimeType(DOMString mime); |
|
72 /* attribute XMLHttpRequestResponseType responseType; */ |
|
73 readonly attribute any response; |
|
74 readonly attribute DOMString responseText; |
|
75 readonly attribute Document? responseXML; |
|
76 }; |
|
77 |
|
78 [Constructor, |
|
79 Constructor(HTMLFormElement form)] |
|
80 interface FormData { |
|
81 void append(DOMString name, Blob value, optional DOMString filename); |
|
82 void append(DOMString name, DOMString value); |
|
83 }; |
|
84 </script> |
|
85 <script> |
|
86 "use strict"; |
|
87 var form = document.createElement("form"); |
|
88 var idlArray = new IdlArray(); |
|
89 [].forEach.call(document.querySelectorAll("script[type=text\\/plain]"), function(node) { |
|
90 if (node.className == "untested") { |
|
91 idlArray.add_untested_idls(node.textContent); |
|
92 } else { |
|
93 idlArray.add_idls(node.textContent); |
|
94 } |
|
95 }); |
|
96 idlArray.add_objects({ |
|
97 XMLHttpRequest: ['new XMLHttpRequest()'], |
|
98 XMLHttpRequestUpload: ['(new XMLHttpRequest()).upload'], |
|
99 FormData: ['new FormData()', 'new FormData(form)'] |
|
100 }); |
|
101 idlArray.test(); |
|
102 </script> |