aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/net/xpc/nativemessagingtransport_test.html
diff options
context:
space:
mode:
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.html304
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>