summaryrefslogtreecommitdiffstats
path: root/dom/presentation/tests/xpcshell/test_presentation_session_transport.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/presentation/tests/xpcshell/test_presentation_session_transport.js')
-rw-r--r--dom/presentation/tests/xpcshell/test_presentation_session_transport.js198
1 files changed, 0 insertions, 198 deletions
diff --git a/dom/presentation/tests/xpcshell/test_presentation_session_transport.js b/dom/presentation/tests/xpcshell/test_presentation_session_transport.js
deleted file mode 100644
index 8e207bc22..000000000
--- a/dom/presentation/tests/xpcshell/test_presentation_session_transport.js
+++ /dev/null
@@ -1,198 +0,0 @@
-/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-'use strict';
-
-const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr, Constructor: CC } = Components;
-const ServerSocket = CC("@mozilla.org/network/server-socket;1",
- "nsIServerSocket",
- "init");
-
-Cu.import('resource://gre/modules/XPCOMUtils.jsm');
-Cu.import('resource://gre/modules/Services.jsm');
-
-var testServer = null;
-var clientTransport = null;
-var serverTransport = null;
-
-var clientBuilder = null;
-var serverBuilder = null;
-
-const clientMessage = "Client Message";
-const serverMessage = "Server Message";
-
-const address = Cc["@mozilla.org/supports-cstring;1"]
- .createInstance(Ci.nsISupportsCString);
-address.data = "127.0.0.1";
-const addresses = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
-addresses.appendElement(address, false);
-
-const serverChannelDescription = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIPresentationChannelDescription]),
- type: 1,
- tcpAddress: addresses,
-};
-
-var isClientReady = false;
-var isServerReady = false;
-var isClientClosed = false;
-var isServerClosed = false;
-
-const clientCallback = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIPresentationSessionTransportCallback]),
- notifyTransportReady: function () {
- Assert.ok(true, "Client transport ready.");
-
- isClientReady = true;
- if (isClientReady && isServerReady) {
- run_next_test();
- }
- },
- notifyTransportClosed: function (aReason) {
- Assert.ok(true, "Client transport is closed.");
-
- isClientClosed = true;
- if (isClientClosed && isServerClosed) {
- run_next_test();
- }
- },
- notifyData: function(aData) {
- Assert.equal(aData, serverMessage, "Client transport receives data.");
- run_next_test();
- },
-};
-
-const serverCallback = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIPresentationSessionTransportCallback]),
- notifyTransportReady: function () {
- Assert.ok(true, "Server transport ready.");
-
- isServerReady = true;
- if (isClientReady && isServerReady) {
- run_next_test();
- }
- },
- notifyTransportClosed: function (aReason) {
- Assert.ok(true, "Server transport is closed.");
-
- isServerClosed = true;
- if (isClientClosed && isServerClosed) {
- run_next_test();
- }
- },
- notifyData: function(aData) {
- Assert.equal(aData, clientMessage, "Server transport receives data.");
- run_next_test();
- },
-};
-
-const clientListener = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIPresentationSessionTransportBuilderListener]),
- onSessionTransport(aTransport) {
- Assert.ok(true, "Client Transport is built.");
- clientTransport = aTransport;
- clientTransport.callback = clientCallback;
-
- if (serverTransport) {
- run_next_test();
- }
- }
-}
-
-const serverListener = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIPresentationSessionTransportBuilderListener]),
- onSessionTransport(aTransport) {
- Assert.ok(true, "Server Transport is built.");
- serverTransport = aTransport;
- serverTransport.callback = serverCallback;
- serverTransport.enableDataNotification();
-
- if (clientTransport) {
- run_next_test();
- }
- }
-}
-
-function TestServer() {
- this.serverSocket = ServerSocket(-1, true, -1);
- this.serverSocket.asyncListen(this)
-}
-
-TestServer.prototype = {
- onSocketAccepted: function(aSocket, aTransport) {
- print("Test server gets a client connection.");
- serverBuilder = Cc["@mozilla.org/presentation/presentationtcpsessiontransport;1"]
- .createInstance(Ci.nsIPresentationTCPSessionTransportBuilder);
- serverBuilder.buildTCPSenderTransport(aTransport, serverListener);
- },
- onStopListening: function(aSocket) {
- print("Test server stops listening.");
- },
- close: function() {
- if (this.serverSocket) {
- this.serverSocket.close();
- this.serverSocket = null;
- }
- }
-};
-
-// Set up the transport connection and ensure |notifyTransportReady| triggered
-// at both sides.
-function setup() {
- clientBuilder = Cc["@mozilla.org/presentation/presentationtcpsessiontransport;1"]
- .createInstance(Ci.nsIPresentationTCPSessionTransportBuilder);
- clientBuilder.buildTCPReceiverTransport(serverChannelDescription, clientListener);
-}
-
-// Test |selfAddress| attribute of |nsIPresentationSessionTransport|.
-function selfAddress() {
- var serverSelfAddress = serverTransport.selfAddress;
- Assert.equal(serverSelfAddress.address, address.data, "The self address of server transport should be set.");
- Assert.equal(serverSelfAddress.port, testServer.serverSocket.port, "The port of server transport should be set.");
-
- var clientSelfAddress = clientTransport.selfAddress;
- Assert.ok(clientSelfAddress.address, "The self address of client transport should be set.");
- Assert.ok(clientSelfAddress.port, "The port of client transport should be set.");
-
- run_next_test();
-}
-
-// Test the client sends a message and then a corresponding notification gets
-// triggered at the server side.
-function clientSendMessage() {
- clientTransport.send(clientMessage);
-}
-
-// Test the server sends a message an then a corresponding notification gets
-// triggered at the client side.
-function serverSendMessage() {
- serverTransport.send(serverMessage);
- // The client enables data notification even after the incoming message has
- // been sent, and should still be able to consume it.
- clientTransport.enableDataNotification();
-}
-
-function transportClose() {
- clientTransport.close(Cr.NS_OK);
-}
-
-function shutdown() {
- testServer.close();
- run_next_test();
-}
-
-add_test(setup);
-add_test(selfAddress);
-add_test(clientSendMessage);
-add_test(serverSendMessage);
-add_test(transportClose);
-add_test(shutdown);
-
-function run_test() {
- testServer = new TestServer();
- // Get the port of the test server.
- serverChannelDescription.tcpPort = testServer.serverSocket.port;
-
- run_next_test();
-}