diff --git a/devtools/client/debugger/new/test/mochitest/browser.ini b/devtools/client/debugger/new/test/mochitest/browser.ini index d59da7c6d9e0..ee6a95d733b0 100644 --- a/devtools/client/debugger/new/test/mochitest/browser.ini +++ b/devtools/client/debugger/new/test/mochitest/browser.ini @@ -624,7 +624,6 @@ support-files = examples/doc-pause-points.html examples/doc-return-values.html examples/doc-wasm-sourcemaps.html - examples/doc_global-method-override.html examples/asm.js examples/async.js examples/bogus-map.js @@ -687,8 +686,6 @@ skip-if = (os == "win" && ccov) # Bug 1424154 [browser_dbg-ember-quickstart.js] [browser_dbg-expressions.js] [browser_dbg-expressions-error.js] -[browser_dbg_global-method-override.js] -skip-if = e10s && debug [browser_dbg-iframes.js] [browser_dbg-inline-cache.js] [browser_dbg-keyboard-navigation.js] diff --git a/devtools/client/debugger/new/test/mochitest/browser_dbg_global-method-override.js b/devtools/client/debugger/new/test/mochitest/browser_dbg_global-method-override.js deleted file mode 100644 index 3ba490e84632..000000000000 --- a/devtools/client/debugger/new/test/mochitest/browser_dbg_global-method-override.js +++ /dev/null @@ -1,18 +0,0 @@ -/* -*- 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/ */ - -/** - * Tests that scripts that override properties of the global object, like - * toString, don't break the debugger. The test page used to cause the debugger - * to throw when trying to attach to the thread actor. - */ - -"use strict"; - -add_task(async function() { - const dbg = await initDebugger("doc_global-method-override.html"); - ok(dbg, "Should have a debugger available."); - is(dbg.toolbox.threadClient.state, "attached", "Debugger should be attached."); -}); diff --git a/devtools/client/shared/test/addon1.xpi b/devtools/client/debugger/test/mochitest/addon1.xpi similarity index 100% rename from devtools/client/shared/test/addon1.xpi rename to devtools/client/debugger/test/mochitest/addon1.xpi diff --git a/devtools/client/shared/test/addon2.xpi b/devtools/client/debugger/test/mochitest/addon2.xpi similarity index 100% rename from devtools/client/shared/test/addon2.xpi rename to devtools/client/debugger/test/mochitest/addon2.xpi diff --git a/devtools/client/debugger/test/mochitest/browser.ini b/devtools/client/debugger/test/mochitest/browser.ini index a39600066c90..0337bcef4d64 100644 --- a/devtools/client/debugger/test/mochitest/browser.ini +++ b/devtools/client/debugger/test/mochitest/browser.ini @@ -6,6 +6,8 @@ tags = devtools subsuite = devtools skip-if = (os == 'linux' && debug && bits == 32) support-files = + addon1.xpi + addon2.xpi addon4.xpi addon5.xpi addon-webext-contentscript.xpi @@ -68,6 +70,7 @@ support-files = doc_function-display-name.html doc_function-jump.html doc_function-search.html + doc_global-method-override.html doc_iframes.html doc_included-script.html doc_inline-debugger-statement.html @@ -144,6 +147,10 @@ skip-if = e10s && debug skip-if = e10s && debug [browser_dbg_bug-896139.js] skip-if = e10s && debug +[browser_dbg_chrome-create.js] +skip-if = (e10s && debug) || (verify && os == "linux") # Exit code mismatch with verify +[browser_dbg_chrome-debugging.js] +skip-if = e10s && debug [browser_dbg_clean-exit.js] skip-if = true # Bug 1044985 (racy test) [browser_dbg_closure-inspection.js] @@ -186,6 +193,10 @@ skip-if = e10s && debug skip-if = e10s && debug [browser_dbg_file-reload.js] skip-if = e10s && debug +[browser_dbg_global-method-override.js] +skip-if = e10s && debug +[browser_dbg_globalactor.js] +skip-if = e10s [browser_dbg_host-layout.js] skip-if = e10s && debug [browser_dbg_jump-to-function-definition.js] @@ -194,4 +205,15 @@ skip-if = e10s && debug skip-if = e10s # TODO [browser_dbg_interrupts.js] skip-if = e10s && debug +[browser_dbg_listaddons.js] +skip-if = e10s && debug +tags = addons +[browser_dbg_listtabs-01.js] +[browser_dbg_listtabs-02.js] +skip-if = true # Never worked for remote frames, needs a mock DebuggerServerConnection +[browser_dbg_listtabs-03.js] +skip-if = e10s && debug [browser_dbg_listworkers.js] +[browser_dbg_multiple-windows.js] +[browser_dbg_navigation.js] +skip-if = e10s && debug diff --git a/devtools/client/debugger/test/mochitest/browser2.ini b/devtools/client/debugger/test/mochitest/browser2.ini index aae111095676..9540852d01a9 100644 --- a/devtools/client/debugger/test/mochitest/browser2.ini +++ b/devtools/client/debugger/test/mochitest/browser2.ini @@ -6,6 +6,8 @@ tags = devtools subsuite = devtools skip-if = (os == 'linux' && debug && bits == 32) support-files = + addon1.xpi + addon2.xpi addon4.xpi addon5.xpi addon-webext-contentscript.xpi @@ -68,6 +70,7 @@ support-files = doc_function-display-name.html doc_function-jump.html doc_function-search.html + doc_global-method-override.html doc_iframes.html doc_included-script.html doc_inline-debugger-statement.html @@ -156,6 +159,8 @@ uses-unsafe-cpows = true skip-if = e10s && debug [browser_dbg_split-console-paused-reload.js] skip-if = true # Bug 1288348 - previously e10s && debug +[browser_dbg_target-scoped-actor-01.js] +[browser_dbg_target-scoped-actor-02.js] [browser_dbg_terminate-on-tab-close.js] uses-unsafe-cpows = true skip-if = e10s && debug diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_chrome-create.js b/devtools/client/debugger/test/mochitest/browser_dbg_chrome-create.js new file mode 100644 index 000000000000..ec9dc9ec2c25 --- /dev/null +++ b/devtools/client/debugger/test/mochitest/browser_dbg_chrome-create.js @@ -0,0 +1,70 @@ +/* -*- 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/ */ + +/** + * Tests that a chrome debugger can be created in a new process. + */ + +// There are shutdown issues for which multiple rejections are left uncaught. +// See bug 1018184 for resolving these issues. +const { PromiseTestUtils } = scopedCuImport("resource://testing-common/PromiseTestUtils.jsm"); +PromiseTestUtils.whitelistRejectionsGlobally(/File closed/); +PromiseTestUtils.whitelistRejectionsGlobally(/NS_ERROR_FAILURE/); + +var gProcess; + +function test() { + // Windows XP and 8.1 test slaves are terribly slow at this test. + requestLongerTimeout(5); + Services.prefs.setBoolPref("devtools.chrome.enabled", true); + Services.prefs.setBoolPref("devtools.debugger.remote-enabled", true); + + initChromeDebugger(aOnClose).then(aProcess => { + gProcess = aProcess; + + info("Starting test..."); + performTest(); + }); +} + +function performTest() { + ok(gProcess._dbgProcess, + "The remote debugger process wasn't created properly!"); + ok(gProcess._dbgProcess.exitCode == null, + "The remote debugger process isn't running!"); + is(typeof gProcess._dbgProcess.pid, "number", + "The remote debugger process doesn't have a pid (?!)"); + + info("process location: " + gProcess._dbgProcess.location); + info("process pid: " + gProcess._dbgProcess.pid); + info("process name: " + gProcess._dbgProcess.processName); + info("process sig: " + gProcess._dbgProcess.processSignature); + + ok(gProcess._dbgProfilePath, + "The remote debugger profile wasn't created properly!"); + is(gProcess._dbgProfilePath, OS.Path.join(OS.Constants.Path.profileDir, "chrome_debugger_profile"), + "The remote debugger profile isn't where we expect it!"); + + info("profile path: " + gProcess._dbgProfilePath); + + gProcess.close(); +} + +function aOnClose() { + is(gProcess._dbgProcess.exitCode, (Services.appinfo.OS == "WINNT" ? -9 : -15), + "The remote debugger process didn't die cleanly."); + + info("process exit value: " + gProcess._dbgProcess.exitValue); + + info("profile path: " + gProcess._dbgProfilePath); + + finish(); +} + +registerCleanupFunction(function () { + Services.prefs.clearUserPref("devtools.chrome.enabled"); + Services.prefs.clearUserPref("devtools.debugger.remote-enabled"); + gProcess = null; +}); diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_chrome-debugging.js b/devtools/client/debugger/test/mochitest/browser_dbg_chrome-debugging.js new file mode 100644 index 000000000000..03af3ae44342 --- /dev/null +++ b/devtools/client/debugger/test/mochitest/browser_dbg_chrome-debugging.js @@ -0,0 +1,89 @@ +/* -*- 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/ */ + +/** + * Tests that chrome debugging works. + */ + +const TAB_URL = EXAMPLE_URL + "doc_inline-debugger-statement.html"; + +var gClient, gThreadClient; +var gAttached = promise.defer(); +var gNewChromeSource = promise.defer(); + +var { DevToolsLoader } = ChromeUtils.import("resource://devtools/shared/Loader.jsm", {}); +var customLoader = new DevToolsLoader(); +customLoader.invisibleToDebugger = true; +var { DebuggerServer } = customLoader.require("devtools/server/main"); + +function test() { + DebuggerServer.init(); + DebuggerServer.registerAllActors(); + DebuggerServer.allowChromeProcess = true; + + let transport = DebuggerServer.connectPipe(); + gClient = new DebuggerClient(transport); + gClient.connect().then(([aType, aTraits]) => { + is(aType, "browser", + "Root actor should identify itself as a browser."); + + promise.all([gAttached.promise, gNewChromeSource.promise]) + .then(resumeAndCloseConnection) + .then(finish) + .catch(aError => { + ok(false, "Got an error: " + aError.message + "\n" + aError.stack); + }); + + testParentProcessTargetActor(); + }); +} + +function testParentProcessTargetActor() { + gClient.getProcess().then(aResponse => { + let actor = aResponse.form.actor; + gClient.attachTarget(actor).then(([response, tabClient]) => { + tabClient.attachThread(null).then(([aResponse, aThreadClient]) => { + gThreadClient = aThreadClient; + gThreadClient.addListener("newSource", onNewSource); + + if (aResponse.error) { + ok(false, "Couldn't attach to the chrome debugger."); + gAttached.reject(); + } else { + ok(true, "Attached to the chrome debugger."); + gAttached.resolve(); + + // Ensure that a new chrome global will be created. + gBrowser.selectedTab = BrowserTestUtils.addTab(gBrowser, "about:mozilla"); + } + }); + }); + }); +} + +function onNewSource(aEvent, aPacket) { + if (aPacket.source.url.startsWith("chrome:")) { + ok(true, "Received a new chrome source: " + aPacket.source.url); + + gThreadClient.removeListener("newSource", onNewSource); + gNewChromeSource.resolve(); + } +} + +function resumeAndCloseConnection() { + let deferred = promise.defer(); + gThreadClient.resume(() => deferred.resolve(gClient.close())); + return deferred.promise; +} + +registerCleanupFunction(function () { + gClient = null; + gThreadClient = null; + gAttached = null; + gNewChromeSource = null; + + customLoader = null; + DebuggerServer = null; +}); diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_global-method-override.js b/devtools/client/debugger/test/mochitest/browser_dbg_global-method-override.js new file mode 100644 index 000000000000..4b856698ac57 --- /dev/null +++ b/devtools/client/debugger/test/mochitest/browser_dbg_global-method-override.js @@ -0,0 +1,26 @@ +/* -*- 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/ */ + +/** + * Tests that scripts that override properties of the global object, like + * toString don't break the debugger. The test page used to cause the debugger + * to throw when trying to attach to the thread actor. + */ + +const TAB_URL = EXAMPLE_URL + "doc_global-method-override.html"; + +function test() { + let options = { + source: TAB_URL, + line: 1 + }; + initDebugger(TAB_URL, options).then(([aTab, aPanel]) => { + let gDebugger = aPanel.panelWin; + ok(gDebugger, "Should have a debugger available."); + is(gDebugger.gThreadClient.state, "attached", "Debugger should be attached."); + + closeDebuggerAndFinish(aPanel); + }); +} diff --git a/devtools/client/shared/test/browser_dbg_globalactor.js b/devtools/client/debugger/test/mochitest/browser_dbg_globalactor.js similarity index 84% rename from devtools/client/shared/test/browser_dbg_globalactor.js rename to devtools/client/debugger/test/mochitest/browser_dbg_globalactor.js index a334d9209f4b..9ec53d7bd11d 100644 --- a/devtools/client/shared/test/browser_dbg_globalactor.js +++ b/devtools/client/debugger/test/mochitest/browser_dbg_globalactor.js @@ -7,13 +7,7 @@ * Check extension-added global actor API. */ -"use strict"; - -var { DebuggerServer } = require("devtools/server/main"); -var { ActorRegistry } = require("devtools/server/actors/utils/actor-registry"); -var { DebuggerClient } = require("devtools/shared/client/debugger-client"); - -const ACTORS_URL = EXAMPLE_URL + "testactors.js"; +const ACTORS_URL = CHROME_URL + "testactors.js"; add_task(async function() { DebuggerServer.init(); @@ -49,7 +43,7 @@ add_task(async function() { for (const connID of Object.getOwnPropertyNames(DebuggerServer._connections)) { const conn = DebuggerServer._connections[connID]; const actorPrefix = conn._prefix + "testOne"; - for (const pool of conn._extraPools) { + for (let pool of conn._extraPools) { for (const actor of pool.poolChildren()) { if (actor.actorID.startsWith(actorPrefix)) { count++; diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_listaddons.js b/devtools/client/debugger/test/mochitest/browser_dbg_listaddons.js new file mode 100644 index 000000000000..bae19beecb8a --- /dev/null +++ b/devtools/client/debugger/test/mochitest/browser_dbg_listaddons.js @@ -0,0 +1,110 @@ +/* -*- 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/ */ + +/** + * Make sure the listAddons request works as specified. + */ +const ADDON1_ID = "jid1-oBAwBoE5rSecNg@jetpack"; +const ADDON1_PATH = "addon1.xpi"; +const ADDON2_ID = "jid1-qjtzNGV8xw5h2A@jetpack"; +const ADDON2_PATH = "addon2.xpi"; + +var gAddon1, gAddon1Actor, gAddon2, gAddon2Actor, gClient; + +function test() { + DebuggerServer.init(); + DebuggerServer.registerAllActors(); + + let transport = DebuggerServer.connectPipe(); + gClient = new DebuggerClient(transport); + gClient.connect().then(([aType, aTraits]) => { + is(aType, "browser", + "Root actor should identify itself as a browser."); + + promise.resolve(null) + .then(testFirstAddon) + .then(testSecondAddon) + .then(testRemoveFirstAddon) + .then(testRemoveSecondAddon) + .then(() => gClient.close()) + .then(finish) + .catch(aError => { + ok(false, "Got an error: " + aError.message + "\n" + aError.stack); + }); + }); +} + +function testFirstAddon() { + let addonListChanged = false; + gClient.addOneTimeListener("addonListChanged", () => { + addonListChanged = true; + }); + + return addTemporaryAddon(ADDON1_PATH).then(aAddon => { + gAddon1 = aAddon; + + return getAddonActorForId(gClient, ADDON1_ID).then(aGrip => { + ok(!addonListChanged, "Should not yet be notified that list of addons changed."); + ok(aGrip, "Should find an addon actor for addon1."); + gAddon1Actor = aGrip.actor; + }); + }); +} + +function testSecondAddon() { + let addonListChanged = false; + gClient.addOneTimeListener("addonListChanged", function () { + addonListChanged = true; + }); + + return addTemporaryAddon(ADDON2_PATH).then(aAddon => { + gAddon2 = aAddon; + + return getAddonActorForId(gClient, ADDON1_ID).then(aFirstGrip => { + return getAddonActorForId(gClient, ADDON2_ID).then(aSecondGrip => { + ok(addonListChanged, "Should be notified that list of addons changed."); + is(aFirstGrip.actor, gAddon1Actor, "First addon's actor shouldn't have changed."); + ok(aSecondGrip, "Should find a addon actor for the second addon."); + gAddon2Actor = aSecondGrip.actor; + }); + }); + }); +} + +function testRemoveFirstAddon() { + let addonListChanged = false; + gClient.addOneTimeListener("addonListChanged", function () { + addonListChanged = true; + }); + + return removeAddon(gAddon1).then(() => { + return getAddonActorForId(gClient, ADDON1_ID).then(aGrip => { + ok(addonListChanged, "Should be notified that list of addons changed."); + ok(!aGrip, "Shouldn't find a addon actor for the first addon anymore."); + }); + }); +} + +function testRemoveSecondAddon() { + let addonListChanged = false; + gClient.addOneTimeListener("addonListChanged", function () { + addonListChanged = true; + }); + + return removeAddon(gAddon2).then(() => { + return getAddonActorForId(gClient, ADDON2_ID).then(aGrip => { + ok(addonListChanged, "Should be notified that list of addons changed."); + ok(!aGrip, "Shouldn't find a addon actor for the second addon anymore."); + }); + }); +} + +registerCleanupFunction(function () { + gAddon1 = null; + gAddon1Actor = null; + gAddon2 = null; + gAddon2Actor = null; + gClient = null; +}); diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-01.js b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-01.js new file mode 100644 index 000000000000..7f1d704f257b --- /dev/null +++ b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-01.js @@ -0,0 +1,96 @@ +/* -*- 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/ */ + +/** + * Make sure the listTabs request works as specified. + */ + +const TAB1_URL = EXAMPLE_URL + "doc_empty-tab-01.html"; +const TAB2_URL = EXAMPLE_URL + "doc_empty-tab-02.html"; + +var gTab1, gTab1Actor, gTab2, gTab2Actor, gClient; + +function test() { + DebuggerServer.init(); + DebuggerServer.registerAllActors(); + + let transport = DebuggerServer.connectPipe(); + gClient = new DebuggerClient(transport); + gClient.connect().then(([aType, aTraits]) => { + is(aType, "browser", + "Root actor should identify itself as a browser."); + + promise.resolve(null) + .then(testFirstTab) + .then(testSecondTab) + .then(testRemoveTab) + .then(testAttachRemovedTab) + .then(() => gClient.close()) + .then(finish) + .catch(aError => { + ok(false, "Got an error: " + aError.message + "\n" + aError.stack); + }); + }); +} + +function testFirstTab() { + return addTab(TAB1_URL).then(aTab => { + gTab1 = aTab; + + return getTargetActorForUrl(gClient, TAB1_URL).then(aGrip => { + ok(aGrip, "Should find a target actor for the first tab."); + gTab1Actor = aGrip.actor; + }); + }); +} + +function testSecondTab() { + return addTab(TAB2_URL).then(aTab => { + gTab2 = aTab; + + return getTargetActorForUrl(gClient, TAB1_URL).then(aFirstGrip => { + return getTargetActorForUrl(gClient, TAB2_URL).then(aSecondGrip => { + is(aFirstGrip.actor, gTab1Actor, "First tab's actor shouldn't have changed."); + ok(aSecondGrip, "Should find a target actor for the second tab."); + gTab2Actor = aSecondGrip.actor; + }); + }); + }); +} + +function testRemoveTab() { + return removeTab(gTab1).then(() => { + return getTargetActorForUrl(gClient, TAB1_URL).then(aGrip => { + ok(!aGrip, "Shouldn't find a target actor for the first tab anymore."); + }); + }); +} + +function testAttachRemovedTab() { + return removeTab(gTab2).then(() => { + let deferred = promise.defer(); + + gClient.addListener("paused", (aEvent, aPacket) => { + ok(false, "Attaching to an exited target actor shouldn't generate a pause."); + deferred.reject(); + }); + + gClient.request({ to: gTab2Actor, type: "attach" }, aResponse => { + is(aResponse.error, "connectionClosed", + "Connection is gone since the tab was removed."); + deferred.resolve(); + }); + + return deferred.promise; + }); +} + +registerCleanupFunction(function () { + gTab1 = null; + gTab1Actor = null; + gTab2 = null; + gTab2Actor = null; + gClient = null; +}); diff --git a/devtools/client/shared/test/browser_dbg_listtabs-02.js b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-02.js similarity index 78% rename from devtools/client/shared/test/browser_dbg_listtabs-02.js rename to devtools/client/debugger/test/mochitest/browser_dbg_listtabs-02.js index 9adcdc2317e8..f8566865bf09 100644 --- a/devtools/client/shared/test/browser_dbg_listtabs-02.js +++ b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-02.js @@ -8,7 +8,6 @@ */ var { BrowserTabList } = require("devtools/server/actors/webbrowser"); -var { DebuggerServer } = require("devtools/server/main"); var gTestPage = "data:text/html;charset=utf-8," + encodeURIComponent( "JS Debugger BrowserTabList test pageYo."); @@ -55,18 +54,14 @@ function checkSingleTab() { return gTabList.getList().then(targetActors => { is(targetActors.length, 1, "initial tab list: contains initial tab"); gFirstActor = targetActors[0]; - is( - gFirstActor.url, - "about:blank", - "initial tab list: initial tab URL is 'about:blank'" - ); + is(gFirstActor.url, "about:blank", "initial tab list: initial tab URL is 'about:blank'"); is(gFirstActor.title, "New Tab", "initial tab list: initial tab title is 'New Tab'"); }); } function addTabA() { - return addTab(gTestPage).then(tab => { - gTabA = tab; + return addTab(gTestPage).then(aTab => { + gTabA = aTab; }); } @@ -81,17 +76,13 @@ function testTabA() { info("actors: " + [...targetActors].map(a => a.url)); gActorA = [...targetActors].filter(a => a !== gFirstActor)[0]; ok(gActorA.url.match(/^data:text\/html;/), "gTabA opened: new tab URL"); - is( - gActorA.title, - "JS Debugger BrowserTabList test page", - "gTabA opened: new tab title" - ); + is(gActorA.title, "JS Debugger BrowserTabList test page", "gTabA opened: new tab title"); }); } function addTabB() { - return addTab(gTestPage).then(tab => { - gTabB = tab; + return addTab(gTestPage).then(aTab => { + gTabB = aTab; }); } @@ -105,10 +96,10 @@ function testTabB() { } function removeTabA() { - const deferred = promise.defer(); + let deferred = promise.defer(); - once(gBrowser.tabContainer, "TabClose").then(event => { - ok(!event.detail.adoptedBy, "This was a normal tab close"); + once(gBrowser.tabContainer, "TabClose").then(aEvent => { + ok(!aEvent.detail.adoptedBy, "This was a normal tab close"); // Let the actor's TabClose handler finish first. executeSoon(deferred.resolve); @@ -129,17 +120,13 @@ function testTabClosed() { info("actors: " + [...targetActors].map(a => a.url)); gActorA = [...targetActors].filter(a => a !== gFirstActor)[0]; ok(gActorA.url.match(/^data:text\/html;/), "gTabA closed: new tab URL"); - is( - gActorA.title, - "JS Debugger BrowserTabList test page", - "gTabA closed: new tab title" - ); + is(gActorA.title, "JS Debugger BrowserTabList test page", "gTabA closed: new tab title"); }); } function addTabC() { - return addTab(gTestPage).then(tab => { - gTabC = tab; + return addTab(gTestPage).then(aTab => { + gTabC = aTab; }); } @@ -153,10 +140,10 @@ function testTabC() { } function removeTabC() { - const deferred = promise.defer(); + let deferred = promise.defer(); - once(gBrowser.tabContainer, "TabClose").then(event => { - ok(event.detail.adoptedBy, "This was a tab closed by moving"); + once(gBrowser.tabContainer, "TabClose").then(aEvent => { + ok(aEvent.detail.adoptedBy, "This was a tab closed by moving"); // Let the actor's TabClose handler finish first. executeSoon(deferred.resolve); @@ -177,19 +164,15 @@ function testNewWindow() { info("actors: " + [...targetActors].map(a => a.url)); gActorA = [...targetActors].filter(a => a !== gFirstActor)[0]; ok(gActorA.url.match(/^data:text\/html;/), "gTabC closed: new tab URL"); - is( - gActorA.title, - "JS Debugger BrowserTabList test page", - "gTabC closed: new tab title" - ); + is(gActorA.title, "JS Debugger BrowserTabList test page", "gTabC closed: new tab title"); }); } function removeNewWindow() { - const deferred = promise.defer(); + let deferred = promise.defer(); - once(gNewWindow, "unload").then(event => { - ok(!event.detail, "This was a normal window close"); + once(gNewWindow, "unload").then(aEvent => { + ok(!aEvent.detail, "This was a normal window close"); // Let the actor's TabClose handler finish first. executeSoon(deferred.resolve); @@ -210,19 +193,15 @@ function testWindowClosed() { info("actors: " + [...targetActors].map(a => a.url)); gActorA = [...targetActors].filter(a => a !== gFirstActor)[0]; ok(gActorA.url.match(/^data:text\/html;/), "gNewWindow closed: new tab URL"); - is( - gActorA.title, - "JS Debugger BrowserTabList test page", - "gNewWindow closed: new tab title" - ); + is(gActorA.title, "JS Debugger BrowserTabList test page", "gNewWindow closed: new tab title"); }); } function removeTabB() { - const deferred = promise.defer(); + let deferred = promise.defer(); - once(gBrowser.tabContainer, "TabClose").then(event => { - ok(!event.detail.adoptedBy, "This was a normal tab close"); + once(gBrowser.tabContainer, "TabClose").then(aEvent => { + ok(!aEvent.detail.adoptedBy, "This was a normal tab close"); // Let the actor's TabClose handler finish first. executeSoon(deferred.resolve); diff --git a/devtools/client/shared/test/browser_dbg_listtabs-03.js b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-03.js similarity index 77% rename from devtools/client/shared/test/browser_dbg_listtabs-03.js rename to devtools/client/debugger/test/mochitest/browser_dbg_listtabs-03.js index 941c61f7a222..5282709d591b 100644 --- a/devtools/client/shared/test/browser_dbg_listtabs-03.js +++ b/devtools/client/debugger/test/mochitest/browser_dbg_listtabs-03.js @@ -3,34 +3,28 @@ /* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ -"use strict"; - /** * Make sure the listTabs request works as specified. */ -var { DebuggerServer } = require("devtools/server/main"); -var { DebuggerClient } = require("devtools/shared/client/debugger-client"); -var { Task } = require("devtools/shared/task"); - const TAB1_URL = EXAMPLE_URL + "doc_empty-tab-01.html"; -var gClient; +var gTab1, gTab1Actor, gTab2, gTab2Actor, gClient; function test() { DebuggerServer.init(); DebuggerServer.registerAllActors(); - const transport = DebuggerServer.connectPipe(); + let transport = DebuggerServer.connectPipe(); gClient = new DebuggerClient(transport); gClient.connect().then(Task.async(function* ([aType, aTraits]) { is(aType, "browser", "Root actor should identify itself as a browser."); - const tab = yield addTab(TAB1_URL); + let tab = yield addTab(TAB1_URL); let { tabs } = yield gClient.listTabs(); is(tabs.length, 2, "Should be two tabs"); - const tabGrip = tabs.filter(a => a.url == TAB1_URL).pop(); + let tabGrip = tabs.filter(a => a.url == TAB1_URL).pop(); ok(tabGrip, "Should have an actor for the tab"); let response = yield gClient.request({ to: tabGrip.actor, type: "attach" }); @@ -42,7 +36,7 @@ function test() { response = yield gClient.request({ to: tabGrip.actor, type: "detach" }); is(response.type, "detached", "Should have detached"); - const newGrip = tabs.filter(a => a.url == TAB1_URL).pop(); + let newGrip = tabs.filter(a => a.url == TAB1_URL).pop(); is(newGrip.actor, tabGrip.actor, "Should have the same actor for the same tab"); response = yield gClient.request({ to: tabGrip.actor, type: "attach" }); @@ -56,6 +50,10 @@ function test() { })); } -registerCleanupFunction(function() { +registerCleanupFunction(function () { + gTab1 = null; + gTab1Actor = null; + gTab2 = null; + gTab2Actor = null; gClient = null; }); diff --git a/devtools/client/shared/test/browser_dbg_multiple-windows.js b/devtools/client/debugger/test/mochitest/browser_dbg_multiple-windows.js similarity index 88% rename from devtools/client/shared/test/browser_dbg_multiple-windows.js rename to devtools/client/debugger/test/mochitest/browser_dbg_multiple-windows.js index 23ea71435ba6..e6dcf99fbacc 100644 --- a/devtools/client/shared/test/browser_dbg_multiple-windows.js +++ b/devtools/client/debugger/test/mochitest/browser_dbg_multiple-windows.js @@ -3,16 +3,11 @@ /* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ -"use strict"; - /** * Make sure that the debugger attaches to the right tab when multiple windows * are open. */ -var { DebuggerServer } = require("devtools/server/main"); -var { DebuggerClient } = require("devtools/shared/client/debugger-client"); - const TAB1_URL = EXAMPLE_URL + "doc_script-switching-01.html"; const TAB2_URL = EXAMPLE_URL + "doc_script-switching-02.html"; @@ -92,7 +87,8 @@ async function testRemoveTab(client, win, tab) { await continue_remove_tab(client, tab); } -async function continue_remove_tab(client, tab) { +async function continue_remove_tab(client, tab) +{ removeTab(tab); const response = await client.listTabs(); @@ -104,12 +100,3 @@ async function continue_remove_tab(client, tab) { is(response.selected, 0, "The original tab is selected."); } - -function addWindow(url) { - info("Adding window: " + url); - return promise.resolve(getChromeWindow(window.open(url))); -} - -function getChromeWindow(win) { - return win.docShell.rootTreeItem.domWindow; -} diff --git a/devtools/client/shared/test/browser_dbg_navigation.js b/devtools/client/debugger/test/mochitest/browser_dbg_navigation.js similarity index 50% rename from devtools/client/shared/test/browser_dbg_navigation.js rename to devtools/client/debugger/test/mochitest/browser_dbg_navigation.js index a7bc37249e33..0f05a262e83c 100644 --- a/devtools/client/shared/test/browser_dbg_navigation.js +++ b/devtools/client/debugger/test/mochitest/browser_dbg_navigation.js @@ -3,18 +3,12 @@ /* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ -"use strict"; - /** * Check tab attach/navigation. */ -var { DebuggerServer } = require("devtools/server/main"); -var { DebuggerClient } = require("devtools/shared/client/debugger-client"); - const TAB1_URL = EXAMPLE_URL + "doc_empty-tab-01.html"; -const TAB2_FILE = "doc_empty-tab-02.html"; -const TAB2_URL = EXAMPLE_URL + TAB2_FILE; +const TAB2_URL = EXAMPLE_URL + "doc_empty-tab-02.html"; var gClient; @@ -22,7 +16,7 @@ function test() { DebuggerServer.init(); DebuggerServer.registerAllActors(); - const transport = DebuggerServer.connectPipe(); + let transport = DebuggerServer.connectPipe(); gClient = new DebuggerClient(transport); gClient.connect().then(([aType, aTraits]) => { is(aType, "browser", @@ -33,23 +27,20 @@ function test() { .then(testNavigate) .then(testDetach) .then(finish) - .catch(error => { - ok(false, "Got an error: " + error.message + "\n" + error.stack); + .catch(aError => { + ok(false, "Got an error: " + aError.message + "\n" + aError.stack); }); }); } function testNavigate([aGrip, aResponse]) { - const outstanding = [promise.defer(), promise.defer()]; + let outstanding = [promise.defer(), promise.defer()]; - gClient.addListener("tabNavigated", function onTabNavigated(event, packet) { - is(packet.url.split("/").pop(), TAB2_FILE, + gClient.addListener("tabNavigated", function onTabNavigated(aEvent, aPacket) { + is(aPacket.url, TAB2_URL, "Got a tab navigation notification."); - info(JSON.stringify(packet)); - info(JSON.stringify(event)); - - if (packet.state == "start") { + if (aPacket.state == "start") { ok(true, "Tab started to navigate."); outstanding[0].resolve(); } else { @@ -64,12 +55,12 @@ function testNavigate([aGrip, aResponse]) { .then(() => aGrip.actor); } -function testDetach(actor) { - const deferred = promise.defer(); +function testDetach(aActor) { + let deferred = promise.defer(); - gClient.addOneTimeListener("tabDetached", (type, packet) => { + gClient.addOneTimeListener("tabDetached", (aType, aPacket) => { ok(true, "Got a tab detach notification."); - is(packet.from, actor, "tab detach message comes from the expected actor"); + is(aPacket.from, aActor, "tab detach message comes from the expected actor"); deferred.resolve(gClient.close()); }); @@ -77,23 +68,6 @@ function testDetach(actor) { return deferred.promise; } -registerCleanupFunction(function() { +registerCleanupFunction(function () { gClient = null; }); - -async function attachTargetActorForUrl(client, url) { - const grip = await getTargetActorForUrl(client, url); - const [ response ] = await client.attachTarget(grip.actor); - return [grip, response]; -} - -function getTargetActorForUrl(client, url) { - const deferred = promise.defer(); - - client.listTabs().then(response => { - const targetActor = response.tabs.filter(grip => grip.url == url).pop(); - deferred.resolve(targetActor); - }); - - return deferred.promise; -} diff --git a/devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js b/devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-01.js similarity index 66% rename from devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js rename to devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-01.js index 63f1470a25fb..34e65ebbf6aa 100644 --- a/devtools/client/shared/test/browser_dbg_target-scoped-actor-01.js +++ b/devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-01.js @@ -3,16 +3,11 @@ /* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ -"use strict"; - /** * Check target-scoped actor lifetimes. */ -var { DebuggerServer } = require("devtools/server/main"); -var { DebuggerClient } = require("devtools/shared/client/debugger-client"); - -const ACTORS_URL = EXAMPLE_URL + "testactors.js"; +const ACTORS_URL = CHROME_URL + "testactors.js"; const TAB_URL = EXAMPLE_URL + "doc_empty-tab-01.html"; add_task(async function test() { @@ -47,20 +42,3 @@ async function testTargetScopedActor(client, grip) { const response = await client.request({ to: grip.testOneActor, type: "ping" }); is(response.pong, "pong", "Actor should respond to requests."); } - -async function attachTargetActorForUrl(client, url) { - const grip = await getTargetActorForUrl(client, url); - const [ response ] = await client.attachTarget(grip.actor); - return [grip, response]; -} - -function getTargetActorForUrl(client, url) { - const deferred = promise.defer(); - - client.listTabs().then(response => { - const targetActor = response.tabs.filter(grip => grip.url == url).pop(); - deferred.resolve(targetActor); - }); - - return deferred.promise; -} diff --git a/devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js b/devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js similarity index 71% rename from devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js rename to devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js index 9fb9cfb60eab..9c5fab84e88d 100644 --- a/devtools/client/shared/test/browser_dbg_target-scoped-actor-02.js +++ b/devtools/client/debugger/test/mochitest/browser_dbg_target-scoped-actor-02.js @@ -3,16 +3,11 @@ /* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ -"use strict"; - /** * Check target-scoped actor lifetimes. */ -var { DebuggerServer } = require("devtools/server/main"); -var { DebuggerClient } = require("devtools/shared/client/debugger-client"); - -const ACTORS_URL = EXAMPLE_URL + "testactors.js"; +const ACTORS_URL = CHROME_URL + "testactors.js"; const TAB_URL = EXAMPLE_URL + "doc_empty-tab-01.html"; add_task(async function() { @@ -58,20 +53,3 @@ async function closeTab(client, grip) { `can't be sent as the connection just closed.`, "testOneActor went away."); } - -async function attachTargetActorForUrl(client, url) { - const grip = await getTargetActorForUrl(client, url); - const [ response ] = await client.attachTarget(grip.actor); - return [grip, response]; -} - -function getTargetActorForUrl(client, url) { - const deferred = promise.defer(); - - client.listTabs().then(response => { - const targetActor = response.tabs.filter(grip => grip.url == url).pop(); - deferred.resolve(targetActor); - }); - - return deferred.promise; -} diff --git a/devtools/client/debugger/new/test/mochitest/examples/doc_global-method-override.html b/devtools/client/debugger/test/mochitest/doc_global-method-override.html similarity index 100% rename from devtools/client/debugger/new/test/mochitest/examples/doc_global-method-override.html rename to devtools/client/debugger/test/mochitest/doc_global-method-override.html diff --git a/devtools/client/shared/test/browser.ini b/devtools/client/shared/test/browser.ini index 4b582b63fb80..f638e2f203b3 100644 --- a/devtools/client/shared/test/browser.ini +++ b/devtools/client/shared/test/browser.ini @@ -2,13 +2,9 @@ tags = devtools subsuite = devtools support-files = - addon1.xpi - addon2.xpi browser_devices.json doc_cubic-bezier-01.html doc_cubic-bezier-02.html - doc_empty-tab-01.html - doc_empty-tab-02.html doc_filter-editor-01.html doc_html_tooltip-02.xul doc_html_tooltip-03.xul @@ -25,8 +21,6 @@ support-files = doc_layoutHelpers-getBoxQuads.html doc_layoutHelpers.html doc_options-view.xul - doc_script-switching-01.html - doc_script-switching-02.html doc_spectrum.html doc_tableWidget_basic.html doc_tableWidget_keyboard_interaction.xul @@ -44,7 +38,6 @@ support-files = telemetry-test-helpers.js test-actor-registry.js test-actor.js - testactors.js !/devtools/client/responsive.html/test/browser/devices.json [browser_autocomplete_popup.js] @@ -57,8 +50,6 @@ support-files = [browser_cubic-bezier-05.js] [browser_cubic-bezier-06.js] [browser_cubic-bezier-07.js] -[browser_dbg_globalactor.js] -skip-if = e10s [browser_filter-editor-01.js] [browser_filter-editor-02.js] [browser_filter-editor-03.js] @@ -213,16 +204,3 @@ skip-if = !e10s || os == "win" # RDM only works for remote tabs, Win: bug 140419 [browser_devices.js] skip-if = verify [browser_theme_switching.js] -[browser_dbg_listaddons.js] -skip-if = e10s && debug -tags = addons -[browser_dbg_listtabs-01.js] -[browser_dbg_listtabs-02.js] -skip-if = true # Never worked for remote frames, needs a mock DebuggerServerConnection -[browser_dbg_listtabs-03.js] -skip-if = e10s && debug -[browser_dbg_multiple-windows.js] -[browser_dbg_navigation.js] -skip-if = e10s && debug -[browser_dbg_target-scoped-actor-01.js] -[browser_dbg_target-scoped-actor-02.js] \ No newline at end of file diff --git a/devtools/client/shared/test/browser_dbg_listaddons.js b/devtools/client/shared/test/browser_dbg_listaddons.js deleted file mode 100644 index 00593ee57fd8..000000000000 --- a/devtools/client/shared/test/browser_dbg_listaddons.js +++ /dev/null @@ -1,163 +0,0 @@ -/* -*- 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"; - -var { DebuggerServer } = require("devtools/server/main"); -var { DebuggerClient } = require("devtools/shared/client/debugger-client"); - -const chromeRegistry = - Cc["@mozilla.org/chrome/chrome-registry;1"].getService(Ci.nsIChromeRegistry); -const DEBUGGER_CHROME_URL = "chrome://mochitests/content/browser/devtools/client/shared/test/"; -const DEBUGGER_CHROME_URI = Services.io.newURI(DEBUGGER_CHROME_URL); - -/** - * Make sure the listAddons request works as specified. - */ -const ADDON1_ID = "jid1-oBAwBoE5rSecNg@jetpack"; -const ADDON1_PATH = "addon1.xpi"; -const ADDON2_ID = "jid1-qjtzNGV8xw5h2A@jetpack"; -const ADDON2_PATH = "addon2.xpi"; - -var gAddon1, gAddon1Actor, gAddon2, gClient; - -function test() { - DebuggerServer.init(); - DebuggerServer.registerAllActors(); - - const transport = DebuggerServer.connectPipe(); - gClient = new DebuggerClient(transport); - gClient.connect().then(([aType, aTraits]) => { - is(aType, "browser", - "Root actor should identify itself as a browser."); - - promise.resolve(null) - .then(testFirstAddon) - .then(testSecondAddon) - .then(testRemoveFirstAddon) - .then(testRemoveSecondAddon) - .then(() => gClient.close()) - .then(finish) - .catch(error => { - ok(false, "Got an error: " + error.message + "\n" + error.stack); - }); - }); -} - -function testFirstAddon() { - let addonListChanged = false; - gClient.addOneTimeListener("addonListChanged", () => { - addonListChanged = true; - }); - - return addTemporaryAddon(ADDON1_PATH).then(addon => { - gAddon1 = addon; - - return getAddonActorForId(gClient, ADDON1_ID).then(grip => { - ok(!addonListChanged, "Should not yet be notified that list of addons changed."); - ok(grip, "Should find an addon actor for addon1."); - gAddon1Actor = grip.actor; - }); - }); -} - -function testSecondAddon() { - let addonListChanged = false; - gClient.addOneTimeListener("addonListChanged", function() { - addonListChanged = true; - }); - - return addTemporaryAddon(ADDON2_PATH).then(addon => { - gAddon2 = addon; - - return getAddonActorForId(gClient, ADDON1_ID).then(fistGrip => { - return getAddonActorForId(gClient, ADDON2_ID).then(secondGrip => { - ok(addonListChanged, "Should be notified that list of addons changed."); - is(fistGrip.actor, gAddon1Actor, "First addon's actor shouldn't have changed."); - ok(secondGrip, "Should find a addon actor for the second addon."); - }); - }); - }); -} - -function testRemoveFirstAddon() { - let addonListChanged = false; - gClient.addOneTimeListener("addonListChanged", function() { - addonListChanged = true; - }); - - return removeAddon(gAddon1).then(() => { - return getAddonActorForId(gClient, ADDON1_ID).then(grip => { - ok(addonListChanged, "Should be notified that list of addons changed."); - ok(!grip, "Shouldn't find a addon actor for the first addon anymore."); - }); - }); -} - -function testRemoveSecondAddon() { - let addonListChanged = false; - gClient.addOneTimeListener("addonListChanged", function() { - addonListChanged = true; - }); - - return removeAddon(gAddon2).then(() => { - return getAddonActorForId(gClient, ADDON2_ID).then(grip => { - ok(addonListChanged, "Should be notified that list of addons changed."); - ok(!grip, "Shouldn't find a addon actor for the second addon anymore."); - }); - }); -} - -registerCleanupFunction(function() { - gAddon1 = null; - gAddon1Actor = null; - gAddon2 = null; - gClient = null; -}); - -function getAddonURIFromPath(path) { - const chromeURI = Services.io.newURI(path, null, DEBUGGER_CHROME_URI); - return chromeRegistry.convertChromeURL(chromeURI).QueryInterface(Ci.nsIFileURL); -} - -function addTemporaryAddon(path) { - const addonFile = getAddonURIFromPath(path).file; - info("Installing addon: " + addonFile.path); - - return AddonManager.installTemporaryAddon(addonFile); -} - -function getAddonActorForId(client, addonId) { - info("Get addon actor for ID: " + addonId); - const deferred = promise.defer(); - - client.listAddons(response => { - const addonTargetActor = response.addons.filter(grip => grip.id == addonId).pop(); - info("got addon actor for ID: " + addonId); - deferred.resolve(addonTargetActor); - }); - - return deferred.promise; -} - -function removeAddon(addon) { - info("Removing addon."); - - const deferred = promise.defer(); - - const listener = { - onUninstalled: function(uninstalledAddon) { - if (uninstalledAddon != addon) { - return; - } - AddonManager.removeAddonListener(listener); - deferred.resolve(); - } - }; - AddonManager.addAddonListener(listener); - addon.uninstall(); - - return deferred.promise; -} diff --git a/devtools/client/shared/test/browser_dbg_listtabs-01.js b/devtools/client/shared/test/browser_dbg_listtabs-01.js deleted file mode 100644 index 0e1d9a778541..000000000000 --- a/devtools/client/shared/test/browser_dbg_listtabs-01.js +++ /dev/null @@ -1,112 +0,0 @@ -/* -*- 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"; - -/** - * Make sure the listTabs request works as specified. - */ - -var { DebuggerServer } = require("devtools/server/main"); -var { DebuggerClient } = require("devtools/shared/client/debugger-client"); - -const TAB1_URL = EXAMPLE_URL + "doc_empty-tab-01.html"; -const TAB2_URL = EXAMPLE_URL + "doc_empty-tab-02.html"; - -var gTab1, gTab1Actor, gTab2, gTab2Actor, gClient; - -function test() { - DebuggerServer.init(); - DebuggerServer.registerAllActors(); - - const transport = DebuggerServer.connectPipe(); - gClient = new DebuggerClient(transport); - gClient.connect().then(([aType, aTraits]) => { - is(aType, "browser", - "Root actor should identify itself as a browser."); - - promise.resolve(null) - .then(testFirstTab) - .then(testSecondTab) - .then(testRemoveTab) - .then(testAttachRemovedTab) - .then(() => gClient.close()) - .then(finish) - .catch(error => { - ok(false, "Got an error: " + error.message + "\n" + error.stack); - }); - }); -} - -function testFirstTab() { - return addTab(TAB1_URL).then(tab => { - gTab1 = tab; - - return getTargetActorForUrl(gClient, TAB1_URL).then(grip => { - ok(grip, "Should find a target actor for the first tab."); - gTab1Actor = grip.actor; - }); - }); -} - -function testSecondTab() { - return addTab(TAB2_URL).then(tab => { - gTab2 = tab; - - return getTargetActorForUrl(gClient, TAB1_URL).then(firstGrip => { - return getTargetActorForUrl(gClient, TAB2_URL).then(secondGrip => { - is(firstGrip.actor, gTab1Actor, "First tab's actor shouldn't have changed."); - ok(secondGrip, "Should find a target actor for the second tab."); - gTab2Actor = secondGrip.actor; - }); - }); - }); -} - -function testRemoveTab() { - return removeTab(gTab1).then(() => { - return getTargetActorForUrl(gClient, TAB1_URL).then(grip => { - ok(!grip, "Shouldn't find a target actor for the first tab anymore."); - }); - }); -} - -function testAttachRemovedTab() { - return removeTab(gTab2).then(() => { - const deferred = promise.defer(); - - gClient.addListener("paused", () => { - ok(false, "Attaching to an exited target actor shouldn't generate a pause."); - deferred.reject(); - }); - - gClient.request({ to: gTab2Actor, type: "attach" }, response => { - is(response.error, "connectionClosed", - "Connection is gone since the tab was removed."); - deferred.resolve(); - }); - - return deferred.promise; - }); -} - -registerCleanupFunction(function() { - gTab1 = null; - gTab1Actor = null; - gTab2 = null; - gTab2Actor = null; - gClient = null; -}); - -function getTargetActorForUrl(client, url) { - const deferred = promise.defer(); - - client.listTabs().then(response => { - const targetActor = response.tabs.filter(grip => grip.url == url).pop(); - deferred.resolve(targetActor); - }); - - return deferred.promise; -} diff --git a/devtools/client/shared/test/doc_empty-tab-01.html b/devtools/client/shared/test/doc_empty-tab-01.html deleted file mode 100644 index 28398f776821..000000000000 --- a/devtools/client/shared/test/doc_empty-tab-01.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - Empty test page 1 - - - - - - diff --git a/devtools/client/shared/test/doc_empty-tab-02.html b/devtools/client/shared/test/doc_empty-tab-02.html deleted file mode 100644 index 5db150844734..000000000000 --- a/devtools/client/shared/test/doc_empty-tab-02.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - Empty test page 2 - - - - - - diff --git a/devtools/client/shared/test/doc_script-switching-01.html b/devtools/client/shared/test/doc_script-switching-01.html deleted file mode 100644 index afb4484b5d09..000000000000 --- a/devtools/client/shared/test/doc_script-switching-01.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Debugger test page - - - - - - - - - - diff --git a/devtools/client/shared/test/doc_script-switching-02.html b/devtools/client/shared/test/doc_script-switching-02.html deleted file mode 100644 index cceeea2c8ef5..000000000000 --- a/devtools/client/shared/test/doc_script-switching-02.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Debugger test page - - - - - - - - - - diff --git a/devtools/client/shared/test/head.js b/devtools/client/shared/test/head.js index 53a0678e6ba1..09cbb23f7dc4 100644 --- a/devtools/client/shared/test/head.js +++ b/devtools/client/shared/test/head.js @@ -16,8 +16,6 @@ const {Hosts} = require("devtools/client/framework/toolbox-hosts"); const TEST_URI_ROOT = "http://example.com/browser/devtools/client/shared/test/"; const OPTIONS_VIEW_URL = TEST_URI_ROOT + "doc_options-view.xul"; -const EXAMPLE_URL = "chrome://mochitests/content/browser/devtools/client/shared/test/"; - function catchFail(func) { return function() { try { diff --git a/devtools/client/shared/test/testactors.js b/devtools/client/shared/test/testactors.js deleted file mode 100644 index 26404d51e0c7..000000000000 --- a/devtools/client/shared/test/testactors.js +++ /dev/null @@ -1,27 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -"use strict"; - -function TestActor1(connection, tab) { - this.conn = connection; - this.tab = tab; -} - -TestActor1.prototype = { - actorPrefix: "testOne", - - grip: function TA1_grip() { - return { actor: this.actorID, - test: "TestActor1" }; - }, - - onPing: function TA1_onPing() { - return { pong: "pong" }; - } -}; - -TestActor1.prototype.requestTypes = { - "ping": TestActor1.prototype.onPing -}; -exports.TestActor1 = TestActor1;