| OLD | NEW |
| (Empty) |
| 1 function createArrayBufferContainingHelloWorld() | |
| 2 { | |
| 3 var hello = "Hello, world!"; | |
| 4 var array = new Uint8Array(hello.length); | |
| 5 for (var i = 0; i < hello.length; ++i) | |
| 6 array[i] = hello.charCodeAt(i); | |
| 7 return array.buffer; | |
| 8 } | |
| 9 | |
| 10 function createEmptyArrayBuffer() | |
| 11 { | |
| 12 return new ArrayBuffer(0); | |
| 13 } | |
| 14 | |
| 15 function createArrayBufferContainingAllDistinctBytes() | |
| 16 { | |
| 17 var array = new Uint8Array(256); | |
| 18 for (var i = 0; i < 256; ++i) | |
| 19 array[i] = i; | |
| 20 return array.buffer; | |
| 21 } | |
| 22 | |
| 23 var ws = new WebSocket("ws://127.0.0.1:8880/workers/resources/binary-frames"); | |
| 24 if (ws.binaryType === "blob") | |
| 25 postMessage("PASS: ws.binaryType is \"blob\""); | |
| 26 else | |
| 27 postMessage("FAIL: ws.binaryType should be \"blob\" but was \"" + ws.binaryT
ype + "\""); | |
| 28 | |
| 29 var receivedMessages = []; | |
| 30 var expectedValues = [createArrayBufferContainingHelloWorld(), createEmptyArrayB
uffer(), createArrayBufferContainingAllDistinctBytes()]; | |
| 31 | |
| 32 ws.onmessage = function(event) | |
| 33 { | |
| 34 receivedMessages.push(event.data); | |
| 35 }; | |
| 36 | |
| 37 ws.onclose = function(closeEvent) | |
| 38 { | |
| 39 if (receivedMessages.length === expectedValues.length) | |
| 40 postMessage("PASS: receivedMessages.length is " + expectedValues.length)
; | |
| 41 else | |
| 42 postMessage("FAIL: receivedMessages.length should be " + expectedValues.
length + " but was " + receivedMessages.length); | |
| 43 check(0); | |
| 44 }; | |
| 45 | |
| 46 function check(index) | |
| 47 { | |
| 48 if (index == expectedValues.length) { | |
| 49 postMessage("DONE"); | |
| 50 return; | |
| 51 } | |
| 52 | |
| 53 postMessage("INFO: Checking message #" + index + "."); | |
| 54 var responseType = '' + receivedMessages[index]; | |
| 55 if (responseType === "[object Blob]") | |
| 56 postMessage("PASS: responseType is \"[object Blob]\""); | |
| 57 else | |
| 58 postMessage("FAIL: responseType should be \"[object Blob]\" but was \""
+ responseType + "\""); | |
| 59 var reader = new FileReader(); | |
| 60 reader.readAsArrayBuffer(receivedMessages[index]); | |
| 61 reader.onload = function(event) | |
| 62 { | |
| 63 checkArrayBuffer(index, reader.result, expectedValues[index]); | |
| 64 check(index + 1); | |
| 65 }; | |
| 66 reader.onerror = function(event) | |
| 67 { | |
| 68 postMessage("FAIL: Failed to read blob: error code = " + reader.error.co
de); | |
| 69 check(index + 1); | |
| 70 }; | |
| 71 } | |
| 72 | |
| 73 function checkArrayBuffer(testIndex, actual, expected) | |
| 74 { | |
| 75 var actualArray = new Uint8Array(actual); | |
| 76 var expectedArray = new Uint8Array(expected); | |
| 77 if (actualArray.length === expectedArray.length) | |
| 78 postMessage("PASS: actualArray.length is " + expectedArray.length); | |
| 79 else | |
| 80 postMessage("FAIL: actualArray.length should be " + expectedArray.length
+ " but was " + actualArray.length); | |
| 81 // Print only the first mismatched byte in order not to flood console. | |
| 82 for (var i = 0; i < expectedArray.length; ++i) { | |
| 83 if (actualArray[i] != expectedArray[i]) { | |
| 84 postMessage("FAIL: Value mismatch: actualArray[" + i + "] = " + actu
alArray[i] + ", expectedArray[" + i + "] = " + expectedArray[i]); | |
| 85 return; | |
| 86 } | |
| 87 } | |
| 88 postMessage("PASS: Passed: Message #" + testIndex + "."); | |
| 89 } | |
| OLD | NEW |