| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="/js-test-resources/js-test.js"></script> |
| </head> |
| <body> |
| <div id="description"></div> |
| <div id="console"></div> |
| <script type="text/javascript"> |
| description("WebSocket: Send ArrayBufferViews."); |
| |
| window.jsTestIsAsync = true; |
| |
| function startsWith(target, prefix) |
| { |
| return target.indexOf(prefix) === 0; |
| } |
| |
| function createArrayBufferViewContainingHelloWorld() |
| { |
| var hello = "Hello, world!"; |
| var array = new Uint8Array(hello.length); |
| for (var i = 0; i < hello.length; ++i) |
| array[i] = hello.charCodeAt(i); |
| return array; |
| } |
| |
| function createEmptyArrayBufferView() |
| { |
| return new Uint8Array(0); |
| } |
| |
| function createArrayBufferViewContainingAllDistinctBytes() |
| { |
| // Return a slice of ArrayBuffer. |
| var buffer = new ArrayBuffer(1000); |
| var array = new Uint8Array(buffer, 123, 256); |
| for (var i = 0; i < 256; ++i) |
| array[i] = i; |
| return array; |
| } |
| |
| function createSharedArrayBufferView() |
| { |
| return new Uint8Array(new SharedArrayBuffer(16)); |
| } |
| |
| var url = "ws://127.0.0.1:8880/check-binary-messages"; |
| var ws = new WebSocket(url); |
| var closeEvent; |
| |
| ws.onopen = function() |
| { |
| ws.send(createArrayBufferViewContainingHelloWorld()); |
| ws.send(createEmptyArrayBufferView()); |
| ws.send(createArrayBufferViewContainingAllDistinctBytes()); |
| |
| if (window.SharedArrayBuffer) { |
| shouldThrow("ws.send(createSharedArrayBufferView())"); |
| } |
| }; |
| |
| ws.onmessage = function(event) |
| { |
| var message = event.data; |
| if (startsWith(message, "PASS")) |
| testPassed(message); |
| else |
| testFailed(message); |
| }; |
| |
| ws.onclose = function(event) |
| { |
| closeEvent = event; |
| shouldBeTrue("closeEvent.wasClean"); |
| finishJSTest(); |
| }; |
| |
| </script> |
| </body> |
| </html> |