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

Unified Diff: LayoutTests/http/tests/websocket/tests/hybi/workers/resources/connect-error-by-no-websocket-server.js

Issue 14071008: WebSocket object should fire error event when WebSocket server can't be connected. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink@master
Patch Set: Add new layouttests into TestExceptions because it depends on chromium side patch Created 7 years, 8 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
Index: LayoutTests/http/tests/websocket/tests/hybi/workers/resources/connect-error-by-no-websocket-server.js
diff --git a/LayoutTests/http/tests/websocket/tests/hybi/workers/resources/connect-error-by-no-websocket-server.js b/LayoutTests/http/tests/websocket/tests/hybi/workers/resources/connect-error-by-no-websocket-server.js
new file mode 100644
index 0000000000000000000000000000000000000000..f39bb067130ef8f1fb6b0d7f0737b939eaee33a0
--- /dev/null
+++ b/LayoutTests/http/tests/websocket/tests/hybi/workers/resources/connect-error-by-no-websocket-server.js
@@ -0,0 +1,97 @@
+function postResult(result, actual, expected)
+{
+ var message = result ? "PASS" : "FAIL";
+ message += ": worker: " + actual + " is ";
+ if (!result)
+ message += "not ";
+ message += expected;
+ postMessage(message);
+}
+
+function testPassed(message)
+{
+ postMessage("PASS: " + message);
+}
+
+function testFailed(message)
+{
+ postMessage("FAIL: " + message);
+}
+
+function debug(message)
+{
+ postMessage(message);
+}
+
+function endTest()
+{
+ clearTimeout(timeoutID);
+ postMessage("DONE");
+}
+
+var url = "ws://localhost:8888"; // Here it should have no websocket server to listen.
+
+function doTest(index)
+{
+ debug("test" + index + " Start");
+
+ var ws = new WebSocket(url);
+
+ ws.onopen = function()
+ {
+ testFailed("Connected");
+ endTest();
+ };
+
+ ws.onmessage = function(messageEvent)
+ {
+ testFailed("Received Message");
+ ws.close();
+ endTest();
+ };
+
+ if (index == 0) {
+ ws.onclose = function()
+ {
+ testPassed("onclose was called");
+ doTest(index + 1);
+ };
+
+ ws.onerror = function()
+ {
+ testPassed("onerror was called");
+ };
+ } else if (index == 1) {
+ ws.onclose = function()
+ {
+ testPassed("onclose was called");
+ ws.close();
+ doTest(index + 1);
+ };
+ ws.onerror = function()
+ {
+ testPassed("onerror was called");
+ };
+ } else {
+ ws.onclose = function()
+ {
+ testPassed("onclose was called");
+ endTest();
+ };
+ ws.onerror = function()
+ {
+ testPassed("onerror was called");
+ ws.close();
+ };
+ }
+}
+
+function timeOutCallback()
+{
+ debug("Timed out...");
+ endTest();
+}
+
+var timeoutID = setTimeout(timeOutCallback, 3000);
+
+doTest(0);

Powered by Google App Engine
This is Rietveld 408576698