summaryrefslogtreecommitdiff
path: root/chromium/net/data/websocket/websocket_worker_simple.js
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/data/websocket/websocket_worker_simple.js')
-rw-r--r--chromium/net/data/websocket/websocket_worker_simple.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/chromium/net/data/websocket/websocket_worker_simple.js b/chromium/net/data/websocket/websocket_worker_simple.js
new file mode 100644
index 00000000000..37e3be8b80d
--- /dev/null
+++ b/chromium/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);
+ }
+};