4 <script src=
"/js-test-resources/js-test.js"></script>
7 <div id=
"description"></div>
8 <div id=
"console"></div>
10 description("Test WebSocket permessage-deflate extension.");
12 window
.jsTestIsAsync
= true;
19 "client_max_window_bits=8",
20 "client_no_context_takeover",
21 "client_max_window_bits=8&client_no_context_takeover"
24 // The first message consists of a lot of 'b' and a few 'a' at the head and
25 // the tail, while the second one consists of 'a'.
26 var firstMessage
= '';
27 var secondMessage
= '';
28 for (var i
= 0; i
< 16; ++i
) {
32 for (var i
= 0; i
< 1024; ++i
) {
36 for (var i
= 0; i
< 16; ++i
) {
41 function doTest(queryIndex
)
43 var query
= queries
[queryIndex
];
44 debug("Testing query: \"" + query
+ "\"");
46 var url
= "ws://localhost:8880/permessage-deflate?" + query
;
47 ws
= new WebSocket(url
);
50 ws
.onopen = function(event
)
52 shouldBeTrue("ws.extensions.search('permessage-deflate') != -1");
53 parameters
= query
.split('&');
54 for (var i
= 0; i
< parameters
.length
; ++i
)
55 shouldBeTrue("ws.extensions.search('" + parameters
[i
] + "') != -1");
56 ws
.send(firstMessage
);
59 ws
.onmessage = function(event
)
61 if (messageIndex
=== 0) {
62 shouldBe("event.data", "firstMessage");
64 ws
.send(secondMessage
);
66 shouldBe("event.data", "secondMessage");
71 ws
.onclose = function(event
)
73 debug("onclose() was called.");
75 shouldBeTrue("closeEvent.wasClean");
76 if (queryIndex
=== queries
.length
- 1)
79 doTest(queryIndex
+ 1);