Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(539)

Unified Diff: LayoutTests/http/tests/websocket/close.html

Issue 913273004: [OBSOLETE] De-flake the websocket/close.html layout test (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Hack around Mac timeouts. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | LayoutTests/http/tests/websocket/close-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/http/tests/websocket/close.html
diff --git a/LayoutTests/http/tests/websocket/close.html b/LayoutTests/http/tests/websocket/close.html
index c5836247094b27f8463c9309a283cbd49bec2abe..50ca91be32340768bda8b171c6989820147d436d 100644
--- a/LayoutTests/http/tests/websocket/close.html
+++ b/LayoutTests/http/tests/websocket/close.html
@@ -1,207 +1,12 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
+<!DOCTYPE HTML>
<script src="/js-test-resources/js-test.js"></script>
-</head>
-<body>
-<div id="description"></div>
-<div id="console"></div>
-<script type="text/javascript">
+<script src="resources/close-common.js"></script>
+<script src="resources/mac-dropped-wakeup-workaround.js"></script>
+<script>
description("Verify WebSocket::close behaviors.");
window.jsTestIsAsync = true;
-var exceptionName;
-var exceptionMessage;
-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;
- exceptionMessage = e.message;
- exceptionProto = Object.getPrototypeOf(e);
- shouldBeTrue("exceptionProto === DOMException.prototype");
- shouldBe("exceptionName", "invalidAccessErr");
- var expectedCode = codeTestCodes[id];
- if (!expectedCode)
- expectedCode = 0;
- else if (expectedCode > 65535)
- expectedCode = 65535;
- else if (expectedCode < 0)
- expectedCode = 0;
- expectedCode = Math.floor(expectedCode);
- shouldBe("exceptionMessage", '"Failed to execute \'close\' on \'WebSocket\': The code must be either 1000, or between 3000 and 4999. ' + expectedCode + ' is neither."');
- }
- }
-}
-
-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");
- shouldBeTrue("exceptionProto === DOMException.prototype");
- 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
- finishJSTest();
- };
- })(0);
-}
-
-runCodeTest();
+testClose();
</script>
-</body>
-</html>
« no previous file with comments | « no previous file | LayoutTests/http/tests/websocket/close-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698