diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/messaging/bufferedchannel_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/messaging/bufferedchannel_test.html | 283 |
1 files changed, 0 insertions, 283 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/messaging/bufferedchannel_test.html b/contexts/data/lib/closure-library/closure/goog/messaging/bufferedchannel_test.html deleted file mode 100644 index 45434de..0000000 --- a/contexts/data/lib/closure-library/closure/goog/messaging/bufferedchannel_test.html +++ /dev/null @@ -1,283 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2010 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.BufferedChannel -</title> -<script src="../base.js"></script> -<script> - goog.require('goog.debug.Console'); - goog.require('goog.debug.Logger'); - goog.require('goog.dom'); - goog.require('goog.events.Event'); - goog.require('goog.messaging.BufferedChannel'); - goog.require('goog.testing.MockClock'); - goog.require('goog.testing.MockControl'); - goog.require('goog.testing.async.MockControl'); - goog.require('goog.testing.jsunit'); - goog.require('goog.testing.messaging.MockMessageChannel'); -</script> -</head> -<body> - -<script> - -if (goog.global.console) new goog.debug.Console().setCapturing(true); - -var clock = new goog.testing.MockClock(); -var messages = [ - {serviceName: 'firstService', payload: 'firstPayload'}, - {serviceName: 'secondService', payload: 'secondPayload'} -]; -var mockControl = new goog.testing.MockControl(); -var asyncMockControl = new goog.testing.async.MockControl(mockControl); - - -function setUpPage() { - var logger = goog.debug.Logger.getLogger('goog.messaging'); - logger.setLevel(goog.debug.Logger.Level.ALL); - logger.addHandler(function(logRecord) { - var msg = goog.dom.createDom('div'); - msg.innerHTML = logRecord.getMessage(); - goog.dom.appendChild(goog.dom.getElement('debug-div'), msg); - }); -} - - -function setUp() { - clock.install(); -} - - -function tearDown() { - clock.uninstall(); - mockControl.$tearDown(); -} - - -function assertMessageArraysEqual(ma1, ma2) { - assertEquals('message array lengths differ', ma1.length, ma2.length); - for (var i = 0; i < ma1.length; i++) { - assertEquals( - 'message array serviceNames differ', - ma1[i].serviceName, ma2[i].serviceName); - assertEquals( - 'message array payloads differ', - ma1[i].payload, ma2[i].payload); - } -} - - -function testDelegationToWrappedChannel() { - var mockChannel = new goog.testing.messaging.MockMessageChannel(mockControl); - var channel = new goog.messaging.BufferedChannel(mockChannel); - - channel.registerDefaultService( - asyncMockControl.asyncAssertEquals( - 'default service should be delegated', - 'defaultServiceName', 'default service payload')); - channel.registerService( - 'normalServiceName', - asyncMockControl.asyncAssertEquals( - 'normal service should be delegated', - 'normal service payload')); - mockChannel.send( - goog.messaging.BufferedChannel.USER_CHANNEL_NAME_ + ':message', - 'payload'); - - mockControl.$replayAll(); - channel.peerReady_ = true; // Prevent buffering so we delegate send calls. - mockChannel.receive( - goog.messaging.BufferedChannel.USER_CHANNEL_NAME_ + ':defaultServiceName', - 'default service payload'); - mockChannel.receive( - goog.messaging.BufferedChannel.USER_CHANNEL_NAME_ + ':normalServiceName', - 'normal service payload'); - channel.send('message', 'payload'); - mockControl.$verifyAll(); -} - - -function testOptionalConnectCallbackExecutes() { - var mockChannel = new goog.testing.messaging.MockMessageChannel(mockControl); - var channel = new goog.messaging.BufferedChannel(mockChannel); - var mockConnectCb = mockControl.createFunctionMock('mockConnectCb'); - mockConnectCb(); - - mockControl.$replayAll(); - channel.connect(mockConnectCb); - mockControl.$verifyAll(); -} - - -function testSendExceptionsInSendReadyPingStopsTimerAndReraises() { - var mockChannel = new goog.testing.messaging.MockMessageChannel(mockControl); - var channel = new goog.messaging.BufferedChannel(mockChannel); - - var errorMessage = 'errorMessage'; - mockChannel.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':' + - goog.messaging.BufferedChannel.PEER_READY_SERVICE_NAME_, - /* payload */ '').$throws(Error(errorMessage)); - channel.timer_.enabled = true; - - mockControl.$replayAll(); - var exception = assertThrows(function() { - channel.sendReadyPing_(); - }); - assertContains(errorMessage, exception.message); - assertFalse(channel.timer_.enabled); - mockControl.$verifyAll(); -} - - -function testPollingIntervalDefaultAndOverride() { - var mockChannel = new goog.testing.messaging.MockMessageChannel(mockControl); - var channel = new goog.messaging.BufferedChannel(mockChannel); - - assertEquals( - goog.messaging.BufferedChannel.DEFAULT_INTERVAL_MILLIS_, - channel.timer_.getInterval()); - var interval = 100; - var longIntervalChannel = new goog.messaging.BufferedChannel( - new goog.testing.messaging.MockMessageChannel(mockControl), interval); - assertEquals(interval, longIntervalChannel.timer_.getInterval()); -} - - -function testBidirectionalCommunicationBuffersUntilReadyPingsSucceed() { - var mockChannel1 = new goog.testing.messaging.MockMessageChannel(mockControl); - var mockChannel2 = new goog.testing.messaging.MockMessageChannel(mockControl); - var bufferedChannel1 = new goog.messaging.BufferedChannel(mockChannel1); - var bufferedChannel2 = new goog.messaging.BufferedChannel(mockChannel2); - mockChannel1.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':setPeerReady_', - '').$does(function() { - bufferedChannel2.setPeerReady_(''); - }); - mockChannel2.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':setPeerReady_', - '1').$does(function() { - bufferedChannel1.setPeerReady_('1'); - }); - mockChannel1.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':setPeerReady_', - '1').$does(function() { - bufferedChannel2.setPeerReady_('1'); - }); - mockChannel1.send(goog.messaging.BufferedChannel.USER_CHANNEL_NAME_ + ':' + - messages[0].serviceName, - messages[0].payload); - mockChannel2.send(goog.messaging.BufferedChannel.USER_CHANNEL_NAME_ + ':' + - messages[1].serviceName, - messages[1].payload); - - mockControl.$replayAll(); - bufferedChannel1.send(messages[0].serviceName, messages[0].payload); - bufferedChannel2.send(messages[1].serviceName, messages[1].payload); - assertMessageArraysEqual([messages[0]], bufferedChannel1.buffer_); - assertMessageArraysEqual([messages[1]], bufferedChannel2.buffer_); - // First tick causes setPeerReady_ to fire, which in turn flushes the buffers. - clock.tick(goog.messaging.BufferedChannel.DEFAULT_INTERVAL_MILLIS_); - assertEquals(bufferedChannel1.buffer_, null); - assertEquals(bufferedChannel2.buffer_, null); - // Now that peers are ready, a second tick causes no more sends. - clock.tick(goog.messaging.BufferedChannel.DEFAULT_INTERVAL_MILLIS_); - mockControl.$verifyAll(); -} - - -function testBidirectionalCommunicationReconnectsAfterOneSideRestarts() { - var mockChannel1 = new goog.testing.messaging.MockMessageChannel(mockControl); - var mockChannel2 = new goog.testing.messaging.MockMessageChannel(mockControl); - var mockChannel3 = new goog.testing.messaging.MockMessageChannel(mockControl); - var bufferedChannel1 = new goog.messaging.BufferedChannel(mockChannel1); - var bufferedChannel2 = new goog.messaging.BufferedChannel(mockChannel2); - var bufferedChannel3 = new goog.messaging.BufferedChannel(mockChannel3); - - // First tick - mockChannel1.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':setPeerReady_', - '').$does(function() { - bufferedChannel2.setPeerReady_(''); - }); - mockChannel2.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':setPeerReady_', - '1').$does(function() { - bufferedChannel1.setPeerReady_('1'); - }); - mockChannel1.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':setPeerReady_', - '1').$does(function() { - bufferedChannel2.setPeerReady_('1'); - }); - mockChannel3.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':setPeerReady_', - ''); // pretend it's not ready to connect yet - - // Second tick - mockChannel3.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':setPeerReady_', - '').$does(function() { - bufferedChannel1.setPeerReady_(''); - }); - - // Third tick - mockChannel1.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':setPeerReady_', - '1').$does(function() { - bufferedChannel3.setPeerReady_('1'); - }); - mockChannel3.send( - goog.messaging.BufferedChannel.CONTROL_CHANNEL_NAME_ + ':setPeerReady_', - '1').$does(function() { - bufferedChannel1.setPeerReady_('1'); - }); - - mockChannel1.send(goog.messaging.BufferedChannel.USER_CHANNEL_NAME_ + ':' + - messages[0].serviceName, - messages[0].payload); - mockChannel3.send(goog.messaging.BufferedChannel.USER_CHANNEL_NAME_ + ':' + - messages[1].serviceName, - messages[1].payload); - - mockControl.$replayAll(); - // First tick causes setPeerReady_ to fire, which sets up the connection - // between channels 1 and 2. - clock.tick(goog.messaging.BufferedChannel.DEFAULT_INTERVAL_MILLIS_); - assertTrue(bufferedChannel1.peerReady_); - assertTrue(bufferedChannel2.peerReady_); - // Now pretend that channel 2 went down and was replaced by channel 3, which - // is trying to connect with channel 1. - clock.tick(goog.messaging.BufferedChannel.DEFAULT_INTERVAL_MILLIS_); - assertTrue(bufferedChannel1.peerReady_); - clock.tick(goog.messaging.BufferedChannel.DEFAULT_INTERVAL_MILLIS_); - assertTrue(bufferedChannel3.peerReady_); - bufferedChannel1.send(messages[0].serviceName, messages[0].payload); - bufferedChannel3.send(messages[1].serviceName, messages[1].payload); - // All timers stopped, nothing happens on the fourth tick. - clock.tick(goog.messaging.BufferedChannel.DEFAULT_INTERVAL_MILLIS_); - mockControl.$verifyAll(); -} - - -</script> - -<div id="debug-container" - style="border: 1px solid black; font-size: small; font-family: courier;"> - Debug Window - [<a href="#" - onclick="document.getElementById('debug-div').innerHTML = '';">clear</a>] - <div id="debug-div"></div> -</div> - -</body> -</html> |