diff options
Diffstat (limited to 'devtools/client/debugger/test/mochitest/browser_dbg_listworkers.js')
-rw-r--r-- | devtools/client/debugger/test/mochitest/browser_dbg_listworkers.js | 59 |
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(); + }); +} |