| <!doctype html> | |
| <title>WebSockets: multiple WebSocket objects</title> | |
| <meta name=timeout content=long> | |
| <script src=/resources/testharness.js></script> | |
| <script src=/resources/testharnessreport.js></script> | |
| <script src=../constants.js?pipe=sub></script> | |
| <div id=log></div> | |
| <script> | |
| async_test(function(t) { | |
| // test that the events are fired as they should when opening 25 websockets and | |
| // sending a message on each and then closing when getting the message back | |
| var ws = []; | |
| var events = 0; | |
| for (var i = 0; i < 25; ++i) { | |
| ws[i] = new WebSocket(SCHEME_DOMAIN_PORT+'/echo'); | |
| ws[i].id = i; | |
| ws[i].onopen = t.step_func(function(e) { | |
| events++; | |
| this.send(this.id); | |
| this.onopen = t.step_func(function() {assert_unreached()}); | |
| }, ws[i]); | |
| ws[i].onmessage = t.step_func(function(e) { | |
| events++; | |
| assert_equals(e.data, ''+this.id); | |
| this.close(); | |
| this.onmessage = t.step_func(function() {assert_unreached()}); | |
| }, ws[i]); | |
| ws[i].onclose = t.step_func(function(e) { | |
| events++; | |
| if (events == 75) { | |
| t.done(); | |
| } | |
| this.onclose = t.step_func(function() {assert_unreached()}); | |
| }, ws[i]); | |
| ws[i].onerror = t.step_func(function() {assert_unreached()}); | |
| } | |
| }, null, {timeout:25000}); | |
| </script> | |