diff options
Diffstat (limited to 'chromium/net/data/websocket/websocket_worker_simple.js')
-rw-r--r-- | chromium/net/data/websocket/websocket_worker_simple.js | 46 |
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); + } +}; |