UNPKG

sku-pg

Version:

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

113 lines (100 loc) 3.3 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.PortOperator </title> <script src="../base.js"></script> <script> goog.require('goog.events.EventTarget'); goog.require('goog.messaging.PortChannel'); goog.require('goog.messaging.PortNetwork'); goog.require('goog.messaging.PortOperator'); goog.require('goog.testing.MockControl'); goog.require('goog.testing.PropertyReplacer'); goog.require('goog.testing.messaging.MockMessagePort'); goog.require('goog.testing.jsunit'); goog.require('goog.testing.messaging.MockMessageChannel'); </script> </head> <body> <script> var stubs = new goog.testing.PropertyReplacer(); var mockControl; var mockChannel1; var mockChannel2; var operator; function setUp() { mockControl = new goog.testing.MockControl(); var index = 0; stubs.set(goog.global, 'MessageChannel', function() { this.port1 = makeMockPort(index, 1); this.port2 = makeMockPort(index, 2); index += 1; }); mockChannel1 = new goog.testing.messaging.MockMessageChannel(mockControl); mockChannel2 = new goog.testing.messaging.MockMessageChannel(mockControl); operator = new goog.messaging.PortOperator('operator'); operator.addPort('1', mockChannel1); operator.addPort('2', mockChannel2); } function tearDown() { goog.dispose(operator); mockControl.$verifyAll(); stubs.reset(); } function makeMockPort(index, port) { return new goog.testing.messaging.MockMessagePort( {index: index, port: port}, mockControl); } function testConnectSelfToPortViaRequestConnection() { mockChannel1.send(goog.messaging.PortNetwork.GRANT_CONNECTION_SERVICE, { success: true, name: 'operator', port: makeMockPort(0, 1) }); mockControl.$replayAll(); mockChannel1.receive( goog.messaging.PortNetwork.REQUEST_CONNECTION_SERVICE, 'operator'); var port = operator.dial('1').port_; assertObjectEquals({index: 0, port: 2}, port.id); assertEquals(true, port.started); } function testConnectSelfToPortViaGetPort() { mockChannel1.send(goog.messaging.PortNetwork.GRANT_CONNECTION_SERVICE, { success: true, name: 'operator', port: makeMockPort(0, 1) }); mockControl.$replayAll(); var port = operator.dial('1').port_; assertObjectEquals({index: 0, port: 2}, port.id); assertEquals(true, port.started); } function testConnectTwoCallers() { mockChannel1.send(goog.messaging.PortNetwork.GRANT_CONNECTION_SERVICE, { success: true, name: '2', port: makeMockPort(0, 1) }); mockChannel2.send(goog.messaging.PortNetwork.GRANT_CONNECTION_SERVICE, { success: true, name: '1', port: makeMockPort(0, 2) }); mockControl.$replayAll(); mockChannel1.receive( goog.messaging.PortNetwork.REQUEST_CONNECTION_SERVICE, '2'); } function testConnectCallerToNonexistentCaller() { mockChannel1.send(goog.messaging.PortNetwork.GRANT_CONNECTION_SERVICE, { success: false, message: 'Port "1" requested a connection to port "no", which doesn\'t ' + 'exist' }); mockControl.$replayAll(); mockChannel1.receive( goog.messaging.PortNetwork.REQUEST_CONNECTION_SERVICE, 'no'); } </script> </body> </html>