Index: net/data/websocket/websocket_worker_simple.js |
diff --git a/net/data/websocket/websocket_worker_simple.js b/net/data/websocket/websocket_worker_simple.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..37e3be8b80d59db2bd9e80db88437c5cc72e1849 |
--- /dev/null |
+++ b/net/data/websocket/websocket_worker_simple.js |
@@ -0,0 +1,46 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+if (!self.postMessage) { |
+ // This is a shared worker - mimic dedicated worker APIs |
+ onconnect = function(event) { |
+ event.ports[0].onmessage = function(e) { |
+ self.postMessage = function (msg) { |
+ event.ports[0].postMessage(msg); |
+ }; |
+ runTests(e.data); |
+ }; |
+ }; |
+} else { |
+ runTests(event.data); |
+} |
+ |
+// This test is compatible with shared-worker-simple.html layout test. |
+runTests = function (url) { |
+ var ws; |
+ var greeting = "hello"; |
+ try { |
+ ws = new WebSocket(url); |
+ ws.onopen = function() { |
+ ws.send(greeting); |
+ }; |
+ ws.onmessage = function(e) { |
+ // Receive echoed "hello". |
+ if (e.data != greeting) { |
+ postMessage("FAIL: received data is wrong: " + e.data); |
+ } else { |
+ ws.close(); |
+ } |
+ }; |
+ ws.onclose = function(e) { |
+ if (!e.wasClean) { |
+ postMessage("FAIL: close is not clean"); |
+ } else { |
+ postMessage("DONE"); |
+ } |
+ }; |
+ } catch (e) { |
+ postMessage("FAIL: worker: Unexpected exception: " + e); |
+ } |
+}; |