| <!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> |
| |