forked from mirrors/gecko-dev
75 lines
2.1 KiB
JavaScript
75 lines
2.1 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const URL = "http://localhost:0";
|
|
|
|
add_agent_task(async function debuggerAddress() {
|
|
const port = getNonAtomicFreePort();
|
|
|
|
await RemoteAgent.listen(`http://localhost:${port}`);
|
|
is(
|
|
remoteAgentInstance.debuggerAddress,
|
|
`localhost:${port}`,
|
|
"debuggerAddress set"
|
|
);
|
|
});
|
|
|
|
add_agent_task(async function listening() {
|
|
is(remoteAgentInstance.listening, false, "Agent is not listening");
|
|
await RemoteAgent.listen(URL);
|
|
is(remoteAgentInstance.listening, true, "Agent is listening");
|
|
});
|
|
|
|
add_agent_task(async function remoteListeningNotification() {
|
|
let active;
|
|
const port = getNonAtomicFreePort();
|
|
|
|
function observer(subject, topic, data) {
|
|
Services.obs.removeObserver(observer, topic);
|
|
|
|
active = data;
|
|
}
|
|
|
|
Services.obs.addObserver(observer, "remote-listening");
|
|
await RemoteAgent.listen("http://localhost:" + port);
|
|
is(active, "true", "remote-listening observer notified enabled state");
|
|
|
|
Services.obs.addObserver(observer, "remote-listening");
|
|
await RemoteAgent.close();
|
|
is(active, null, "remote-listening observer notified disabled state");
|
|
});
|
|
|
|
// TODO(ato): https://bugzil.la/1590829
|
|
add_agent_task(async function listenTakesString() {
|
|
await RemoteAgent.listen("http://localhost:0");
|
|
await RemoteAgent.close();
|
|
});
|
|
|
|
// TODO(ato): https://bugzil.la/1590829
|
|
add_agent_task(async function listenNonURL() {
|
|
try {
|
|
await RemoteAgent.listen("foobar");
|
|
fail("listen() did not reject non-URL");
|
|
} catch (e) {
|
|
is(e.result, Cr.NS_ERROR_MALFORMED_URI);
|
|
}
|
|
});
|
|
|
|
add_agent_task(async function listenRestrictedToLoopbackDevice() {
|
|
try {
|
|
await RemoteAgent.listen("http://0.0.0.0:9222");
|
|
fail("listen() did not reject non-loopback device");
|
|
} catch (e) {
|
|
is(e.result, Cr.NS_ERROR_ILLEGAL_VALUE);
|
|
is(e.message, "Restricted to loopback devices");
|
|
}
|
|
});
|
|
|
|
add_agent_task(async function test_close() {
|
|
await RemoteAgent.listen(URL);
|
|
await RemoteAgent.close();
|
|
// no-op when not listening
|
|
await RemoteAgent.close();
|
|
});
|