Home | History | Annotate | Download | only in websocket
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 if (!self.postMessage) {
      6   // This is a shared worker - mimic dedicated worker APIs
      7   onconnect = function(event) {
      8     event.ports[0].onmessage = function(e) {
      9       self.postMessage = function (msg) {
     10         event.ports[0].postMessage(msg);
     11       };
     12       runTests(e.data);
     13     };
     14   };
     15 } else {
     16   runTests(event.data);
     17 }
     18 
     19 // This test is compatible with shared-worker-simple.html layout test.
     20 runTests = function (url) {
     21   var ws;
     22   var greeting = "hello";
     23   try {
     24     ws = new WebSocket(url);
     25     ws.onopen = function() {
     26       ws.send(greeting);
     27     };
     28     ws.onmessage = function(e) {
     29       // Receive echoed "hello".
     30       if (e.data != greeting) {
     31         postMessage("FAIL: received data is wrong: " + e.data);
     32       } else {
     33         ws.close();
     34       }
     35     };
     36     ws.onclose = function(e) {
     37       if (!e.wasClean) {
     38         postMessage("FAIL: close is not clean");
     39       } else {
     40         postMessage("DONE");
     41       }
     42     };
     43   } catch (e) {
     44     postMessage("FAIL: worker: Unexpected exception: " + e);
     45   }
     46 };
     47