010.html (1222B)
1 <!doctype html> 2 <title>WebSockets: sending non-strings</title> 3 <meta name="timeout" content="long"> 4 5 <script src=/resources/testharness.js></script> 6 <script src=/resources/testharnessreport.js></script> 7 <script src=../../../constants.sub.js></script> 8 <meta name="variant" content="?default"> 9 <meta name="variant" content="?wss"> 10 <div id=log></div> 11 <script> 12 async_test(function(outer) { 13 var ws = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); 14 var stuffToSend = [null, undefined, 1, window, document.body, {}, [], ws, function(){}, new Error()] 15 var tests = []; 16 17 for (var i=0; i<stuffToSend.length; i++) { 18 tests.push(async_test(document.title + " (" + stuffToSend[i] + ")")); 19 } 20 21 i = 0; 22 function sendNext() { 23 if (i === stuffToSend.length) { 24 outer.done() 25 ws.close(); 26 } else { 27 var t = tests[i]; 28 ws.onmessage = t.step_func(function(e) { 29 assert_equals(e.data, String(stuffToSend[i])); 30 i++; 31 sendNext(); 32 t.done(); 33 }); 34 ws.onclose = ws.onerror = t.step_func(function() {assert_unreached()}); 35 ws.send(stuffToSend[i]); 36 } 37 } 38 ws.onopen = outer.step_func(function(e) { 39 sendNext(); 40 }); 41 }, "Constructor succeeds"); 42 </script>