summaryrefslogtreecommitdiffstats
path: root/devtools/client/framework/test/browser_toolbox_transport_events.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/client/framework/test/browser_toolbox_transport_events.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/framework/test/browser_toolbox_transport_events.js')
-rw-r--r--devtools/client/framework/test/browser_toolbox_transport_events.js108
1 files changed, 108 insertions, 0 deletions
diff --git a/devtools/client/framework/test/browser_toolbox_transport_events.js b/devtools/client/framework/test/browser_toolbox_transport_events.js
new file mode 100644
index 000000000..1e2b67ac4
--- /dev/null
+++ b/devtools/client/framework/test/browser_toolbox_transport_events.js
@@ -0,0 +1,108 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const { on, off } = require("sdk/event/core");
+const { DebuggerClient } = require("devtools/shared/client/main");
+
+function test() {
+ gDevTools.on("toolbox-created", onToolboxCreated);
+ on(DebuggerClient, "connect", onDebuggerClientConnect);
+
+ addTab("about:blank").then(function () {
+ let target = TargetFactory.forTab(gBrowser.selectedTab);
+ gDevTools.showToolbox(target, "webconsole").then(testResults);
+ });
+}
+
+function testResults(toolbox) {
+ testPackets(sent1, received1);
+ testPackets(sent2, received2);
+
+ cleanUp(toolbox);
+}
+
+function cleanUp(toolbox) {
+ gDevTools.off("toolbox-created", onToolboxCreated);
+ off(DebuggerClient, "connect", onDebuggerClientConnect);
+
+ toolbox.destroy().then(function () {
+ gBrowser.removeCurrentTab();
+ executeSoon(function () {
+ finish();
+ });
+ });
+}
+
+function testPackets(sent, received) {
+ ok(sent.length > 0, "There must be at least one sent packet");
+ ok(received.length > 0, "There must be at leaset one received packet");
+
+ if (!sent.length || received.length) {
+ return;
+ }
+
+ let sentPacket = sent[0];
+ let receivedPacket = received[0];
+
+ is(receivedPacket.from, "root",
+ "The first received packet is from the root");
+ is(receivedPacket.applicationType, "browser",
+ "The first received packet has browser type");
+ is(sentPacket.type, "listTabs",
+ "The first sent packet is for list of tabs");
+}
+
+// Listen to the transport object that is associated with the
+// default Toolbox debugger client
+var sent1 = [];
+var received1 = [];
+
+function send1(eventId, packet) {
+ sent1.push(packet);
+}
+
+function onPacket1(eventId, packet) {
+ received1.push(packet);
+}
+
+function onToolboxCreated(eventId, toolbox) {
+ toolbox.target.makeRemote();
+ let client = toolbox.target.client;
+ let transport = client._transport;
+
+ transport.on("send", send1);
+ transport.on("packet", onPacket1);
+
+ client.addOneTimeListener("closed", event => {
+ transport.off("send", send1);
+ transport.off("packet", onPacket1);
+ });
+}
+
+// Listen to all debugger client object protocols.
+var sent2 = [];
+var received2 = [];
+
+function send2(eventId, packet) {
+ sent2.push(packet);
+}
+
+function onPacket2(eventId, packet) {
+ received2.push(packet);
+}
+
+function onDebuggerClientConnect(client) {
+ let transport = client._transport;
+
+ transport.on("send", send2);
+ transport.on("packet", onPacket2);
+
+ client.addOneTimeListener("closed", event => {
+ transport.off("send", send2);
+ transport.off("packet", onPacket2);
+ });
+}