michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: // Make sure the add-on actor can see loaded JS Modules from an add-on michael@0: michael@0: const ADDON_URL = EXAMPLE_URL + "addon5.xpi"; michael@0: michael@0: function test() { michael@0: Task.spawn(function () { michael@0: let addon = yield addAddon(ADDON_URL); michael@0: let tab1 = yield addTab("chrome://browser_dbg_addon5/content/test.xul"); michael@0: michael@0: let addonDebugger = yield initAddonDebugger(ADDON_URL); michael@0: michael@0: is(addonDebugger.title, "Debugger - Test unpacked add-on with JS Modules", "Saw the right toolbox title."); michael@0: michael@0: // Check the inital list of sources is correct michael@0: let groups = yield addonDebugger.getSourceGroups(); michael@0: is(groups[0].name, "browser_dbg_addon5@tests.mozilla.org", "Add-on code should be the first group"); michael@0: is(groups[1].name, "chrome://global", "XUL code should be the second group"); michael@0: is(groups.length, 2, "Should be only two groups."); michael@0: michael@0: let sources = groups[0].sources; michael@0: is(sources.length, 3, "Should be three sources"); michael@0: ok(sources[0].url.endsWith("/browser_dbg_addon5@tests.mozilla.org/bootstrap.js"), "correct url for bootstrap code") michael@0: is(sources[0].label, "bootstrap.js", "correct label for bootstrap code") michael@0: is(sources[1].url, "resource://browser_dbg_addon5/test.jsm", "correct url for addon code") michael@0: is(sources[1].label, "test.jsm", "correct label for addon code") michael@0: is(sources[2].url, "chrome://browser_dbg_addon5/content/testxul.js", "correct url for addon tab code") michael@0: is(sources[2].label, "testxul.js", "correct label for addon tab code") michael@0: michael@0: // Load a new module and tab and check they appear in the list of sources michael@0: Cu.import("resource://browser_dbg_addon5/test2.jsm", {}); michael@0: let tab2 = yield addTab("chrome://browser_dbg_addon5/content/test2.xul"); michael@0: michael@0: groups = yield addonDebugger.getSourceGroups(); michael@0: is(groups[0].name, "browser_dbg_addon5@tests.mozilla.org", "Add-on code should be the first group"); michael@0: is(groups[1].name, "chrome://global", "XUL code should be the second group"); michael@0: is(groups.length, 2, "Should be only two groups."); michael@0: michael@0: sources = groups[0].sources; michael@0: is(sources.length, 5, "Should be five sources"); michael@0: ok(sources[0].url.endsWith("/browser_dbg_addon5@tests.mozilla.org/bootstrap.js"), "correct url for bootstrap code") michael@0: is(sources[0].label, "bootstrap.js", "correct label for bootstrap code") michael@0: is(sources[1].url, "resource://browser_dbg_addon5/test.jsm", "correct url for addon code") michael@0: is(sources[1].label, "test.jsm", "correct label for addon code") michael@0: is(sources[2].url, "chrome://browser_dbg_addon5/content/testxul.js", "correct url for addon tab code") michael@0: is(sources[2].label, "testxul.js", "correct label for addon tab code") michael@0: is(sources[3].url, "resource://browser_dbg_addon5/test2.jsm", "correct url for addon code") michael@0: is(sources[3].label, "test2.jsm", "correct label for addon code") michael@0: is(sources[4].url, "chrome://browser_dbg_addon5/content/testxul2.js", "correct url for addon tab code") michael@0: is(sources[4].label, "testxul2.js", "correct label for addon tab code") michael@0: michael@0: Cu.unload("resource://browser_dbg_addon5/test2.jsm"); michael@0: yield addonDebugger.destroy(); michael@0: yield removeTab(tab1); michael@0: yield removeTab(tab2); michael@0: yield removeAddon(addon); michael@0: finish(); michael@0: }); michael@0: }