Index: LayoutTests/http/tests/websocket/workers/resources/close.js |
diff --git a/LayoutTests/http/tests/websocket/workers/resources/close.js b/LayoutTests/http/tests/websocket/workers/resources/close.js |
index 8d158ccb0c332264ec82eee2a603d6e499a6253c..f4e92d3f3327acc619685fb0a825750f9caa157a 100644 |
--- a/LayoutTests/http/tests/websocket/workers/resources/close.js |
+++ b/LayoutTests/http/tests/websocket/workers/resources/close.js |
@@ -1,218 +1,3 @@ |
-function postResult(result, actual, expected) |
-{ |
- var message = result ? "PASS" : "FAIL"; |
- message += ": worker: " + actual + " is "; |
- if (!result) |
- message += "not "; |
- message += expected; |
- postMessage(message); |
-} |
+importScripts("/js-test-resources/js-test.js", "../../resources/close-common.js", "../../resources/mac-dropped-wakeup-workaround.js"); |
-function testPassed(message) |
-{ |
- postMessage("PASS: " + message); |
-} |
- |
-function testFailed(message) |
-{ |
- postMessage("FAIL: " + message); |
-} |
- |
-function debug(message) |
-{ |
- postMessage(message); |
-} |
- |
-function shouldBe(actual, expected) |
-{ |
- var _result = eval(actual + " == " + expected); |
- postResult(_result, actual, expected); |
-} |
- |
-function shouldBeTrue(actual) |
-{ |
- shouldBe(actual, "true"); |
-} |
- |
-function shouldBeFalse(actual) |
-{ |
- shouldBe(actual, "false"); |
-} |
- |
-var exceptionName; |
-var exceptionProto; |
-var closeEvent; |
-var code; |
-var reason; |
-var result; |
-var invalidAccessErr = "InvalidAccessError"; |
-var syntaxErr = "SyntaxError"; |
-var normalClosure = 1000; |
-var abnormalClosure = 1006; |
-var url = "ws://127.0.0.1:8880/close"; |
-var ws; |
-var testId; |
- |
-var codeTestCodes = [ |
- 999, 1001, 2999, 5000, 65536 + 1000, 0x100000000 + 1000, 2999.9, NaN, "0", "100", 1/0, -1/0, 0/0, |
- 1000.0 |
-]; |
- |
-var reasonTestReasons = [ |
- "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234", // 124 Byte |
- "12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012\u00a9", // length is 123, but 124 Byte in UTF-8 |
- "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123", // 123 Byte |
-]; |
- |
-var reasonTestResults = [ |
- false, |
- false, |
- true, |
-]; |
- |
-function handleOpen() |
-{ |
- testFailed("handleOpen() was called."); |
-}; |
- |
-function handleError() |
-{ |
- testFailed("handleError() was called."); |
-}; |
- |
-function handleClose() |
-{ |
- testFailed("handleClose() was called."); |
-}; |
- |
-function handleMessage() |
-{ |
- testFailed("handleMessage() was called."); |
-}; |
- |
-function setDefaultHandlers(ws) |
-{ |
- ws.onopen = handleOpen; |
- ws.onerror = handleError; |
- ws.onclose = handleClose; |
- ws.onmessage = handleMessage; |
-} |
- |
-function runCodeTest() |
-{ |
- ws = new WebSocket(url); |
- setDefaultHandlers(ws); |
- for (var id = 0; id < codeTestCodes.length; id++) { |
- if (codeTestCodes[id] != normalClosure) { |
- debug("Invalid code test: " + id); |
- ws.onclose = handleClose; |
- } else { |
- ws.onclose = function (e) |
- { |
- debug("runCodeTest: onclose()."); |
- closeEvent = e; |
- shouldBe("closeEvent.code", "abnormalClosure"); |
- if (closeEvent.code == abnormalClosure) |
- runInvalidStringTest(); |
- }; |
- ws.onerror = function () |
- { |
- testPassed("onerror() was called."); |
- }; |
- } |
- try { |
- ws.close(codeTestCodes[id]); |
- } catch (e) { |
- debug("Code " + codeTestCodes[id] + " must cause " + invalidAccessErr + '.'); |
- exceptionName = e.name; |
- exceptionProto = Object.getPrototypeOf(e); |
- shouldBe("exceptionName", "invalidAccessErr"); |
- } |
- } |
-} |
- |
-function runInvalidStringTest() |
-{ |
- // FIXME: unpaired surrogates throw SyntaxError |
- debug("Skip invalid string test."); |
- runReasonTest(); |
-} |
- |
-function runReasonTest() |
-{ |
- ws = new WebSocket(url); |
- setDefaultHandlers(ws); |
- for (var id = 0; id < reasonTestReasons.length; id++) { |
- debug("Reason test: " + id); |
- if (!reasonTestResults[id]) { |
- debug(" with invalid reason: " + reasonTestReasons[id]); |
- ws.onclose = handleClose; |
- } else { |
- ws.onclose = function (e) |
- { |
- debug("runReasonTest: onclose()."); |
- closeEvent = e; |
- shouldBe("closeEvent.code", "abnormalClosure"); |
- if (closeEvent.code == abnormalClosure) |
- runCodeAndReasonTest(); |
- }; |
- ws.onerror = function () |
- { |
- testPassed("onerror() was called."); |
- }; |
- } |
- try { |
- ws.close(normalClosure, reasonTestReasons[id]); |
- } catch (e) { |
- debug("Reason " + reasonTestReasons[id] + " must cause " + syntaxErr + '.'); |
- result = reasonTestResults[id]; |
- exceptionName = e.name; |
- exceptionProto = Object.getPrototypeOf(e); |
- shouldBeFalse("result"); |
- shouldBe("exceptionName", "syntaxErr"); |
- } |
- } |
-} |
- |
-function runCodeAndReasonTest() |
-{ |
- var codes = [ |
- 1000, |
- 3000, |
- 4000, |
- 4999 |
- ]; |
- var reasons = [ |
- "OK, Bye!", |
- "3000", |
- "code is 4000", |
- "\u00a9 Google" |
- ]; |
- (function test (id) { |
- debug("Code and reason test: " + id); |
- ws = new WebSocket(url); |
- setDefaultHandlers(ws); |
- ws.onopen = function () |
- { |
- ws.close(codes[id], reasons[id]); |
- }; |
- ws.onclose = function (e) |
- { |
- closeEvent = e; |
- code = codes[id]; |
- reason = reasons[id]; |
- debug("Code and reason must be"); |
- debug(" code : " + code); |
- debug(" reason: " + reason); |
- shouldBeTrue("closeEvent.wasClean"); |
- shouldBe("closeEvent.code", "code"); |
- shouldBe("closeEvent.reason", "reason"); |
- if (++id != codes.length) |
- test(id); |
- else |
- postMessage("DONE"); |
- }; |
- })(0); |
-} |
- |
-runCodeTest(); |
+testClose(); |