| OLD | NEW |
| 1 CONSOLE WARNING: line 124: WebSocket connection to 'ws://127.0.0.1:8880/close' f
ailed: WebSocket is closed before the connection is established. | 1 CONSOLE WARNING: line 100: WebSocket connection to 'ws://127.0.0.1:8880/close' f
ailed: WebSocket is closed before the connection is established. |
| 2 CONSOLE WARNING: line 165: WebSocket connection to 'ws://127.0.0.1:8880/close' f
ailed: WebSocket is closed before the connection is established. | 2 CONSOLE WARNING: line 169: WebSocket connection to 'ws://127.0.0.1:8880/close' f
ailed: WebSocket is closed before the connection is established. |
| 3 Verify WebSocket::close behaviors in Worker. | 3 Verify WebSocket::close behaviors in Worker. |
| 4 | 4 |
| 5 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
". | 5 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE
". |
| 6 | 6 |
| 7 Invalid code test: 0 | 7 |
| 8 Code 999 must cause InvalidAccessError. | 8 Starting worker: resources/close.js |
| 9 PASS PASS: worker: exceptionName is invalidAccessErr | 9 [Worker] badCodesTest: started |
| 10 Invalid code test: 1 | 10 [Worker] badCodesTest: 999 |
| 11 Code 1001 must cause InvalidAccessError. | 11 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 12 PASS PASS: worker: exceptionName is invalidAccessErr | 12 PASS [Worker] exceptionName is "InvalidAccessError" |
| 13 Invalid code test: 2 | 13 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 999 is neither." |
| 14 Code 2999 must cause InvalidAccessError. | 14 [Worker] badCodesTest: 1001 |
| 15 PASS PASS: worker: exceptionName is invalidAccessErr | 15 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 16 Invalid code test: 3 | 16 PASS [Worker] exceptionName is "InvalidAccessError" |
| 17 Code 5000 must cause InvalidAccessError. | 17 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 1001 is neither." |
| 18 PASS PASS: worker: exceptionName is invalidAccessErr | 18 [Worker] badCodesTest: 2999 |
| 19 Invalid code test: 4 | 19 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 20 Code 66536 must cause InvalidAccessError. | 20 PASS [Worker] exceptionName is "InvalidAccessError" |
| 21 PASS PASS: worker: exceptionName is invalidAccessErr | 21 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 2999 is neither." |
| 22 Invalid code test: 5 | 22 [Worker] badCodesTest: 5000 |
| 23 Code 4294968296 must cause InvalidAccessError. | 23 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 24 PASS PASS: worker: exceptionName is invalidAccessErr | 24 PASS [Worker] exceptionName is "InvalidAccessError" |
| 25 Invalid code test: 6 | 25 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 5000 is neither." |
| 26 Code 2999.9 must cause InvalidAccessError. | 26 [Worker] badCodesTest: 66536 |
| 27 PASS PASS: worker: exceptionName is invalidAccessErr | 27 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 28 Invalid code test: 7 | 28 PASS [Worker] exceptionName is "InvalidAccessError" |
| 29 Code NaN must cause InvalidAccessError. | 29 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 65535 is neither." |
| 30 PASS PASS: worker: exceptionName is invalidAccessErr | 30 [Worker] badCodesTest: 4294968296 |
| 31 Invalid code test: 8 | 31 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 32 Code 0 must cause InvalidAccessError. | 32 PASS [Worker] exceptionName is "InvalidAccessError" |
| 33 PASS PASS: worker: exceptionName is invalidAccessErr | 33 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 65535 is neither." |
| 34 Invalid code test: 9 | 34 [Worker] badCodesTest: 2999.9 |
| 35 Code 100 must cause InvalidAccessError. | 35 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 36 PASS PASS: worker: exceptionName is invalidAccessErr | 36 PASS [Worker] exceptionName is "InvalidAccessError" |
| 37 Invalid code test: 10 | 37 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 2999 is neither." |
| 38 Code Infinity must cause InvalidAccessError. | 38 [Worker] badCodesTest: NaN |
| 39 PASS PASS: worker: exceptionName is invalidAccessErr | 39 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 40 Invalid code test: 11 | 40 PASS [Worker] exceptionName is "InvalidAccessError" |
| 41 Code -Infinity must cause InvalidAccessError. | 41 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 0 is neither." |
| 42 PASS PASS: worker: exceptionName is invalidAccessErr | 42 [Worker] badCodesTest: 0 |
| 43 Invalid code test: 12 | 43 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 44 Code NaN must cause InvalidAccessError. | 44 PASS [Worker] exceptionName is "InvalidAccessError" |
| 45 PASS PASS: worker: exceptionName is invalidAccessErr | 45 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 0 is neither." |
| 46 PASS PASS: onerror() was called. | 46 [Worker] badCodesTest: 100 |
| 47 runCodeTest: onclose(). | 47 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 48 PASS PASS: worker: closeEvent.code is abnormalClosure | 48 PASS [Worker] exceptionName is "InvalidAccessError" |
| 49 Skip invalid string test. | 49 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 100 is neither." |
| 50 Reason test: 0 | 50 [Worker] badCodesTest: Infinity |
| 51 with invalid reason: 123456789012345678901234567890123456789012345678901234567
8901234567890123456789012345678901234567890123456789012345678901234 | 51 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 52 Reason 1234567890123456789012345678901234567890123456789012345678901234567890123
456789012345678901234567890123456789012345678901234 must cause SyntaxError. | 52 PASS [Worker] exceptionName is "InvalidAccessError" |
| 53 PASS PASS: worker: result is false | 53 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 65535 is neither." |
| 54 PASS PASS: worker: exceptionName is syntaxErr | 54 [Worker] badCodesTest: -Infinity |
| 55 Reason test: 1 | 55 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 56 with invalid reason: 123456789012345678901234567890123456789012345678901234567
89012345678901234567890123456789012345678901234567890123456789012© | 56 PASS [Worker] exceptionName is "InvalidAccessError" |
| 57 Reason 1234567890123456789012345678901234567890123456789012345678901234567890123
4567890123456789012345678901234567890123456789012© must cause SyntaxError. | 57 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 0 is neither." |
| 58 PASS PASS: worker: result is false | 58 [Worker] badCodesTest: NaN |
| 59 PASS PASS: worker: exceptionName is syntaxErr | 59 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 60 Reason test: 2 | 60 PASS [Worker] exceptionName is "InvalidAccessError" |
| 61 PASS PASS: onerror() was called. | 61 PASS [Worker] exceptionMessage is "Failed to execute 'close' on 'WebSocket': The
code must be either 1000, or between 3000 and 4999. 0 is neither." |
| 62 runReasonTest: onclose(). | 62 [Worker] goodCodeTest: started |
| 63 PASS PASS: worker: closeEvent.code is abnormalClosure | 63 PASS [Worker] onerror was called. |
| 64 Code and reason test: 0 | 64 PASS [Worker] closeEvent.code is 1006 |
| 65 Code and reason must be | 65 [Worker] invalidUnicodeReasonTest: started |
| 66 code : 1000 | 66 PASS [Worker] closeEvent.wasClean is true |
| 67 reason: OK, Bye! | 67 PASS [Worker] closeEvent.reason is "�" |
| 68 PASS PASS: worker: closeEvent.wasClean is true | 68 [Worker] badReasonTest: started |
| 69 PASS PASS: worker: closeEvent.code is code | 69 [Worker] badReasonTest: 12345678901234567890123456789012345678901234567890123456
78901234567890123456789012345678901234567890123456789012345678901234 |
| 70 PASS PASS: worker: closeEvent.reason is reason | 70 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 71 Code and reason test: 1 | 71 PASS [Worker] exceptionName is "SyntaxError" |
| 72 Code and reason must be | 72 [Worker] badReasonTest: 12345678901234567890123456789012345678901234567890123456
789012345678901234567890123456789012345678901234567890123456789012© |
| 73 code : 3000 | 73 PASS [Worker] exceptionProto === DOMException.prototype is true |
| 74 reason: 3000 | 74 PASS [Worker] exceptionName is "SyntaxError" |
| 75 PASS PASS: worker: closeEvent.wasClean is true | 75 [Worker] goodReasonTest: started |
| 76 PASS PASS: worker: closeEvent.code is code | 76 PASS [Worker] onerror was called. |
| 77 PASS PASS: worker: closeEvent.reason is reason | 77 PASS [Worker] closeEvent.code is 1006 |
| 78 Code and reason test: 2 | 78 [Worker] codeAndReasonTest: started |
| 79 Code and reason must be | 79 [Worker] codeAndReasonTest: 1000, 'OK, Bye!' |
| 80 code : 4000 | 80 PASS [Worker] closeEvent.wasClean is true |
| 81 reason: code is 4000 | 81 PASS [Worker] closeEvent.code is 1000 |
| 82 PASS PASS: worker: closeEvent.wasClean is true | 82 PASS [Worker] closeEvent.reason is "OK, Bye!" |
| 83 PASS PASS: worker: closeEvent.code is code | 83 [Worker] codeAndReasonTest: 3000, '3000' |
| 84 PASS PASS: worker: closeEvent.reason is reason | 84 PASS [Worker] closeEvent.wasClean is true |
| 85 Code and reason test: 3 | 85 PASS [Worker] closeEvent.code is 3000 |
| 86 Code and reason must be | 86 PASS [Worker] closeEvent.reason is "3000" |
| 87 code : 4999 | 87 [Worker] codeAndReasonTest: 4000, 'code is 4000' |
| 88 reason: © Google | 88 PASS [Worker] closeEvent.wasClean is true |
| 89 PASS PASS: worker: closeEvent.wasClean is true | 89 PASS [Worker] closeEvent.code is 4000 |
| 90 PASS PASS: worker: closeEvent.code is code | 90 PASS [Worker] closeEvent.reason is "code is 4000" |
| 91 PASS PASS: worker: closeEvent.reason is reason | 91 [Worker] codeAndReasonTest: 4999, '© Google' |
| 92 DONE | 92 PASS [Worker] closeEvent.wasClean is true |
| 93 PASS [Worker] closeEvent.code is 4999 |
| 94 PASS [Worker] closeEvent.reason is "© Google" |
| 93 PASS successfullyParsed is true | 95 PASS successfullyParsed is true |
| 94 | 96 |
| 95 TEST COMPLETE | 97 TEST COMPLETE |
| 96 | 98 |
| OLD | NEW |