UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

75 lines (62 loc) 2 kB
<!DOCTYPE html> <html> <!-- Copyright 2011 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <!-- --> <head> <title> Closure Unit Tests - goog.messaging.PortNetwork </title> <script src="../base.js"></script> <script> goog.require('goog.events.EventTarget'); goog.require('goog.messaging.PortChannel'); goog.require('goog.messaging.PortOperator'); goog.require('goog.testing.AsyncTestCase'); goog.require('goog.testing.MockControl'); goog.require('goog.testing.async.MockControl'); goog.require('goog.testing.messaging.MockMessageEvent'); goog.require('goog.testing.jsunit'); </script> </head> <body> <iframe style="display: none;" name="inner" id="inner" src="testdata/portnetwork_inner.html"></iframe> <script> var asyncTestCase = goog.testing.AsyncTestCase.createAndInstall(); // Use a relatively long timeout because workers can take a while to start up. asyncTestCase.stepTimeout = 5 * 1000; var timer; function setUp() { timer = new goog.Timer(50); } function tearDown() { goog.dispose(timer); } function testRouteMessageThroughWorkers() { if (!('MessageChannel' in goog.global)) { return; } var master = new goog.messaging.PortOperator('main'); master.addPort('worker1', new goog.messaging.PortChannel( new Worker('testdata/portnetwork_worker1.js'))); master.addPort('worker2', new goog.messaging.PortChannel( new Worker('testdata/portnetwork_worker2.js'))); master.addPort( 'frame', goog.messaging.PortChannel.forEmbeddedWindow( window.frames['inner'], '*', timer)); master.dial('worker1').registerService('result', function(msg) { assertArrayEquals(['main', 'worker2', 'frame', 'worker1'], msg); master.dispose(); asyncTestCase.continueTesting(); }, true); master.dial('worker2').send('sendToFrame', ['main']); asyncTestCase.waitForAsync('routing messages'); } </script> </body> </html>