| <!doctype html> | 
 | <title>Web Sockets 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>Web Sockets IDL tests</h1> | 
 | <div id=log></div> | 
 |  | 
 | <script type=text/plain> | 
 | enum BinaryType { "blob", "arraybuffer" }; | 
 | [Constructor(DOMString url, optional (DOMString or DOMString[]) protocols), Exposed=Window,Worker] | 
 | interface WebSocket : EventTarget { | 
 |   readonly attribute DOMString url; | 
 |  | 
 |   // ready state | 
 |   const unsigned short CONNECTING = 0; | 
 |   const unsigned short OPEN = 1; | 
 |   const unsigned short CLOSING = 2; | 
 |   const unsigned short CLOSED = 3; | 
 |   readonly attribute unsigned short readyState; | 
 |   readonly attribute unsigned long bufferedAmount; | 
 |  | 
 |   // networking | 
 |            attribute EventHandler onopen; | 
 |            attribute EventHandler onerror; | 
 |            attribute EventHandler onclose; | 
 |   readonly attribute DOMString extensions; | 
 |   readonly attribute DOMString protocol; | 
 |   void close([Clamp] optional unsigned short code, optional DOMString reason); | 
 |  | 
 |   // messaging | 
 |            attribute EventHandler onmessage; | 
 |            attribute BinaryType binaryType; | 
 |   void send(DOMString data); | 
 |   void send(Blob data); | 
 |   void send(ArrayBuffer data); | 
 |   void send(ArrayBufferView data); | 
 | }; | 
 |  | 
 | [Constructor(DOMString type, optional CloseEventInit eventInitDict), Exposed=Window,Worker] | 
 | interface CloseEvent : Event { | 
 |   readonly attribute boolean wasClean; | 
 |   readonly attribute unsigned short code; | 
 |   readonly attribute DOMString reason; | 
 | }; | 
 |  | 
 | dictionary CloseEventInit : EventInit { | 
 |   boolean wasClean; | 
 |   unsigned short code; | 
 |   DOMString reason; | 
 | }; | 
 |  | 
 | [TreatNonCallableAsNull] | 
 | callback EventHandlerNonNull = any (Event event); | 
 | typedef EventHandlerNonNull? EventHandler; | 
 | </script> | 
 | <script> | 
 | "use strict"; | 
 | var idlArray; | 
 | setup(function() { | 
 |     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); | 
 |         } | 
 |     }); | 
 | }, {explicit_done:true}); | 
 | window.onload = function() { | 
 |     idlArray.add_objects({ | 
 |         WebSocket: ['new WebSocket("ws://foo")'], | 
 |     }); | 
 |     idlArray.test(); | 
 |     done(); | 
 | }; | 
 | </script> |