summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/test/mochitest/browser_dbg_listworkers.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/debugger/test/mochitest/browser_dbg_listworkers.js')
-rw-r--r--devtools/client/debugger/test/mochitest/browser_dbg_listworkers.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_listworkers.js b/devtools/client/debugger/test/mochitest/browser_dbg_listworkers.js
new file mode 100644
index 000000000..315acc231
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_listworkers.js
@@ -0,0 +1,59 @@
+var TAB_URL = EXAMPLE_URL + "doc_listworkers-tab.html";
+var WORKER1_URL = "code_listworkers-worker1.js";
+var WORKER2_URL = "code_listworkers-worker2.js";
+
+function test() {
+ Task.spawn(function* () {
+ DebuggerServer.init();
+ DebuggerServer.addBrowserActors();
+
+ let client = new DebuggerClient(DebuggerServer.connectPipe());
+ yield connect(client);
+
+ let tab = yield addTab(TAB_URL);
+ let { tabs } = yield listTabs(client);
+ let [, tabClient] = yield attachTab(client, findTab(tabs, TAB_URL));
+
+ let { workers } = yield listWorkers(tabClient);
+ is(workers.length, 0);
+
+ executeSoon(() => {
+ evalInTab(tab, "var worker1 = new Worker('" + WORKER1_URL + "');");
+ });
+ yield waitForWorkerListChanged(tabClient);
+
+ ({ workers } = yield listWorkers(tabClient));
+ is(workers.length, 1);
+ is(workers[0].url, WORKER1_URL);
+
+ executeSoon(() => {
+ evalInTab(tab, "var worker2 = new Worker('" + WORKER2_URL + "');");
+ });
+ yield waitForWorkerListChanged(tabClient);
+
+ ({ workers } = yield listWorkers(tabClient));
+ is(workers.length, 2);
+ is(workers[0].url, WORKER1_URL);
+ is(workers[1].url, WORKER2_URL);
+
+ executeSoon(() => {
+ evalInTab(tab, "worker1.terminate()");
+ });
+ yield waitForWorkerListChanged(tabClient);
+
+ ({ workers } = yield listWorkers(tabClient));
+ is(workers.length, 1);
+ is(workers[0].url, WORKER2_URL);
+
+ executeSoon(() => {
+ evalInTab(tab, "worker2.terminate()");
+ });
+ yield waitForWorkerListChanged(tabClient);
+
+ ({ workers } = yield listWorkers(tabClient));
+ is(workers.length, 0);
+
+ yield close(client);
+ finish();
+ });
+}