diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/net/xpc/nativemessagingtransport_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/net/xpc/nativemessagingtransport_test.html | 304 |
1 files changed, 0 insertions, 304 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/net/xpc/nativemessagingtransport_test.html b/contexts/data/lib/closure-library/closure/goog/net/xpc/nativemessagingtransport_test.html deleted file mode 100644 index 8e2086c..0000000 --- a/contexts/data/lib/closure-library/closure/goog/net/xpc/nativemessagingtransport_test.html +++ /dev/null @@ -1,304 +0,0 @@ -<!DOCTYPE html> -<!-- ---> -<html> -<!-- -Copyright 2008 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> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> -<title>NativeMessagingTransport Unit-Tests</title> -<script src="../../base.js" type="text/javascript"></script> -<script type="text/javascript"> - goog.require('goog.net.xpc.CrossPageChannel'); - goog.require('goog.net.xpc.CrossPageChannelRole'); - goog.require('goog.net.xpc.NativeMessagingTransport'); - goog.require('goog.testing.events'); - goog.require('goog.testing.jsunit'); -</script> -<script type="text/javascript"> - -// This test only tests the native messaing transport protocol version 2. -// Testing of previous versions and of backward/forward compatibility is done -// in crosspagechannel_test.html. - - -function tearDown() { - goog.net.xpc.NativeMessagingTransport.activeCount_ = {}; - goog.events.removeAll(window.postMessage ? window : document, 'message'); -} - - -function testConstructor() { - var xpc = getTestChannel(); - - var t = new goog.net.xpc.NativeMessagingTransport(xpc, 'http://g.com:80', - undefined /* opt_domHelper */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); - assertEquals('http://g.com:80', t.peerHostname_); - - var t = new goog.net.xpc.NativeMessagingTransport(xpc, - null /* peerHostName */, undefined /* opt_domHelper */, - false /* opt_oneSidedHandshake */, 2 /* opt_protocolVersion */); - assertEquals('*', t.peerHostname_); - t.dispose(); -} - - -function testConstructorDom() { - var xpc = getTestChannel(); - - var t = new goog.net.xpc.NativeMessagingTransport( - xpc, 'http://g.com:80', goog.dom.getDomHelper(), - false /* opt_oneSidedHandshake */, 2 /* opt_protocolVersion */); - assertEquals('http://g.com:80', t.peerHostname_); - - var t = new goog.net.xpc.NativeMessagingTransport(xpc, - null /* peerHostName */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); - assertEquals('*', t.peerHostname_); - t.dispose(); -} - - -function testDispose() { - var xpc = getTestChannel(); - var listenedObj = window.postMessage ? window : document; - - var t0 = new goog.net.xpc.NativeMessagingTransport(xpc, - null /* peerHostName */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); - assertEquals(0, goog.events.removeAll(listenedObj, 'message')); - t0.dispose(); - assertEquals(0, goog.events.removeAll(listenedObj, 'message')); - - var t1 = new goog.net.xpc.NativeMessagingTransport(xpc, - null /* peerHostName */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); - t1.connect(); - t1.dispose(); - assertEquals(0, goog.events.removeAll(listenedObj, 'message')); - - var t2 = new goog.net.xpc.NativeMessagingTransport(xpc, - null /* peerHostName */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); - var t3 = new goog.net.xpc.NativeMessagingTransport(xpc, - null /* peerHostName */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); - t2.connect(); - t3.connect(); - t2.dispose(); - assertEquals(1, goog.events.removeAll(listenedObj, 'message')); -} - - -function testDisposeWithDom() { - var xpc = getTestChannel(goog.dom.getDomHelper()); - var listenedObj = window.postMessage ? window : document; - - var t0 = new goog.net.xpc.NativeMessagingTransport(xpc, - null /* peerHostName */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); - assertEquals(0, goog.events.removeAll(listenedObj, 'message')); - t0.dispose(); - assertEquals(0, goog.events.removeAll(listenedObj, 'message')); - - var t1 = new goog.net.xpc.NativeMessagingTransport(xpc, - null /* peerHostName */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); - t1.connect(); - t1.dispose(); - assertEquals(0, goog.events.removeAll(listenedObj, 'message')); - - var t2 = new goog.net.xpc.NativeMessagingTransport(xpc, - null /* peerHostName */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); - var t3 = new goog.net.xpc.NativeMessagingTransport(xpc, - null /* peerHostName */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); - t2.connect(); - t3.connect(); - t2.dispose(); - assertEquals(1, goog.events.removeAll(listenedObj, 'message')); -} - - -function testBogusMessages() { - var e = createMockEvent('bogus_message'); - assertFalse(goog.net.xpc.NativeMessagingTransport.messageReceived_(e)); - - e = createMockEvent('bogus|message'); - assertFalse(goog.net.xpc.NativeMessagingTransport.messageReceived_(e)); - - e = createMockEvent('bogus|message:data'); - assertFalse(goog.net.xpc.NativeMessagingTransport.messageReceived_(e)); -} - - -function testSendingMessagesToUnconnectedInnerPeer() { - var xpc = getTestChannel(); - - var serviceResult, payloadResult; - xpc.xpcDeliver = function(service, payload) { - serviceResult = service; - payloadResult = payload; - }; - - // Construct an unconnected inner peer. - xpc.getRole = function() { - return goog.net.xpc.CrossPageChannelRole.INNER; - }; - xpc.isConnected = function() { - return false; - }; - var t = new goog.net.xpc.NativeMessagingTransport(xpc, 'http://g.com', - false /* opt_oneSidedHandshake */, 2 /* opt_protocolVersion */); - - // Test a valid message. - var e = createMockEvent('test_channel|test_service:test_payload'); - assertTrue(goog.net.xpc.NativeMessagingTransport.messageReceived_(e)); - assertEquals('test_service', serviceResult); - assertEquals('test_payload', payloadResult); - assertEquals('Ensure channel name has not been changed.', - 'test_channel', - t.channel_.name); - - // Test updating a stale inner peer. - var e = createMockEvent('new_channel|tp:SETUP'); - assertTrue(goog.net.xpc.NativeMessagingTransport.messageReceived_(e)); - assertEquals('tp', serviceResult); - assertEquals('SETUP', payloadResult); - assertEquals('Ensure channel name has been updated.', - 'new_channel', - t.channel_.name); - t.dispose(); -} - - -function testSignalConnected_innerFrame() { - checkSignalConnected(false /* oneSidedHandshake */, - true /* innerFrame */); -} - - -function testSignalConnected_outerFrame() { - checkSignalConnected(false /* oneSidedHandshake */, - false /* innerFrame */); -} - - -function testSignalConnected_singleSided_innerFrame() { - checkSignalConnected(true /* oneSidedHandshake */, - true /* innerFrame */); -} - - -function testSignalConnected_singleSided_outerFrame() { - checkSignalConnected(true /* oneSidedHandshake */, - false /* innerFrame */); -} - - -function checkSignalConnected(oneSidedHandshake, innerFrame, - peerProtocolVersion, protocolVersion) { - var xpc = getTestChannel(); - var connected = false; - xpc.notifyConnected = function() { - if (connected) { - fail(); - } else { - connected = true; - } - }; - xpc.getRole = function() { - return innerFrame ? goog.net.xpc.CrossPageChannelRole.INNER : - goog.net.xpc.CrossPageChannelRole.OUTER; - }; - xpc.isConnected = function() { - return false; - }; - - var transport = new goog.net.xpc.NativeMessagingTransport(xpc, 'http://g.com', - undefined /* opt_domHelper */, - oneSidedHandshake /* opt_oneSidedHandshake */, - 2 /* protocolVerion */); - var sentPayloads = []; - transport.send = function(service, payload) { - assertEquals(goog.net.xpc.TRANSPORT_SERVICE_, service); - sentPayloads.push(payload); - } - function assertSent(payloads) { - assertArrayEquals(payloads, sentPayloads); - sentPayloads = []; - } - var endpointId = transport.endpointId_; - var peerEndpointId1 = 'abc123'; - var peerEndpointId2 = 'def234'; - - assertFalse(connected); - if (!oneSidedHandshake || innerFrame) { - transport.transportServiceHandler(goog.net.xpc.SETUP_NTPV2 + ',' + - peerEndpointId1); - transport.transportServiceHandler(goog.net.xpc.SETUP); - assertSent([goog.net.xpc.SETUP_ACK_NTPV2]); - assertFalse(connected); - transport.transportServiceHandler(goog.net.xpc.SETUP_ACK_NTPV2); - assertSent([]); - assertTrue(connected); - } else { - transport.transportServiceHandler(goog.net.xpc.SETUP_ACK_NTPV2); - assertSent([]); - assertFalse(connected); - transport.transportServiceHandler(goog.net.xpc.SETUP_NTPV2 + ',' + - peerEndpointId1); - transport.transportServiceHandler(goog.net.xpc.SETUP); - assertSent([goog.net.xpc.SETUP_ACK_NTPV2]); - assertTrue(connected); - } - - // Verify that additional transport service traffic doesn't cause duplicate - // notifications. - transport.transportServiceHandler(goog.net.xpc.SETUP_NTPV2 + ',' + - peerEndpointId1); - transport.transportServiceHandler(goog.net.xpc.SETUP); - assertSent([goog.net.xpc.SETUP_ACK_NTPV2]); - transport.transportServiceHandler(goog.net.xpc.SETUP_ACK_NTPV2); - assertSent([]); - - // Simulate a reconnection by sending a SETUP message from a frame with a - // different endpoint id. No further connection callbacks should fire, but - // a new SETUP message should be triggered. - transport.transportServiceHandler(goog.net.xpc.SETUP_NTPV2 + ',' + - peerEndpointId2); - transport.transportServiceHandler(goog.net.xpc.SETUP); - assertSent([goog.net.xpc.SETUP_ACK_NTPV2, goog.net.xpc.SETUP_NTPV2 + ',' + - endpointId]); - transport.transportServiceHandler(goog.net.xpc.SETUP_ACK_NTPV2); - assertSent([]); -} - - -function createMockEvent(data) { - var event = {}; - event.getBrowserEvent = function() { return {data: data} }; - return event; -} - - -function getTestChannel(opt_domHelper) { - var cfg = {}; - cfg[goog.net.xpc.CfgFields.CHANNEL_NAME] = 'test_channel'; - return new goog.net.xpc.CrossPageChannel(cfg, opt_domHelper, - undefined /* opt_domHelper */, false /* opt_oneSidedHandshake */, - 2 /* opt_protocolVersion */); -} - -</script> -</head> - -<body></body> - -</html> |