| <!DOCTYPE html> |
| <script src="/js-test-resources/js-test.js"></script> |
| <script src="resources/get-request-header.js"></script> |
| <script> |
| description("Test WebSocket.extensions attribute."); |
| |
| window.jsTestIsAsync = true; |
| |
| var ws = new WebSocket(WS_ECHO_REQUEST_HEADERS_URL); |
| debug("Check the value before opening the connection:"); |
| shouldBeEqualToString("ws.extensions", ""); |
| |
| // extensions attribute is read-only. |
| debug("Check if the value is read only:"); |
| shouldBeEqualToString("ws.extensions = 'foo'; ws.extensions", ""); |
| |
| ws.onopen = function(event) |
| { |
| debug("Check the value after the connection is established:"); |
| shouldBeEqualToString("ws.extensions", "permessage-deflate"); |
| }; |
| |
| var extensions_requested; |
| ws.onmessage = function(event) |
| { |
| debug("Check the value of the Sec-WebSocket-Extensions header sent to the server:"); |
| extensions_requested = getRequestHeaderFromEvent(event, "sec-websocket-extensions"); |
| shouldBeEqualToString("extensions_requested", "permessage-deflate; client_max_window_bits"); |
| finishJSTest(); |
| }; |
| |
| </script> |