| 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();
|
|
|