forked from mirrors/gecko-dev
Bug 1475004 - Enable ESLint for dom/presentation - manual fixes. r=mccr8
MozReview-Commit-ID: 8UGertZYKk --HG-- extra : rebase_source : ca00ad17ef23739d62e8e9e1336cb0fe07a7c379
This commit is contained in:
parent
a0026662dd
commit
d0d3486293
29 changed files with 316 additions and 361 deletions
|
|
@ -229,10 +229,6 @@ dom/permission/**
|
||||||
dom/plugins/test/mochitest/**
|
dom/plugins/test/mochitest/**
|
||||||
dom/plugins/test/unit/**
|
dom/plugins/test/unit/**
|
||||||
dom/power/**
|
dom/power/**
|
||||||
dom/presentation/Presentation*.js
|
|
||||||
dom/presentation/provider/**
|
|
||||||
dom/presentation/tests/mochitest/**
|
|
||||||
dom/presentation/tests/xpcshell/**
|
|
||||||
dom/promise/**
|
dom/promise/**
|
||||||
dom/push/**
|
dom/push/**
|
||||||
dom/quota/**
|
dom/quota/**
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,10 @@
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
/* jshint esnext:true, globalstrict:true, moz:true, undef:true, unused:true */
|
|
||||||
/* globals Components, dump */
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
// globals XPCOMUtils
|
|
||||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||||
// globals Services
|
|
||||||
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||||
// globals EventDispatcher
|
|
||||||
ChromeUtils.import("resource://gre/modules/Messaging.jsm");
|
ChromeUtils.import("resource://gre/modules/Messaging.jsm");
|
||||||
|
|
||||||
function log(str) {
|
function log(str) {
|
||||||
|
|
@ -328,9 +323,7 @@ ChromecastRemoteDisplayDevice.prototype = {
|
||||||
},
|
},
|
||||||
|
|
||||||
isRequestedUrlSupported: function CRDD_isRequestedUrlSupported(aUrl) {
|
isRequestedUrlSupported: function CRDD_isRequestedUrlSupported(aUrl) {
|
||||||
let url = Cc["@mozilla.org/network/io-service;1"]
|
let url = Services.io.newURI(aUrl);
|
||||||
.getService(Ci.nsIIOService)
|
|
||||||
.newURI(aUrl);
|
|
||||||
return url.scheme == "http" || url.scheme == "https";
|
return url.scheme == "http" || url.scheme == "https";
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,16 @@
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
/* jshint esnext:true, globalstrict:true, moz:true, undef:true, unused:true */
|
|
||||||
/* globals Components, dump */
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
/* globals XPCOMUtils */
|
|
||||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||||
/* globals Services */
|
|
||||||
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
ChromeUtils.import("resource://gre/modules/Services.jsm");
|
||||||
/* globals NetUtil */
|
|
||||||
ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
|
ChromeUtils.import("resource://gre/modules/NetUtil.jsm");
|
||||||
/* globals setTimeout, clearTimeout */
|
|
||||||
ChromeUtils.import("resource://gre/modules/Timer.jsm");
|
ChromeUtils.import("resource://gre/modules/Timer.jsm");
|
||||||
|
|
||||||
/* globals ControllerStateMachine */
|
ChromeUtils.defineModuleGetter(this, "ControllerStateMachine",
|
||||||
ChromeUtils.defineModuleGetter(this, "ControllerStateMachine", // jshint ignore:line
|
|
||||||
"resource://gre/modules/presentation/ControllerStateMachine.jsm");
|
"resource://gre/modules/presentation/ControllerStateMachine.jsm");
|
||||||
/* global ReceiverStateMachine */
|
ChromeUtils.defineModuleGetter(this, "ReceiverStateMachine",
|
||||||
ChromeUtils.defineModuleGetter(this, "ReceiverStateMachine", // jshint ignore:line
|
|
||||||
"resource://gre/modules/presentation/ReceiverStateMachine.jsm");
|
"resource://gre/modules/presentation/ReceiverStateMachine.jsm");
|
||||||
|
|
||||||
const kProtocolVersion = 1; // need to review isCompatibleServer while fiddling the version number.
|
const kProtocolVersion = 1; // need to review isCompatibleServer while fiddling the version number.
|
||||||
|
|
@ -859,7 +851,7 @@ TCPControlChannel.prototype = {
|
||||||
DEBUG && log("TCPControlChannel - reconnect with role: " +
|
DEBUG && log("TCPControlChannel - reconnect with role: " +
|
||||||
this._direction); // jshint ignore:line
|
this._direction); // jshint ignore:line
|
||||||
if (this._direction != "sender") {
|
if (this._direction != "sender") {
|
||||||
return Cr.NS_ERROR_FAILURE;
|
throw Cr.NS_ERROR_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._stateMachine.reconnect(aPresentationId, aUrl);
|
this._stateMachine.reconnect(aPresentationId, aUrl);
|
||||||
|
|
|
||||||
7
dom/presentation/tests/mochitest/.eslintrc.js
Normal file
7
dom/presentation/tests/mochitest/.eslintrc.js
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
"extends": [
|
||||||
|
"plugin:mozilla/mochitest-test"
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
@ -3,7 +3,9 @@
|
||||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
/* eslint-env mozilla/frame-script */
|
||||||
|
|
||||||
|
const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm", {});
|
||||||
|
|
||||||
const manager = Cc["@mozilla.org/presentation-device/manager;1"]
|
const manager = Cc["@mozilla.org/presentation-device/manager;1"]
|
||||||
.getService(Ci.nsIPresentationDeviceManager);
|
.getService(Ci.nsIPresentationDeviceManager);
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@
|
||||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
/* eslint-env mozilla/frame-script */
|
||||||
|
|
||||||
const Cm = Components.manager;
|
const Cm = Components.manager;
|
||||||
|
|
||||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||||
|
|
@ -124,11 +126,11 @@ const mockedControlChannel = {
|
||||||
var isValid = false;
|
var isValid = false;
|
||||||
if (aSDP.type == Ci.nsIPresentationChannelDescription.TYPE_TCP) {
|
if (aSDP.type == Ci.nsIPresentationChannelDescription.TYPE_TCP) {
|
||||||
try {
|
try {
|
||||||
var addresses = aSDP.tcpAddress;
|
var sdpAddresses = aSDP.tcpAddress;
|
||||||
if (addresses.length > 0) {
|
if (sdpAddresses.length > 0) {
|
||||||
for (var i = 0; i < addresses.length; i++) {
|
for (var i = 0; i < sdpAddresses.length; i++) {
|
||||||
// Ensure CString addresses are used. Otherwise, an error will be thrown.
|
// Ensure CString addresses are used. Otherwise, an error will be thrown.
|
||||||
addresses.queryElementAt(i, Ci.nsISupportsCString);
|
sdpAddresses.queryElementAt(i, Ci.nsISupportsCString);
|
||||||
}
|
}
|
||||||
|
|
||||||
isValid = true;
|
isValid = true;
|
||||||
|
|
@ -255,11 +257,11 @@ const mockedSessionTransport = {
|
||||||
this._listener = listener;
|
this._listener = listener;
|
||||||
this._role = Ci.nsIPresentationService.ROLE_RECEIVER;
|
this._role = Ci.nsIPresentationService.ROLE_RECEIVER;
|
||||||
|
|
||||||
var addresses = description.QueryInterface(Ci.nsIPresentationChannelDescription).tcpAddress;
|
var tcpAddresses = description.QueryInterface(Ci.nsIPresentationChannelDescription).tcpAddress;
|
||||||
this._selfAddress = {
|
this._selfAddress = {
|
||||||
QueryInterface: ChromeUtils.generateQI([Ci.nsINetAddr]),
|
QueryInterface: ChromeUtils.generateQI([Ci.nsINetAddr]),
|
||||||
address: (addresses.length > 0) ?
|
address: (tcpAddresses.length > 0) ?
|
||||||
addresses.queryElementAt(0, Ci.nsISupportsCString).data : "",
|
tcpAddresses.queryElementAt(0, Ci.nsISupportsCString).data : "",
|
||||||
port: description.QueryInterface(Ci.nsIPresentationChannelDescription).tcpPort,
|
port: description.QueryInterface(Ci.nsIPresentationChannelDescription).tcpPort,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -464,10 +466,8 @@ addMessageListener("restore-control-channel-listener", function(message) {
|
||||||
controlChannelListener = null;
|
controlChannelListener = null;
|
||||||
});
|
});
|
||||||
|
|
||||||
var obs = Cc["@mozilla.org/observer-service;1"]
|
Services.obs.addObserver(function observer(aSubject, aTopic, aData) {
|
||||||
.getService(Ci.nsIObserverService);
|
Services.obs.removeObserver(observer, aTopic);
|
||||||
obs.addObserver(function observer(aSubject, aTopic, aData) {
|
|
||||||
obs.removeObserver(observer, aTopic);
|
|
||||||
|
|
||||||
requestPromise = aSubject;
|
requestPromise = aSubject;
|
||||||
}, "setup-request-promise");
|
}, "setup-request-promise");
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,8 @@
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
/* eslint-env mozilla/frame-script */
|
||||||
|
|
||||||
const Cm = Components.manager;
|
const Cm = Components.manager;
|
||||||
|
|
||||||
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||||
|
|
@ -251,8 +253,6 @@ function initMockAndListener() {
|
||||||
originalFactory };
|
originalFactory };
|
||||||
}
|
}
|
||||||
// Register mock factories.
|
// Register mock factories.
|
||||||
const uuidGenerator = Cc["@mozilla.org/uuid-generator;1"]
|
|
||||||
.getService(Ci.nsIUUIDGenerator);
|
|
||||||
originalFactoryData.push(registerMockFactory("@mozilla.org/presentation-device/prompt;1",
|
originalFactoryData.push(registerMockFactory("@mozilla.org/presentation-device/prompt;1",
|
||||||
uuidGenerator.generateUUID(),
|
uuidGenerator.generateUUID(),
|
||||||
mockDevicePrompt));
|
mockDevicePrompt));
|
||||||
|
|
@ -326,10 +326,9 @@ function initMockAndListener() {
|
||||||
|
|
||||||
addMessageListener("teardown", teardown);
|
addMessageListener("teardown", teardown);
|
||||||
|
|
||||||
var obs = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
|
Services.obs.addObserver(function setupRequestPromiseHandler(aSubject, aTopic, aData) {
|
||||||
obs.addObserver(function setupRequestPromiseHandler(aSubject, aTopic, aData) {
|
|
||||||
debug("Got observer: setup-request-promise");
|
debug("Got observer: setup-request-promise");
|
||||||
obs.removeObserver(setupRequestPromiseHandler, aTopic);
|
Services.obs.removeObserver(setupRequestPromiseHandler, aTopic);
|
||||||
mockRequestUIGlue.promise = aSubject;
|
mockRequestUIGlue.promise = aSubject;
|
||||||
sendAsyncMessage("promise-setup-ready");
|
sendAsyncMessage("promise-setup-ready");
|
||||||
}, "setup-request-promise");
|
}, "setup-request-promise");
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
/* Any copyright is dedicated to the Public Domain.
|
/* Any copyright is dedicated to the Public Domain.
|
||||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||||
|
|
||||||
|
/* eslint-env mozilla/frame-script */
|
||||||
|
|
||||||
function loadPrivilegedScriptTest() {
|
function loadPrivilegedScriptTest() {
|
||||||
/**
|
/**
|
||||||
* The script is loaded as
|
* The script is loaded as
|
||||||
|
|
@ -34,6 +36,7 @@ function loadPrivilegedScriptTest() {
|
||||||
handlers[type].forEach(handler => handler.apply(null, args));
|
handlers[type].forEach(handler => handler.apply(null, args));
|
||||||
};
|
};
|
||||||
var handlers = {};
|
var handlers = {};
|
||||||
|
/* eslint-disable-next-line no-native-reassign */
|
||||||
addMessageListener = function(message, handler) {
|
addMessageListener = function(message, handler) {
|
||||||
if (handlers.hasOwnProperty(message)) {
|
if (handlers.hasOwnProperty(message)) {
|
||||||
handlers[message].push(handler);
|
handlers[message].push(handler);
|
||||||
|
|
@ -41,6 +44,7 @@ function loadPrivilegedScriptTest() {
|
||||||
handlers[message] = [handler];
|
handlers[message] = [handler];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
/* eslint-disable-next-line no-native-reassign */
|
||||||
removeMessageListener = function(message, handler) {
|
removeMessageListener = function(message, handler) {
|
||||||
if (!handler || !handlers.hasOwnProperty(message)) {
|
if (!handler || !handlers.hasOwnProperty(message)) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -55,6 +59,7 @@ function loadPrivilegedScriptTest() {
|
||||||
const Cm = Components.manager;
|
const Cm = Components.manager;
|
||||||
|
|
||||||
const mockedChannelDescription = {
|
const mockedChannelDescription = {
|
||||||
|
/* eslint-disable-next-line mozilla/use-chromeutils-generateqi */
|
||||||
QueryInterface(iid) {
|
QueryInterface(iid) {
|
||||||
const interfaces = [Ci.nsIPresentationChannelDescription];
|
const interfaces = [Ci.nsIPresentationChannelDescription];
|
||||||
|
|
||||||
|
|
@ -64,6 +69,7 @@ function loadPrivilegedScriptTest() {
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
get type() {
|
get type() {
|
||||||
|
/* global Services */
|
||||||
if (Services.prefs.getBoolPref("dom.presentation.session_transport.data_channel.enable")) {
|
if (Services.prefs.getBoolPref("dom.presentation.session_transport.data_channel.enable")) {
|
||||||
return Ci.nsIPresentationChannelDescription.TYPE_DATACHANNEL;
|
return Ci.nsIPresentationChannelDescription.TYPE_DATACHANNEL;
|
||||||
}
|
}
|
||||||
|
|
@ -83,6 +89,7 @@ function loadPrivilegedScriptTest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const mockedSessionTransport = {
|
const mockedSessionTransport = {
|
||||||
|
/* eslint-disable-next-line mozilla/use-chromeutils-generateqi */
|
||||||
QueryInterface(iid) {
|
QueryInterface(iid) {
|
||||||
const interfaces = [Ci.nsIPresentationSessionTransport,
|
const interfaces = [Ci.nsIPresentationSessionTransport,
|
||||||
Ci.nsIPresentationDataChannelSessionTransportBuilder,
|
Ci.nsIPresentationDataChannelSessionTransportBuilder,
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function ok(a, msg) {
|
function is(a, b, msg) {
|
||||||
alert((a ? "OK " : "KO ") + msg);
|
alert((a === b ? "OK " : "KO ") + msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testConnectionAvailable() {
|
function testConnectionAvailable() {
|
||||||
|
|
|
||||||
|
|
@ -85,7 +85,7 @@ function testConnectionUnavailableDiffOriginInnerIframe() {
|
||||||
function testConnectionListSameObject() {
|
function testConnectionListSameObject() {
|
||||||
return new Promise(function(aResolve, aReject) {
|
return new Promise(function(aResolve, aReject) {
|
||||||
is(navigator.presentation.receiver.connectionList, navigator.presentation.receiver.connectionList, "The promise should be the same object.");
|
is(navigator.presentation.receiver.connectionList, navigator.presentation.receiver.connectionList, "The promise should be the same object.");
|
||||||
var promise = navigator.presentation.receiver.connectionList.then(
|
navigator.presentation.receiver.connectionList.then(
|
||||||
function(aList) {
|
function(aList) {
|
||||||
is(connection, aList.connections[0], "The connection from list and the one from |connectionavailable| event should be the same.");
|
is(connection, aList.connections[0], "The connection from list and the one from |connectionavailable| event should be the same.");
|
||||||
aResolve();
|
aResolve();
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,6 @@ function testStartRequest() {
|
||||||
},
|
},
|
||||||
function(aError) {
|
function(aError) {
|
||||||
ok(false, "Error occurred when establishing a connection: " + aError);
|
ok(false, "Error occurred when establishing a connection: " + aError);
|
||||||
teardown();
|
|
||||||
aReject();
|
aReject();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -65,8 +65,7 @@ function setup() {
|
||||||
aResolve(receiverIframe);
|
aResolve(receiverIframe);
|
||||||
});
|
});
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,8 +74,7 @@ function setup() {
|
||||||
aResolve(receiverIframe);
|
aResolve(receiverIframe);
|
||||||
});
|
});
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -87,13 +87,13 @@ function testOnChangeEvent() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function testConsecutiveGetAvailability() {
|
function testConsecutiveGetAvailability() {
|
||||||
let request = new PresentationRequest("https://example.org");
|
let presRequest = new PresentationRequest("https://example.org");
|
||||||
let firstAvailabilityResolved = false;
|
let firstAvailabilityResolved = false;
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
request.getAvailability().then(function() {
|
presRequest.getAvailability().then(function() {
|
||||||
firstAvailabilityResolved = true;
|
firstAvailabilityResolved = true;
|
||||||
}),
|
}),
|
||||||
request.getAvailability().then(function() {
|
presRequest.getAvailability().then(function() {
|
||||||
ok(firstAvailabilityResolved, "getAvailability() should be resolved in sequence");
|
ok(firstAvailabilityResolved, "getAvailability() should be resolved in sequence");
|
||||||
})
|
})
|
||||||
]).catch(function(aError) {
|
]).catch(function(aError) {
|
||||||
|
|
@ -105,8 +105,8 @@ function testConsecutiveGetAvailability() {
|
||||||
function testUnsupportedDeviceAvailability() {
|
function testUnsupportedDeviceAvailability() {
|
||||||
return Promise.race([
|
return Promise.race([
|
||||||
new Promise(function(aResolve, aReject) {
|
new Promise(function(aResolve, aReject) {
|
||||||
let request = new PresentationRequest("https://test.com");
|
let presRequest = new PresentationRequest("https://test.com");
|
||||||
request.getAvailability().then(function(aAvailability) {
|
presRequest.getAvailability().then(function(aAvailability) {
|
||||||
availability = aAvailability;
|
availability = aAvailability;
|
||||||
aAvailability.onchange = function() {
|
aAvailability.onchange = function() {
|
||||||
availability.onchange = null;
|
availability.onchange = null;
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,8 @@ var serverTransport;
|
||||||
const clientMessage = "Client Message";
|
const clientMessage = "Client Message";
|
||||||
const serverMessage = "Server Message";
|
const serverMessage = "Server Message";
|
||||||
|
|
||||||
const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
|
const { XPCOMUtils } = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm", {});
|
||||||
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
|
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm", {});
|
||||||
|
|
||||||
var isClientReady = false;
|
var isClientReady = false;
|
||||||
var isServerReady = false;
|
var isServerReady = false;
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,7 @@
|
||||||
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
||||||
var receiverUrl = SimpleTest.getTestFileURL("file_presentation_receiver.html");
|
var receiverUrl = SimpleTest.getTestFileURL("file_presentation_receiver.html");
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
return new Promise(function(aResolve, aReject) {
|
return new Promise(function(aResolve, aReject) {
|
||||||
|
|
@ -51,10 +50,10 @@ function setup() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var promise = new Promise(function(aResolve, aReject) {
|
var promise = new Promise(function(aInnerResolve, aInnerReject) {
|
||||||
document.body.appendChild(iframe);
|
document.body.appendChild(iframe);
|
||||||
|
|
||||||
aResolve(iframe);
|
aInnerResolve(iframe);
|
||||||
});
|
});
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,7 @@ var nonReceiverUrl = SimpleTest.getTestFileURL("file_presentation_non_receiver.h
|
||||||
var isReceiverFinished = false;
|
var isReceiverFinished = false;
|
||||||
var isNonReceiverFinished = false;
|
var isNonReceiverFinished = false;
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
var receiverIframe;
|
var receiverIframe;
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
|
|
@ -69,14 +68,14 @@ function setup() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var promise = new Promise(function(aResolve, aReject) {
|
var promise = new Promise(function(aInnerResolve, aInnerReject) {
|
||||||
document.body.appendChild(receiverIframe);
|
document.body.appendChild(receiverIframe);
|
||||||
receiverIframe.addEventListener("mozbrowserloadstart", function() {
|
receiverIframe.addEventListener("mozbrowserloadstart", function() {
|
||||||
var mm = SpecialPowers.getBrowserFrameMessageManager(receiverIframe);
|
var mm = SpecialPowers.getBrowserFrameMessageManager(receiverIframe);
|
||||||
mm.loadFrameScript("data:,(" + loadPrivilegedScriptTest.toString() + ")();", false);
|
mm.loadFrameScript("data:,(" + loadPrivilegedScriptTest.toString() + ")();", false);
|
||||||
}, {once: true});
|
}, {once: true});
|
||||||
|
|
||||||
aResolve(receiverIframe);
|
aInnerResolve(receiverIframe);
|
||||||
});
|
});
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -78,12 +78,12 @@ let testRequestAndReceiver = (request) => new Promise((resolve, reject) => {
|
||||||
resolve(iframe);
|
resolve(iframe);
|
||||||
}, {once: true});
|
}, {once: true});
|
||||||
|
|
||||||
let promise = new Promise((resolve) => {
|
let promise = new Promise((aInnerResolve) => {
|
||||||
document.body.appendChild(iframe);
|
document.body.appendChild(iframe);
|
||||||
resolve(iframe);
|
aInnerResolve(iframe);
|
||||||
});
|
});
|
||||||
|
|
||||||
let obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"].getService(SpecialPowers.Ci.nsIObserverService);
|
let obs = SpecialPowers.Services.obs;
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,49 +3,44 @@
|
||||||
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
||||||
var receiverUrl = SimpleTest.getTestFileURL("file_presentation_receiver_auxiliary_navigation.html");
|
var receiverUrl = SimpleTest.getTestFileURL("file_presentation_receiver_auxiliary_navigation.html");
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
return new Promise(function(aResolve, aReject) {
|
gScript.sendAsyncMessage("trigger-device-add");
|
||||||
gScript.sendAsyncMessage("trigger-device-add");
|
|
||||||
|
|
||||||
var iframe = document.createElement("iframe");
|
var iframe = document.createElement("iframe");
|
||||||
iframe.setAttribute("mozbrowser", "true");
|
iframe.setAttribute("mozbrowser", "true");
|
||||||
iframe.setAttribute("mozpresentation", receiverUrl);
|
iframe.setAttribute("mozpresentation", receiverUrl);
|
||||||
var oop = !location.pathname.includes("_inproc");
|
var oop = !location.pathname.includes("_inproc");
|
||||||
iframe.setAttribute("remote", oop);
|
iframe.setAttribute("remote", oop);
|
||||||
iframe.setAttribute("src", receiverUrl);
|
iframe.setAttribute("src", receiverUrl);
|
||||||
|
|
||||||
// This event is triggered when the iframe calls "postMessage".
|
// This event is triggered when the iframe calls "postMessage".
|
||||||
iframe.addEventListener("mozbrowsershowmodalprompt", function listener(aEvent) {
|
iframe.addEventListener("mozbrowsershowmodalprompt", function listener(aEvent) {
|
||||||
var message = aEvent.detail.message;
|
var message = aEvent.detail.message;
|
||||||
if (/^OK /.exec(message)) {
|
if (/^OK /.exec(message)) {
|
||||||
ok(true, "Message from iframe: " + message);
|
ok(true, "Message from iframe: " + message);
|
||||||
} else if (/^KO /.exec(message)) {
|
} else if (/^KO /.exec(message)) {
|
||||||
ok(false, "Message from iframe: " + message);
|
ok(false, "Message from iframe: " + message);
|
||||||
} else if (/^INFO /.exec(message)) {
|
} else if (/^INFO /.exec(message)) {
|
||||||
info("Message from iframe: " + message);
|
info("Message from iframe: " + message);
|
||||||
} else if (/^COMMAND /.exec(message)) {
|
} else if (/^COMMAND /.exec(message)) {
|
||||||
var command = JSON.parse(message.replace(/^COMMAND /, ""));
|
var command = JSON.parse(message.replace(/^COMMAND /, ""));
|
||||||
gScript.sendAsyncMessage(command.name, command.data);
|
gScript.sendAsyncMessage(command.name, command.data);
|
||||||
} else if (/^DONE$/.exec(message)) {
|
} else if (/^DONE$/.exec(message)) {
|
||||||
ok(true, "Messaging from iframe complete.");
|
ok(true, "Messaging from iframe complete.");
|
||||||
iframe.removeEventListener("mozbrowsershowmodalprompt", listener);
|
iframe.removeEventListener("mozbrowsershowmodalprompt", listener);
|
||||||
|
|
||||||
teardown();
|
teardown();
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
var promise = new Promise(function(aResolve, aReject) {
|
|
||||||
document.body.appendChild(iframe);
|
|
||||||
|
|
||||||
aResolve(iframe);
|
|
||||||
});
|
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
|
||||||
|
|
||||||
aResolve();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var promise = new Promise(function(aResolve, aReject) {
|
||||||
|
document.body.appendChild(iframe);
|
||||||
|
|
||||||
|
aResolve(iframe);
|
||||||
|
});
|
||||||
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
}
|
}
|
||||||
|
|
||||||
function teardown() {
|
function teardown() {
|
||||||
|
|
@ -59,7 +54,7 @@ function teardown() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function runTests() {
|
function runTests() {
|
||||||
setup().then();
|
setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
SimpleTest.waitForExplicitFinish();
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
|
|
||||||
|
|
@ -20,71 +20,66 @@
|
||||||
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
||||||
var receiverUrl = SimpleTest.getTestFileURL("file_presentation_receiver.html");
|
var receiverUrl = SimpleTest.getTestFileURL("file_presentation_receiver.html");
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
return new Promise(function(aResolve, aReject) {
|
gScript.sendAsyncMessage("trigger-device-add");
|
||||||
gScript.sendAsyncMessage("trigger-device-add");
|
|
||||||
|
|
||||||
var iframe = document.createElement("iframe");
|
var iframe = document.createElement("iframe");
|
||||||
iframe.setAttribute("mozbrowser", "true");
|
iframe.setAttribute("mozbrowser", "true");
|
||||||
iframe.setAttribute("mozpresentation", receiverUrl);
|
iframe.setAttribute("mozpresentation", receiverUrl);
|
||||||
iframe.setAttribute("src", receiverUrl);
|
iframe.setAttribute("src", receiverUrl);
|
||||||
|
|
||||||
// This event is triggered when the iframe calls "postMessage".
|
// This event is triggered when the iframe calls "postMessage".
|
||||||
iframe.addEventListener("mozbrowsershowmodalprompt", function listener(aEvent) {
|
iframe.addEventListener("mozbrowsershowmodalprompt", function listener(aEvent) {
|
||||||
var message = aEvent.detail.message;
|
var message = aEvent.detail.message;
|
||||||
if (/^OK /.exec(message)) {
|
if (/^OK /.exec(message)) {
|
||||||
ok(true, "Message from iframe: " + message);
|
ok(true, "Message from iframe: " + message);
|
||||||
} else if (/^KO /.exec(message)) {
|
} else if (/^KO /.exec(message)) {
|
||||||
ok(false, "Message from iframe: " + message);
|
ok(false, "Message from iframe: " + message);
|
||||||
} else if (/^INFO /.exec(message)) {
|
} else if (/^INFO /.exec(message)) {
|
||||||
info("Message from iframe: " + message);
|
info("Message from iframe: " + message);
|
||||||
} else if (/^COMMAND /.exec(message)) {
|
} else if (/^COMMAND /.exec(message)) {
|
||||||
var command = JSON.parse(message.replace(/^COMMAND /, ""));
|
var command = JSON.parse(message.replace(/^COMMAND /, ""));
|
||||||
gScript.sendAsyncMessage(command.name, command.data);
|
gScript.sendAsyncMessage(command.name, command.data);
|
||||||
} else if (/^DONE$/.exec(message)) {
|
} else if (/^DONE$/.exec(message)) {
|
||||||
ok(true, "Messaging from iframe complete.");
|
ok(true, "Messaging from iframe complete.");
|
||||||
iframe.removeEventListener("mozbrowsershowmodalprompt", listener);
|
iframe.removeEventListener("mozbrowsershowmodalprompt", listener);
|
||||||
|
|
||||||
teardown();
|
teardown();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var promise = new Promise(function(aResolve, aReject) {
|
var promise = new Promise(function(aResolve, aReject) {
|
||||||
document.body.appendChild(iframe);
|
document.body.appendChild(iframe);
|
||||||
|
|
||||||
aResolve(iframe);
|
aResolve(iframe);
|
||||||
});
|
});
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
|
|
||||||
gScript.addMessageListener("offer-received", function offerReceivedHandler() {
|
gScript.addMessageListener("offer-received", function offerReceivedHandler() {
|
||||||
gScript.removeMessageListener("offer-received", offerReceivedHandler);
|
gScript.removeMessageListener("offer-received", offerReceivedHandler);
|
||||||
info("An offer is received.");
|
info("An offer is received.");
|
||||||
});
|
});
|
||||||
|
|
||||||
gScript.addMessageListener("answer-sent", function answerSentHandler(aIsValid) {
|
gScript.addMessageListener("answer-sent", function answerSentHandler(aIsValid) {
|
||||||
gScript.removeMessageListener("answer-sent", answerSentHandler);
|
gScript.removeMessageListener("answer-sent", answerSentHandler);
|
||||||
ok(aIsValid, "A valid answer is sent.");
|
ok(aIsValid, "A valid answer is sent.");
|
||||||
});
|
});
|
||||||
|
|
||||||
gScript.addMessageListener("control-channel-closed", function controlChannelClosedHandler(aReason) {
|
gScript.addMessageListener("control-channel-closed", function controlChannelClosedHandler(aReason) {
|
||||||
gScript.removeMessageListener("control-channel-closed", controlChannelClosedHandler);
|
gScript.removeMessageListener("control-channel-closed", controlChannelClosedHandler);
|
||||||
is(aReason, SpecialPowers.Cr.NS_OK, "The control channel is closed normally.");
|
is(aReason, SpecialPowers.Cr.NS_OK, "The control channel is closed normally.");
|
||||||
});
|
});
|
||||||
|
|
||||||
gScript.addMessageListener("data-transport-notification-enabled", function dataTransportNotificationEnabledHandler() {
|
gScript.addMessageListener("data-transport-notification-enabled", function dataTransportNotificationEnabledHandler() {
|
||||||
gScript.removeMessageListener("data-transport-notification-enabled", dataTransportNotificationEnabledHandler);
|
gScript.removeMessageListener("data-transport-notification-enabled", dataTransportNotificationEnabledHandler);
|
||||||
info("Data notification is enabled for data transport channel.");
|
info("Data notification is enabled for data transport channel.");
|
||||||
});
|
});
|
||||||
|
|
||||||
gScript.addMessageListener("data-transport-closed", function dataTransportClosedHandler(aReason) {
|
gScript.addMessageListener("data-transport-closed", function dataTransportClosedHandler(aReason) {
|
||||||
gScript.removeMessageListener("data-transport-closed", dataTransportClosedHandler);
|
gScript.removeMessageListener("data-transport-closed", dataTransportClosedHandler);
|
||||||
is(aReason, SpecialPowers.Cr.NS_OK, "The data transport should be closed normally.");
|
is(aReason, SpecialPowers.Cr.NS_OK, "The data transport should be closed normally.");
|
||||||
});
|
|
||||||
|
|
||||||
aResolve();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -114,8 +109,8 @@ function teardown() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function runTests() {
|
function runTests() {
|
||||||
setup().
|
setup();
|
||||||
then(testIncomingSessionRequest);
|
testIncomingSessionRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
SimpleTest.waitForExplicitFinish();
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
|
|
||||||
|
|
@ -17,50 +17,45 @@
|
||||||
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
||||||
var receiverUrl = SimpleTest.getTestFileURL("file_presentation_receiver_establish_connection_error.html");
|
var receiverUrl = SimpleTest.getTestFileURL("file_presentation_receiver_establish_connection_error.html");
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
return new Promise(function(aResolve, aReject) {
|
gScript.sendAsyncMessage("trigger-device-add");
|
||||||
gScript.sendAsyncMessage("trigger-device-add");
|
|
||||||
|
|
||||||
var iframe = document.createElement("iframe");
|
var iframe = document.createElement("iframe");
|
||||||
iframe.setAttribute("src", receiverUrl);
|
iframe.setAttribute("src", receiverUrl);
|
||||||
iframe.setAttribute("mozbrowser", "true");
|
iframe.setAttribute("mozbrowser", "true");
|
||||||
iframe.setAttribute("mozpresentation", receiverUrl);
|
iframe.setAttribute("mozpresentation", receiverUrl);
|
||||||
|
|
||||||
// This event is triggered when the iframe calls "alert".
|
// This event is triggered when the iframe calls "alert".
|
||||||
iframe.addEventListener("mozbrowsershowmodalprompt", function receiverListener(evt) {
|
iframe.addEventListener("mozbrowsershowmodalprompt", function receiverListener(evt) {
|
||||||
var message = evt.detail.message;
|
var message = evt.detail.message;
|
||||||
if (/^OK /.exec(message)) {
|
if (/^OK /.exec(message)) {
|
||||||
ok(true, message.replace(/^OK /, ""));
|
ok(true, message.replace(/^OK /, ""));
|
||||||
} else if (/^KO /.exec(message)) {
|
} else if (/^KO /.exec(message)) {
|
||||||
ok(false, message.replace(/^KO /, ""));
|
ok(false, message.replace(/^KO /, ""));
|
||||||
} else if (/^INFO /.exec(message)) {
|
} else if (/^INFO /.exec(message)) {
|
||||||
info(message.replace(/^INFO /, ""));
|
info(message.replace(/^INFO /, ""));
|
||||||
} else if (/^COMMAND /.exec(message)) {
|
} else if (/^COMMAND /.exec(message)) {
|
||||||
var command = JSON.parse(message.replace(/^COMMAND /, ""));
|
var command = JSON.parse(message.replace(/^COMMAND /, ""));
|
||||||
gScript.sendAsyncMessage(command.name, command.data);
|
gScript.sendAsyncMessage(command.name, command.data);
|
||||||
} else if (/^DONE$/.exec(message)) {
|
} else if (/^DONE$/.exec(message)) {
|
||||||
iframe.removeEventListener("mozbrowsershowmodalprompt",
|
iframe.removeEventListener("mozbrowsershowmodalprompt",
|
||||||
receiverListener);
|
receiverListener);
|
||||||
teardown();
|
teardown();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var promise = new Promise(function(aResolve, aReject) {
|
var promise = new Promise(function(aResolve, aReject) {
|
||||||
document.body.appendChild(iframe);
|
document.body.appendChild(iframe);
|
||||||
|
|
||||||
aResolve(iframe);
|
aResolve(iframe);
|
||||||
});
|
});
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
|
|
||||||
gScript.addMessageListener("control-channel-closed", function controlChannelClosedHandler(aReason) {
|
gScript.addMessageListener("control-channel-closed", function controlChannelClosedHandler(aReason) {
|
||||||
gScript.removeMessageListener("control-channel-closed", controlChannelClosedHandler);
|
gScript.removeMessageListener("control-channel-closed", controlChannelClosedHandler);
|
||||||
is(aReason, 0x80004004 /* NS_ERROR_ABORT */, "The control channel is closed abnormally.");
|
is(aReason, 0x80004004 /* NS_ERROR_ABORT */, "The control channel is closed abnormally.");
|
||||||
});
|
|
||||||
|
|
||||||
aResolve();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -88,8 +83,8 @@ function teardown() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function runTests() {
|
function runTests() {
|
||||||
setup().
|
setup();
|
||||||
then(testIncomingSessionRequest);
|
testIncomingSessionRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
SimpleTest.waitForExplicitFinish();
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
|
|
||||||
|
|
@ -16,20 +16,15 @@
|
||||||
|
|
||||||
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
return new Promise(function(aResolve, aReject) {
|
gScript.sendAsyncMessage("trigger-device-add");
|
||||||
gScript.sendAsyncMessage("trigger-device-add");
|
|
||||||
|
|
||||||
var promise = new Promise(function(aResolve, aReject) {
|
var promise = new Promise(function(aResolve, aReject) {
|
||||||
// In order to trigger timeout, do not resolve the promise.
|
// In order to trigger timeout, do not resolve the promise.
|
||||||
});
|
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
|
||||||
|
|
||||||
aResolve();
|
|
||||||
});
|
});
|
||||||
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
}
|
}
|
||||||
|
|
||||||
function testIncomingSessionRequestReceiverLaunchTimeout() {
|
function testIncomingSessionRequestReceiverLaunchTimeout() {
|
||||||
|
|
@ -60,8 +55,8 @@ function teardown() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function runTests() {
|
function runTests() {
|
||||||
setup().
|
setup();
|
||||||
then(testIncomingSessionRequestReceiverLaunchTimeout).
|
testIncomingSessionRequestReceiverLaunchTimeout().
|
||||||
then(teardown);
|
then(teardown);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,31 +3,26 @@
|
||||||
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
var gScript = SpecialPowers.loadChromeScript(SimpleTest.getTestFileURL("PresentationSessionChromeScript.js"));
|
||||||
var receiverUrl = SimpleTest.getTestFileURL("file_presentation_unknown_content_type.test");
|
var receiverUrl = SimpleTest.getTestFileURL("file_presentation_unknown_content_type.test");
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
|
|
||||||
var receiverIframe;
|
var receiverIframe;
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
return new Promise(function(aResolve, aReject) {
|
gScript.sendAsyncMessage("trigger-device-add");
|
||||||
gScript.sendAsyncMessage("trigger-device-add");
|
|
||||||
|
|
||||||
receiverIframe = document.createElement("iframe");
|
receiverIframe = document.createElement("iframe");
|
||||||
receiverIframe.setAttribute("mozbrowser", "true");
|
receiverIframe.setAttribute("mozbrowser", "true");
|
||||||
receiverIframe.setAttribute("mozpresentation", receiverUrl);
|
receiverIframe.setAttribute("mozpresentation", receiverUrl);
|
||||||
receiverIframe.setAttribute("src", receiverUrl);
|
receiverIframe.setAttribute("src", receiverUrl);
|
||||||
var oop = !location.pathname.includes("_inproc");
|
var oop = !location.pathname.includes("_inproc");
|
||||||
receiverIframe.setAttribute("remote", oop);
|
receiverIframe.setAttribute("remote", oop);
|
||||||
|
|
||||||
var promise = new Promise(function(aResolve, aReject) {
|
var promise = new Promise(function(aResolve, aReject) {
|
||||||
document.body.appendChild(receiverIframe);
|
document.body.appendChild(receiverIframe);
|
||||||
|
|
||||||
aResolve(receiverIframe);
|
aResolve(receiverIframe);
|
||||||
});
|
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
|
||||||
|
|
||||||
aResolve();
|
|
||||||
});
|
});
|
||||||
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
}
|
}
|
||||||
|
|
||||||
function testIncomingSessionRequestReceiverLaunchUnknownContentType() {
|
function testIncomingSessionRequestReceiverLaunchUnknownContentType() {
|
||||||
|
|
@ -67,9 +62,9 @@ function teardown() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function runTests() {
|
function runTests() {
|
||||||
setup().
|
setup();
|
||||||
then(testIncomingSessionRequestReceiverLaunchUnknownContentType).
|
|
||||||
then(teardown);
|
testIncomingSessionRequestReceiverLaunchUnknownContentType().then(teardown);
|
||||||
}
|
}
|
||||||
|
|
||||||
SimpleTest.waitForExplicitFinish();
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
|
|
||||||
|
|
@ -24,109 +24,104 @@ var nonReceiverUrl = SimpleTest.getTestFileURL("file_presentation_non_receiver.h
|
||||||
var isReceiverFinished = false;
|
var isReceiverFinished = false;
|
||||||
var isNonReceiverFinished = false;
|
var isNonReceiverFinished = false;
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
|
|
||||||
function setup() {
|
function setup() {
|
||||||
return new Promise(function(aResolve, aReject) {
|
gScript.sendAsyncMessage("trigger-device-add");
|
||||||
gScript.sendAsyncMessage("trigger-device-add");
|
|
||||||
|
|
||||||
// Create a receiver OOP iframe.
|
// Create a receiver OOP iframe.
|
||||||
var receiverIframe = document.createElement("iframe");
|
var receiverIframe = document.createElement("iframe");
|
||||||
receiverIframe.setAttribute("remote", "true");
|
receiverIframe.setAttribute("remote", "true");
|
||||||
receiverIframe.setAttribute("mozbrowser", "true");
|
receiverIframe.setAttribute("mozbrowser", "true");
|
||||||
receiverIframe.setAttribute("mozpresentation", receiverUrl);
|
receiverIframe.setAttribute("mozpresentation", receiverUrl);
|
||||||
receiverIframe.setAttribute("src", receiverUrl);
|
receiverIframe.setAttribute("src", receiverUrl);
|
||||||
|
|
||||||
// This event is triggered when the iframe calls "alert".
|
// This event is triggered when the iframe calls "alert".
|
||||||
receiverIframe.addEventListener("mozbrowsershowmodalprompt", function receiverListener(aEvent) {
|
receiverIframe.addEventListener("mozbrowsershowmodalprompt", function receiverListener(aEvent) {
|
||||||
var message = aEvent.detail.message;
|
var message = aEvent.detail.message;
|
||||||
if (/^OK /.exec(message)) {
|
if (/^OK /.exec(message)) {
|
||||||
ok(true, "Message from iframe: " + message);
|
ok(true, "Message from iframe: " + message);
|
||||||
} else if (/^KO /.exec(message)) {
|
} else if (/^KO /.exec(message)) {
|
||||||
ok(false, "Message from iframe: " + message);
|
ok(false, "Message from iframe: " + message);
|
||||||
} else if (/^INFO /.exec(message)) {
|
} else if (/^INFO /.exec(message)) {
|
||||||
info("Message from iframe: " + message);
|
info("Message from iframe: " + message);
|
||||||
} else if (/^COMMAND /.exec(message)) {
|
} else if (/^COMMAND /.exec(message)) {
|
||||||
var command = JSON.parse(message.replace(/^COMMAND /, ""));
|
var command = JSON.parse(message.replace(/^COMMAND /, ""));
|
||||||
gScript.sendAsyncMessage(command.name, command.data);
|
gScript.sendAsyncMessage(command.name, command.data);
|
||||||
} else if (/^DONE$/.exec(message)) {
|
} else if (/^DONE$/.exec(message)) {
|
||||||
ok(true, "Messaging from iframe complete.");
|
ok(true, "Messaging from iframe complete.");
|
||||||
receiverIframe.removeEventListener("mozbrowsershowmodalprompt", receiverListener);
|
receiverIframe.removeEventListener("mozbrowsershowmodalprompt", receiverListener);
|
||||||
|
|
||||||
isReceiverFinished = true;
|
isReceiverFinished = true;
|
||||||
|
|
||||||
if (isNonReceiverFinished) {
|
if (isNonReceiverFinished) {
|
||||||
teardown();
|
teardown();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
|
||||||
var promise = new Promise(function(aResolve, aReject) {
|
var promise = new Promise(function(aResolve, aReject) {
|
||||||
document.body.appendChild(receiverIframe);
|
document.body.appendChild(receiverIframe);
|
||||||
|
|
||||||
aResolve(receiverIframe);
|
aResolve(receiverIframe);
|
||||||
});
|
});
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
|
|
||||||
// Create a non-receiver OOP iframe.
|
// Create a non-receiver OOP iframe.
|
||||||
var nonReceiverIframe = document.createElement("iframe");
|
var nonReceiverIframe = document.createElement("iframe");
|
||||||
nonReceiverIframe.setAttribute("remote", "true");
|
nonReceiverIframe.setAttribute("remote", "true");
|
||||||
nonReceiverIframe.setAttribute("mozbrowser", "true");
|
nonReceiverIframe.setAttribute("mozbrowser", "true");
|
||||||
nonReceiverIframe.setAttribute("src", nonReceiverUrl);
|
nonReceiverIframe.setAttribute("src", nonReceiverUrl);
|
||||||
|
|
||||||
// This event is triggered when the iframe calls "alert".
|
// This event is triggered when the iframe calls "alert".
|
||||||
nonReceiverIframe.addEventListener("mozbrowsershowmodalprompt", function nonReceiverListener(aEvent) {
|
nonReceiverIframe.addEventListener("mozbrowsershowmodalprompt", function nonReceiverListener(aEvent) {
|
||||||
var message = aEvent.detail.message;
|
var message = aEvent.detail.message;
|
||||||
if (/^OK /.exec(message)) {
|
if (/^OK /.exec(message)) {
|
||||||
ok(true, "Message from iframe: " + message);
|
ok(true, "Message from iframe: " + message);
|
||||||
} else if (/^KO /.exec(message)) {
|
} else if (/^KO /.exec(message)) {
|
||||||
ok(false, "Message from iframe: " + message);
|
ok(false, "Message from iframe: " + message);
|
||||||
} else if (/^INFO /.exec(message)) {
|
} else if (/^INFO /.exec(message)) {
|
||||||
info("Message from iframe: " + message);
|
info("Message from iframe: " + message);
|
||||||
} else if (/^COMMAND /.exec(message)) {
|
} else if (/^COMMAND /.exec(message)) {
|
||||||
var command = JSON.parse(message.replace(/^COMMAND /, ""));
|
var command = JSON.parse(message.replace(/^COMMAND /, ""));
|
||||||
gScript.sendAsyncMessage(command.name, command.data);
|
gScript.sendAsyncMessage(command.name, command.data);
|
||||||
} else if (/^DONE$/.exec(message)) {
|
} else if (/^DONE$/.exec(message)) {
|
||||||
ok(true, "Messaging from iframe complete.");
|
ok(true, "Messaging from iframe complete.");
|
||||||
nonReceiverIframe.removeEventListener("mozbrowsershowmodalprompt", nonReceiverListener);
|
nonReceiverIframe.removeEventListener("mozbrowsershowmodalprompt", nonReceiverListener);
|
||||||
|
|
||||||
isNonReceiverFinished = true;
|
isNonReceiverFinished = true;
|
||||||
|
|
||||||
if (isReceiverFinished) {
|
if (isReceiverFinished) {
|
||||||
teardown();
|
teardown();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
|
||||||
document.body.appendChild(nonReceiverIframe);
|
document.body.appendChild(nonReceiverIframe);
|
||||||
|
|
||||||
gScript.addMessageListener("offer-received", function offerReceivedHandler() {
|
gScript.addMessageListener("offer-received", function offerReceivedHandler() {
|
||||||
gScript.removeMessageListener("offer-received", offerReceivedHandler);
|
gScript.removeMessageListener("offer-received", offerReceivedHandler);
|
||||||
info("An offer is received.");
|
info("An offer is received.");
|
||||||
});
|
});
|
||||||
|
|
||||||
gScript.addMessageListener("answer-sent", function answerSentHandler(aIsValid) {
|
gScript.addMessageListener("answer-sent", function answerSentHandler(aIsValid) {
|
||||||
gScript.removeMessageListener("answer-sent", answerSentHandler);
|
gScript.removeMessageListener("answer-sent", answerSentHandler);
|
||||||
ok(aIsValid, "A valid answer is sent.");
|
ok(aIsValid, "A valid answer is sent.");
|
||||||
});
|
});
|
||||||
|
|
||||||
gScript.addMessageListener("control-channel-closed", function controlChannelClosedHandler(aReason) {
|
gScript.addMessageListener("control-channel-closed", function controlChannelClosedHandler(aReason) {
|
||||||
gScript.removeMessageListener("control-channel-closed", controlChannelClosedHandler);
|
gScript.removeMessageListener("control-channel-closed", controlChannelClosedHandler);
|
||||||
is(aReason, SpecialPowers.Cr.NS_OK, "The control channel is closed normally.");
|
is(aReason, SpecialPowers.Cr.NS_OK, "The control channel is closed normally.");
|
||||||
});
|
});
|
||||||
|
|
||||||
gScript.addMessageListener("data-transport-notification-enabled", function dataTransportNotificationEnabledHandler() {
|
gScript.addMessageListener("data-transport-notification-enabled", function dataTransportNotificationEnabledHandler() {
|
||||||
gScript.removeMessageListener("data-transport-notification-enabled", dataTransportNotificationEnabledHandler);
|
gScript.removeMessageListener("data-transport-notification-enabled", dataTransportNotificationEnabledHandler);
|
||||||
info("Data notification is enabled for data transport channel.");
|
info("Data notification is enabled for data transport channel.");
|
||||||
});
|
});
|
||||||
|
|
||||||
gScript.addMessageListener("data-transport-closed", function dataTransportClosedHandler(aReason) {
|
gScript.addMessageListener("data-transport-closed", function dataTransportClosedHandler(aReason) {
|
||||||
gScript.removeMessageListener("data-transport-closed", dataTransportClosedHandler);
|
gScript.removeMessageListener("data-transport-closed", dataTransportClosedHandler);
|
||||||
is(aReason, SpecialPowers.Cr.NS_OK, "The data transport should be closed normally.");
|
is(aReason, SpecialPowers.Cr.NS_OK, "The data transport should be closed normally.");
|
||||||
});
|
|
||||||
|
|
||||||
aResolve();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -154,8 +149,8 @@ function teardown() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function runTests() {
|
function runTests() {
|
||||||
setup().
|
setup();
|
||||||
then(testIncomingSessionRequest);
|
testIncomingSessionRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
SimpleTest.waitForExplicitFinish();
|
SimpleTest.waitForExplicitFinish();
|
||||||
|
|
|
||||||
|
|
@ -65,8 +65,7 @@ function setup() {
|
||||||
aResolve(receiverIframe);
|
aResolve(receiverIframe);
|
||||||
});
|
});
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,7 @@ function setup() {
|
||||||
aResolve(receiverIframe);
|
aResolve(receiverIframe);
|
||||||
});
|
});
|
||||||
|
|
||||||
var obs = SpecialPowers.Cc["@mozilla.org/observer-service;1"]
|
var obs = SpecialPowers.Services.obs;
|
||||||
.getService(SpecialPowers.Ci.nsIObserverService);
|
|
||||||
obs.notifyObservers(promise, "setup-request-promise");
|
obs.notifyObservers(promise, "setup-request-promise");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -248,7 +248,7 @@ function registerService() {
|
||||||
serviceRegistered: 0,
|
serviceRegistered: 0,
|
||||||
serviceUnregistered: 0
|
serviceUnregistered: 0
|
||||||
};
|
};
|
||||||
let contractHook = new ContractHook(SD_CONTRACT_ID, mockObj);
|
new ContractHook(SD_CONTRACT_ID, mockObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
|
|
||||||
Assert.equal(mockObj.serviceRegistered, 0);
|
Assert.equal(mockObj.serviceRegistered, 0);
|
||||||
|
|
@ -291,7 +291,7 @@ function noRegisterService() {
|
||||||
resolveService(serviceInfo, listener) {},
|
resolveService(serviceInfo, listener) {},
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHook = new ContractHook(SD_CONTRACT_ID, mockObj);
|
new ContractHook(SD_CONTRACT_ID, mockObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
|
|
||||||
// Try register
|
// Try register
|
||||||
|
|
@ -337,7 +337,7 @@ function registerServiceDynamically() {
|
||||||
serviceRegistered: 0,
|
serviceRegistered: 0,
|
||||||
serviceUnregistered: 0
|
serviceUnregistered: 0
|
||||||
};
|
};
|
||||||
let contractHook = new ContractHook(SD_CONTRACT_ID, mockObj);
|
new ContractHook(SD_CONTRACT_ID, mockObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
|
|
||||||
Assert.equal(mockObj.serviceRegistered, 0);
|
Assert.equal(mockObj.serviceRegistered, 0);
|
||||||
|
|
@ -407,7 +407,7 @@ function addDevice() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHook = new ContractHook(SD_CONTRACT_ID, mockObj);
|
new ContractHook(SD_CONTRACT_ID, mockObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = new TestPresentationDeviceListener();
|
let listener = new TestPresentationDeviceListener();
|
||||||
Assert.equal(listener.count(), 0);
|
Assert.equal(listener.count(), 0);
|
||||||
|
|
@ -457,7 +457,7 @@ function filterDevice() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHook = new ContractHook(SD_CONTRACT_ID, mockObj);
|
new ContractHook(SD_CONTRACT_ID, mockObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = {
|
let listener = {
|
||||||
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
||||||
|
|
@ -493,8 +493,6 @@ function handleSessionRequest() {
|
||||||
Services.prefs.setBoolPref(PREF_DISCOVERY, true);
|
Services.prefs.setBoolPref(PREF_DISCOVERY, true);
|
||||||
Services.prefs.setBoolPref(PREF_DISCOVERABLE, false);
|
Services.prefs.setBoolPref(PREF_DISCOVERABLE, false);
|
||||||
|
|
||||||
const testUrl = "http://example.com";
|
|
||||||
const testPresentationId = "test-presentation-id";
|
|
||||||
const testDeviceName = "test-device-name";
|
const testDeviceName = "test-device-name";
|
||||||
|
|
||||||
Services.prefs.setCharPref(PREF_DEVICENAME, testDeviceName);
|
Services.prefs.setCharPref(PREF_DEVICENAME, testDeviceName);
|
||||||
|
|
@ -542,8 +540,8 @@ function handleSessionRequest() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHookSD = new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
||||||
let contractHookServer = new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = {
|
let listener = {
|
||||||
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
||||||
|
|
@ -555,7 +553,7 @@ function handleSessionRequest() {
|
||||||
|
|
||||||
provider.listener = listener;
|
provider.listener = listener;
|
||||||
|
|
||||||
let controlChannel = listener.device.establishControlChannel();
|
listener.device.establishControlChannel();
|
||||||
|
|
||||||
Assert.equal(mockServerObj.request.deviceInfo.id, mockDevice.host);
|
Assert.equal(mockServerObj.request.deviceInfo.id, mockDevice.host);
|
||||||
Assert.equal(mockServerObj.request.deviceInfo.address, mockDevice.host);
|
Assert.equal(mockServerObj.request.deviceInfo.address, mockDevice.host);
|
||||||
|
|
@ -608,8 +606,8 @@ function handleOnSessionRequest() {
|
||||||
listener: null,
|
listener: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHookSD = new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
||||||
let contractHookServer = new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = {
|
let listener = {
|
||||||
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
||||||
|
|
@ -675,8 +673,8 @@ function handleOnSessionRequestFromUnknownDevice() {
|
||||||
listener: null,
|
listener: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHookSD = new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
||||||
let contractHookServer = new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = {
|
let listener = {
|
||||||
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
||||||
|
|
@ -729,7 +727,6 @@ function handleOnSessionRequestFromUnknownDevice() {
|
||||||
function noAddDevice() {
|
function noAddDevice() {
|
||||||
Services.prefs.setBoolPref(PREF_DISCOVERY, false);
|
Services.prefs.setBoolPref(PREF_DISCOVERY, false);
|
||||||
|
|
||||||
let mockDevice = createDevice("device.local", 12345, "service.name", SERVICE_TYPE);
|
|
||||||
let mockObj = {
|
let mockObj = {
|
||||||
QueryInterface: ChromeUtils.generateQI([Ci.nsIDNSServiceDiscovery]),
|
QueryInterface: ChromeUtils.generateQI([Ci.nsIDNSServiceDiscovery]),
|
||||||
startDiscovery(serviceType, listener) {
|
startDiscovery(serviceType, listener) {
|
||||||
|
|
@ -739,7 +736,7 @@ function noAddDevice() {
|
||||||
resolveService(serviceInfo, listener) {
|
resolveService(serviceInfo, listener) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let contractHook = new ContractHook(SD_CONTRACT_ID, mockObj);
|
new ContractHook(SD_CONTRACT_ID, mockObj);
|
||||||
|
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = {
|
let listener = {
|
||||||
|
|
@ -820,8 +817,8 @@ function ignoreIncompatibleDevice() {
|
||||||
listener: null,
|
listener: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHookSD = new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
||||||
let contractHookServer = new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = new TestPresentationDeviceListener();
|
let listener = new TestPresentationDeviceListener();
|
||||||
|
|
||||||
|
|
@ -905,8 +902,8 @@ function ignoreSelfDevice() {
|
||||||
listener: null,
|
listener: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHookSD = new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
||||||
let contractHookServer = new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = new TestPresentationDeviceListener();
|
let listener = new TestPresentationDeviceListener();
|
||||||
|
|
||||||
|
|
@ -957,7 +954,7 @@ function addDeviceDynamically() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHook = new ContractHook(SD_CONTRACT_ID, mockObj);
|
new ContractHook(SD_CONTRACT_ID, mockObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = new TestPresentationDeviceListener();
|
let listener = new TestPresentationDeviceListener();
|
||||||
provider.listener = listener;
|
provider.listener = listener;
|
||||||
|
|
@ -1022,7 +1019,7 @@ function updateDevice() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHook = new ContractHook(SD_CONTRACT_ID, mockObj);
|
new ContractHook(SD_CONTRACT_ID, mockObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = {
|
let listener = {
|
||||||
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
||||||
|
|
@ -1113,7 +1110,7 @@ function diffDiscovery() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHook = new ContractHook(SD_CONTRACT_ID, mockObj);
|
new ContractHook(SD_CONTRACT_ID, mockObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = new TestPresentationDeviceListener();
|
let listener = new TestPresentationDeviceListener();
|
||||||
Assert.equal(listener.count(), 0);
|
Assert.equal(listener.count(), 0);
|
||||||
|
|
@ -1192,7 +1189,7 @@ function serverClosed() {
|
||||||
serviceRegistered: 0,
|
serviceRegistered: 0,
|
||||||
serviceUnregistered: 0
|
serviceUnregistered: 0
|
||||||
};
|
};
|
||||||
let contractHook = new ContractHook(SD_CONTRACT_ID, mockObj);
|
new ContractHook(SD_CONTRACT_ID, mockObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
|
|
||||||
Assert.equal(mockObj.serviceRegistered, 0);
|
Assert.equal(mockObj.serviceRegistered, 0);
|
||||||
|
|
@ -1272,8 +1269,8 @@ function serverRetry() {
|
||||||
listener: null,
|
listener: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
let contractHookSD = new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
new ContractHook(SD_CONTRACT_ID, mockSDObj);
|
||||||
let contractHookServer = new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
new ContractHook(SERVER_CONTRACT_ID, mockServerObj);
|
||||||
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
let provider = Cc[PROVIDER_CONTRACT_ID].createInstance(Ci.nsIPresentationDeviceProvider);
|
||||||
let listener = {
|
let listener = {
|
||||||
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
QueryInterface: ChromeUtils.generateQI([Ci.nsIPresentationDeviceListener,
|
||||||
|
|
@ -1293,7 +1290,7 @@ function run_test() {
|
||||||
// Ensure PSM is initialized
|
// Ensure PSM is initialized
|
||||||
Cc["@mozilla.org/psm;1"].getService(Ci.nsISupports);
|
Cc["@mozilla.org/psm;1"].getService(Ci.nsISupports);
|
||||||
|
|
||||||
let infoHook = new ContractHook(INFO_CONTRACT_ID, MockDNSServiceInfo);
|
new ContractHook(INFO_CONTRACT_ID, MockDNSServiceInfo);
|
||||||
|
|
||||||
registerCleanupFunction(() => {
|
registerCleanupFunction(() => {
|
||||||
Services.prefs.clearUserPref(PREF_DISCOVERY);
|
Services.prefs.clearUserPref(PREF_DISCOVERY);
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,6 @@ function sessionRequest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function terminateRequest() {
|
function terminateRequest() {
|
||||||
let testUrl = "http://www.example.org/";
|
|
||||||
let testPresentationId = "test-presentation-id";
|
let testPresentationId = "test-presentation-id";
|
||||||
let testControlChannel = new TestPresentationControlChannel();
|
let testControlChannel = new TestPresentationControlChannel();
|
||||||
let testIsFromReceiver = true;
|
let testIsFromReceiver = true;
|
||||||
|
|
|
||||||
|
|
@ -67,9 +67,9 @@ function launch() {
|
||||||
Assert.equal(presentationId, testPresentationId, "expected presentationId received");
|
Assert.equal(presentationId, testPresentationId, "expected presentationId received");
|
||||||
Assert.equal(url, testUrl, "expected url received");
|
Assert.equal(url, testUrl, "expected url received");
|
||||||
|
|
||||||
mockControllerChannel.notifyLaunch = function(presentationId) {
|
mockControllerChannel.notifyLaunch = function(presId) {
|
||||||
Assert.equal(controllerState.state, State.CONNECTED, "controller in connected state");
|
Assert.equal(controllerState.state, State.CONNECTED, "controller in connected state");
|
||||||
Assert.equal(presentationId, testPresentationId, "expected presentationId received from ack");
|
Assert.equal(presId, testPresentationId, "expected presentationId received from ack");
|
||||||
|
|
||||||
run_next_test();
|
run_next_test();
|
||||||
};
|
};
|
||||||
|
|
@ -85,9 +85,9 @@ function terminateByController() {
|
||||||
Assert.equal(receiverState.state, State.CONNECTED, "receiver in connected state");
|
Assert.equal(receiverState.state, State.CONNECTED, "receiver in connected state");
|
||||||
Assert.equal(presentationId, testPresentationId, "expected presentationId received");
|
Assert.equal(presentationId, testPresentationId, "expected presentationId received");
|
||||||
|
|
||||||
mockControllerChannel.notifyTerminate = function(presentationId) {
|
mockControllerChannel.notifyTerminate = function(presId) {
|
||||||
Assert.equal(controllerState.state, State.CONNECTED, "controller in connected state");
|
Assert.equal(controllerState.state, State.CONNECTED, "controller in connected state");
|
||||||
Assert.equal(presentationId, testPresentationId, "expected presentationId received from ack");
|
Assert.equal(presId, testPresentationId, "expected presentationId received from ack");
|
||||||
|
|
||||||
run_next_test();
|
run_next_test();
|
||||||
};
|
};
|
||||||
|
|
@ -105,9 +105,9 @@ function terminateByReceiver() {
|
||||||
Assert.equal(controllerState.state, State.CONNECTED, "controller in connected state");
|
Assert.equal(controllerState.state, State.CONNECTED, "controller in connected state");
|
||||||
Assert.equal(presentationId, testPresentationId, "expected presentationId received");
|
Assert.equal(presentationId, testPresentationId, "expected presentationId received");
|
||||||
|
|
||||||
mockReceiverChannel.notifyTerminate = function(presentationId) {
|
mockReceiverChannel.notifyTerminate = function(presId) {
|
||||||
Assert.equal(receiverState.state, State.CONNECTED, "receiver in connected state");
|
Assert.equal(receiverState.state, State.CONNECTED, "receiver in connected state");
|
||||||
Assert.equal(presentationId, testPresentationId, "expected presentationId received from ack");
|
Assert.equal(presId, testPresentationId, "expected presentationId received from ack");
|
||||||
run_next_test();
|
run_next_test();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -135,8 +135,8 @@ function exchangeSDP() {
|
||||||
Assert.equal(candidate, testIceCandidate, "expected ice candidate received in receiver");
|
Assert.equal(candidate, testIceCandidate, "expected ice candidate received in receiver");
|
||||||
|
|
||||||
receiverState.updateIceCandidate(testIceCandidate);
|
receiverState.updateIceCandidate(testIceCandidate);
|
||||||
mockControllerChannel.notifyIceCandidate = function(candidate) {
|
mockControllerChannel.notifyIceCandidate = function(controllerCandidate) {
|
||||||
Assert.equal(candidate, testIceCandidate, "expected ice candidate received in controller");
|
Assert.equal(controllerCandidate, testIceCandidate, "expected ice candidate received in controller");
|
||||||
|
|
||||||
run_next_test();
|
run_next_test();
|
||||||
};
|
};
|
||||||
|
|
@ -157,8 +157,8 @@ function disconnect() {
|
||||||
receiverState.onChannelClosed(Cr.NS_OK, true);
|
receiverState.onChannelClosed(Cr.NS_OK, true);
|
||||||
Assert.equal(receiverState.state, State.CLOSED, "receiver in closed state");
|
Assert.equal(receiverState.state, State.CLOSED, "receiver in closed state");
|
||||||
|
|
||||||
mockControllerChannel.notifyDisconnected = function(reason) {
|
mockControllerChannel.notifyDisconnected = function(disconnectReason) {
|
||||||
Assert.equal(reason, Cr.NS_OK, "receive close reason");
|
Assert.equal(disconnectReason, Cr.NS_OK, "receive close reason");
|
||||||
Assert.equal(controllerState.state, State.CLOSED, "controller in closed state");
|
Assert.equal(controllerState.state, State.CLOSED, "controller in closed state");
|
||||||
|
|
||||||
run_next_test();
|
run_next_test();
|
||||||
|
|
@ -183,8 +183,8 @@ function receiverDisconnect() {
|
||||||
controllerState.onChannelClosed(Cr.NS_OK, true);
|
controllerState.onChannelClosed(Cr.NS_OK, true);
|
||||||
Assert.equal(controllerState.state, State.CLOSED, "controller in closed state");
|
Assert.equal(controllerState.state, State.CLOSED, "controller in closed state");
|
||||||
|
|
||||||
mockReceiverChannel.notifyDisconnected = function(reason) {
|
mockReceiverChannel.notifyDisconnected = function(disconnectReason) {
|
||||||
Assert.equal(reason, Cr.NS_OK, "receive close reason");
|
Assert.equal(disconnectReason, Cr.NS_OK, "receive close reason");
|
||||||
Assert.equal(receiverState.state, State.CLOSED, "receiver in closed state");
|
Assert.equal(receiverState.state, State.CLOSED, "receiver in closed state");
|
||||||
|
|
||||||
run_next_test();
|
run_next_test();
|
||||||
|
|
@ -210,8 +210,8 @@ function abnormalDisconnect() {
|
||||||
receiverState.onChannelClosed(Cr.NS_OK, true);
|
receiverState.onChannelClosed(Cr.NS_OK, true);
|
||||||
Assert.equal(receiverState.state, State.CLOSED, "receiver in closed state");
|
Assert.equal(receiverState.state, State.CLOSED, "receiver in closed state");
|
||||||
|
|
||||||
mockControllerChannel.notifyDisconnected = function(reason) {
|
mockControllerChannel.notifyDisconnected = function(disconnectReason) {
|
||||||
Assert.equal(reason, testErrorReason, "receive abnormal close reason");
|
Assert.equal(disconnectReason, testErrorReason, "receive abnormal close reason");
|
||||||
Assert.equal(controllerState.state, State.CLOSED, "controller in closed state");
|
Assert.equal(controllerState.state, State.CLOSED, "controller in closed state");
|
||||||
|
|
||||||
run_next_test();
|
run_next_test();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue