3b51e8d7078a8c2599e6820474d16381eb8ad05e
[WebKit-https.git] / LayoutTests / http / tests / websocket / tests / hybi / simple-stress.html
1 <p>Test sending many messages, and sending a large message.</p>
2 <p>Should say PASS:</p>
3 <pre id=log>Running the test...
4 </pre>
5 <script>
6 var numSmallMessages = 1000;
7
8 if (window.testRunner) {
9     testRunner.dumpAsText();
10     testRunner.waitUntilDone();
11     testRunner.overridePreference("WebKitHixie76WebSocketProtocolEnabled", 0);
12 }
13
14 function log(message)
15 {
16     document.getElementById("log").innerHTML += message + "\n";
17 }
18
19 var ws = new WebSocket("ws://127.0.0.1:8880/websocket/tests/hybi/echo");
20
21 ws.onopen = function() {
22     for (i = 0; i < numSmallMessages; ++i) {
23         ws.send(i);
24     }
25
26 }
27
28 var lastMessage = -1;
29 ws.onmessage = function(msg) {
30     if (parseInt(msg.data) != lastMessage + 1)
31         log("FAIL - out of sequence response. Expected " + lastMessage + 1 + ", got " + msg.data);
32     ++lastMessage;
33     if (lastMessage == numSmallMessages - 1)
34         testLargeString();
35 }
36
37 function testLargeString()
38 {
39     // Build a string 256K in length.
40     var str = " ";
41     for (i = 0; i < 18; ++i)
42         str += str;
43
44     ws.send(str);
45     ws.onmessage = function(msg) {
46         log(msg.data.length == str.length ? "PASS" : "FAIL - wrong response length");
47         ws.send("Goodbye");
48         ws.onmessage = null;
49         if (window.testRunner)
50             setTimeout("testRunner.notifyDone()", 0);
51     }
52 }
53 </script>