1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <!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>
|