forked from mirrors/gecko-dev
76 lines
2.3 KiB
HTML
76 lines
2.3 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test the WebSocket debugger transport</title>
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/SpawnTask.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
|
|
</head>
|
|
<body>
|
|
<script>
|
|
window.onload = function() {
|
|
const {require} = Components.utils.import("resource://devtools/shared/Loader.jsm", {});
|
|
const Services = require("Services");
|
|
const {DebuggerClient} = require("devtools/shared/client/main");
|
|
const {DebuggerServer} = require("devtools/server/main");
|
|
|
|
Services.prefs.setBoolPref("devtools.debugger.remote-enabled", true);
|
|
Services.prefs.setBoolPref("devtools.debugger.prompt-connection", false);
|
|
|
|
SimpleTest.registerCleanupFunction(() => {
|
|
Services.prefs.clearUserPref("devtools.debugger.remote-enabled");
|
|
Services.prefs.clearUserPref("devtools.debugger.prompt-connection");
|
|
});
|
|
|
|
add_task(function* () {
|
|
if (!DebuggerServer.initialized) {
|
|
DebuggerServer.init();
|
|
DebuggerServer.addBrowserActors();
|
|
}
|
|
|
|
is(DebuggerServer.listeningSockets, 0, "0 listening sockets");
|
|
|
|
let listener = DebuggerServer.createListener();
|
|
ok(listener, "Socket listener created");
|
|
listener.portOrPath = -1;
|
|
listener.webSocket = true;
|
|
yield listener.open();
|
|
is(DebuggerServer.listeningSockets, 1, "1 listening socket");
|
|
|
|
let transport = yield DebuggerClient.socketConnect({
|
|
host: "127.0.0.1",
|
|
port: listener.port,
|
|
webSocket: true
|
|
});
|
|
ok(transport, "Client transport created");
|
|
|
|
let client = new DebuggerClient(transport);
|
|
let onUnexpectedClose = () => {
|
|
do_throw("Closed unexpectedly");
|
|
};
|
|
client.addListener("closed", onUnexpectedClose);
|
|
|
|
yield client.connect();
|
|
yield client.listTabs();
|
|
|
|
// Send a message the server that will echo back
|
|
let message = "message";
|
|
let reply = yield client.request({
|
|
to: "root",
|
|
type: "echo",
|
|
message
|
|
});
|
|
is(reply.message, message, "Echo message matches");
|
|
|
|
client.removeListener("closed", onUnexpectedClose);
|
|
transport.close();
|
|
listener.close();
|
|
is(DebuggerServer.listeningSockets, 0, "0 listening sockets");
|
|
|
|
DebuggerServer.destroy();
|
|
});
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|