| OLD | NEW |
| 1 CONSOLE WARNING: WebSocket connection to 'ws://127.0.0.1:8880/close' failed: Web
Socket is closed before the connection is established. | 1 CONSOLE WARNING: WebSocket connection to 'ws://127.0.0.1:8880/close' failed: Web
Socket is closed before the connection is established. |
| 2 CONSOLE WARNING: WebSocket connection to 'ws://127.0.0.1:8880/close' failed: Web
Socket is closed before the connection is established. | 2 CONSOLE WARNING: WebSocket connection to 'ws://127.0.0.1:8880/close' failed: Web
Socket is closed before the connection is established. |
| 3 Verify WebSocket::close behaviors. | 3 Verify WebSocket::close behaviors. |
| 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 badCodesTest: started |
| 9 badCodesTest: 999 |
| 9 PASS exceptionProto === DOMException.prototype is true | 10 PASS exceptionProto === DOMException.prototype is true |
| 10 PASS exceptionName is invalidAccessErr | 11 PASS exceptionName is "InvalidAccessError" |
| 11 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 999 is neither." | 12 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 999 is neither." |
| 12 Invalid code test: 1 | 13 badCodesTest: 1001 |
| 13 Code 1001 must cause InvalidAccessError. | |
| 14 PASS exceptionProto === DOMException.prototype is true | 14 PASS exceptionProto === DOMException.prototype is true |
| 15 PASS exceptionName is invalidAccessErr | 15 PASS exceptionName is "InvalidAccessError" |
| 16 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 1001 is neither." | 16 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 1001 is neither." |
| 17 Invalid code test: 2 | 17 badCodesTest: 2999 |
| 18 Code 2999 must cause InvalidAccessError. | |
| 19 PASS exceptionProto === DOMException.prototype is true | 18 PASS exceptionProto === DOMException.prototype is true |
| 20 PASS exceptionName is invalidAccessErr | 19 PASS exceptionName is "InvalidAccessError" |
| 21 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 2999 is neither." | 20 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 2999 is neither." |
| 22 Invalid code test: 3 | 21 badCodesTest: 5000 |
| 23 Code 5000 must cause InvalidAccessError. | |
| 24 PASS exceptionProto === DOMException.prototype is true | 22 PASS exceptionProto === DOMException.prototype is true |
| 25 PASS exceptionName is invalidAccessErr | 23 PASS exceptionName is "InvalidAccessError" |
| 26 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 5000 is neither." | 24 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 5000 is neither." |
| 27 Invalid code test: 4 | 25 badCodesTest: 66536 |
| 28 Code 66536 must cause InvalidAccessError. | |
| 29 PASS exceptionProto === DOMException.prototype is true | 26 PASS exceptionProto === DOMException.prototype is true |
| 30 PASS exceptionName is invalidAccessErr | 27 PASS exceptionName is "InvalidAccessError" |
| 31 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 65535 is neither." | 28 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 65535 is neither." |
| 32 Invalid code test: 5 | 29 badCodesTest: 4294968296 |
| 33 Code 4294968296 must cause InvalidAccessError. | |
| 34 PASS exceptionProto === DOMException.prototype is true | 30 PASS exceptionProto === DOMException.prototype is true |
| 35 PASS exceptionName is invalidAccessErr | 31 PASS exceptionName is "InvalidAccessError" |
| 36 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 65535 is neither." | 32 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 65535 is neither." |
| 37 Invalid code test: 6 | 33 badCodesTest: 2999.9 |
| 38 Code 2999.9 must cause InvalidAccessError. | |
| 39 PASS exceptionProto === DOMException.prototype is true | 34 PASS exceptionProto === DOMException.prototype is true |
| 40 PASS exceptionName is invalidAccessErr | 35 PASS exceptionName is "InvalidAccessError" |
| 41 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 2999 is neither." | 36 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 2999 is neither." |
| 42 Invalid code test: 7 | 37 badCodesTest: NaN |
| 43 Code NaN must cause InvalidAccessError. | |
| 44 PASS exceptionProto === DOMException.prototype is true | 38 PASS exceptionProto === DOMException.prototype is true |
| 45 PASS exceptionName is invalidAccessErr | 39 PASS exceptionName is "InvalidAccessError" |
| 46 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 0 is neither." | 40 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 0 is neither." |
| 47 Invalid code test: 8 | 41 badCodesTest: 0 |
| 48 Code 0 must cause InvalidAccessError. | |
| 49 PASS exceptionProto === DOMException.prototype is true | 42 PASS exceptionProto === DOMException.prototype is true |
| 50 PASS exceptionName is invalidAccessErr | 43 PASS exceptionName is "InvalidAccessError" |
| 51 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 0 is neither." | 44 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 0 is neither." |
| 52 Invalid code test: 9 | 45 badCodesTest: 100 |
| 53 Code 100 must cause InvalidAccessError. | |
| 54 PASS exceptionProto === DOMException.prototype is true | 46 PASS exceptionProto === DOMException.prototype is true |
| 55 PASS exceptionName is invalidAccessErr | 47 PASS exceptionName is "InvalidAccessError" |
| 56 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 100 is neither." | 48 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 100 is neither." |
| 57 Invalid code test: 10 | 49 badCodesTest: Infinity |
| 58 Code Infinity must cause InvalidAccessError. | |
| 59 PASS exceptionProto === DOMException.prototype is true | 50 PASS exceptionProto === DOMException.prototype is true |
| 60 PASS exceptionName is invalidAccessErr | 51 PASS exceptionName is "InvalidAccessError" |
| 61 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 65535 is neither." | 52 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 65535 is neither." |
| 62 Invalid code test: 11 | 53 badCodesTest: -Infinity |
| 63 Code -Infinity must cause InvalidAccessError. | |
| 64 PASS exceptionProto === DOMException.prototype is true | 54 PASS exceptionProto === DOMException.prototype is true |
| 65 PASS exceptionName is invalidAccessErr | 55 PASS exceptionName is "InvalidAccessError" |
| 66 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 0 is neither." | 56 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 0 is neither." |
| 67 Invalid code test: 12 | 57 badCodesTest: NaN |
| 68 Code NaN must cause InvalidAccessError. | |
| 69 PASS exceptionProto === DOMException.prototype is true | 58 PASS exceptionProto === DOMException.prototype is true |
| 70 PASS exceptionName is invalidAccessErr | 59 PASS exceptionName is "InvalidAccessError" |
| 71 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 0 is neither." | 60 PASS exceptionMessage is "Failed to execute 'close' on 'WebSocket': The code mus
t be either 1000, or between 3000 and 4999. 0 is neither." |
| 61 goodCodeTest: started |
| 72 PASS onerror was called. | 62 PASS onerror was called. |
| 73 runCodeTest: onclose(). | 63 PASS closeEvent.code is 1006 |
| 74 PASS closeEvent.code is abnormalClosure | 64 invalidUnicodeReasonTest: started |
| 75 Skip invalid string test. | 65 PASS closeEvent.wasClean is true |
| 76 Reason test: 0 | 66 PASS closeEvent.reason is "�" |
| 77 with invalid reason: 123456789012345678901234567890123456789012345678901234567
8901234567890123456789012345678901234567890123456789012345678901234 | 67 badReasonTest: started |
| 78 Reason 1234567890123456789012345678901234567890123456789012345678901234567890123
456789012345678901234567890123456789012345678901234 must cause SyntaxError. | 68 badReasonTest: 12345678901234567890123456789012345678901234567890123456789012345
67890123456789012345678901234567890123456789012345678901234 |
| 79 PASS result is false | |
| 80 PASS exceptionProto === DOMException.prototype is true | 69 PASS exceptionProto === DOMException.prototype is true |
| 81 PASS exceptionName is syntaxErr | 70 PASS exceptionName is "SyntaxError" |
| 82 Reason test: 1 | 71 badReasonTest: 12345678901234567890123456789012345678901234567890123456789012345
678901234567890123456789012345678901234567890123456789012© |
| 83 with invalid reason: 123456789012345678901234567890123456789012345678901234567
89012345678901234567890123456789012345678901234567890123456789012© | |
| 84 Reason 1234567890123456789012345678901234567890123456789012345678901234567890123
4567890123456789012345678901234567890123456789012© must cause SyntaxError. | |
| 85 PASS result is false | |
| 86 PASS exceptionProto === DOMException.prototype is true | 72 PASS exceptionProto === DOMException.prototype is true |
| 87 PASS exceptionName is syntaxErr | 73 PASS exceptionName is "SyntaxError" |
| 88 Reason test: 2 | 74 goodReasonTest: started |
| 89 PASS onerror was called. | 75 PASS onerror was called. |
| 90 runReasonTest: onclose(). | 76 PASS closeEvent.code is 1006 |
| 91 PASS closeEvent.code is abnormalClosure | 77 codeAndReasonTest: started |
| 92 Code and reason test: 0 | 78 codeAndReasonTest: 1000, 'OK, Bye!' |
| 93 Code and reason must be | |
| 94 code : 1000 | |
| 95 reason: OK, Bye! | |
| 96 PASS closeEvent.wasClean is true | 79 PASS closeEvent.wasClean is true |
| 97 PASS closeEvent.code is code | 80 PASS closeEvent.code is 1000 |
| 98 PASS closeEvent.reason is reason | 81 PASS closeEvent.reason is "OK, Bye!" |
| 99 Code and reason test: 1 | 82 codeAndReasonTest: 3000, '3000' |
| 100 Code and reason must be | |
| 101 code : 3000 | |
| 102 reason: 3000 | |
| 103 PASS closeEvent.wasClean is true | 83 PASS closeEvent.wasClean is true |
| 104 PASS closeEvent.code is code | 84 PASS closeEvent.code is 3000 |
| 105 PASS closeEvent.reason is reason | 85 PASS closeEvent.reason is "3000" |
| 106 Code and reason test: 2 | 86 codeAndReasonTest: 4000, 'code is 4000' |
| 107 Code and reason must be | |
| 108 code : 4000 | |
| 109 reason: code is 4000 | |
| 110 PASS closeEvent.wasClean is true | 87 PASS closeEvent.wasClean is true |
| 111 PASS closeEvent.code is code | 88 PASS closeEvent.code is 4000 |
| 112 PASS closeEvent.reason is reason | 89 PASS closeEvent.reason is "code is 4000" |
| 113 Code and reason test: 3 | 90 codeAndReasonTest: 4999, '© Google' |
| 114 Code and reason must be | |
| 115 code : 4999 | |
| 116 reason: © Google | |
| 117 PASS closeEvent.wasClean is true | 91 PASS closeEvent.wasClean is true |
| 118 PASS closeEvent.code is code | 92 PASS closeEvent.code is 4999 |
| 119 PASS closeEvent.reason is reason | 93 PASS closeEvent.reason is "© Google" |
| 120 PASS successfullyParsed is true | 94 PASS successfullyParsed is true |
| 121 | 95 |
| 122 TEST COMPLETE | 96 TEST COMPLETE |
| 123 | 97 |
| OLD | NEW |