mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-09 01:08:39 +09:00
Import Tycho's Add-on Manager
This commit is contained in:
parent
d07bf4bba2
commit
a122115666
875 changed files with 111377 additions and 0 deletions
112
toolkit/mozapps/extensions/test/browser/browser_debug_button.js
Normal file
112
toolkit/mozapps/extensions/test/browser/browser_debug_button.js
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
/**
|
||||
* Tests debug button for addons in list view
|
||||
*/
|
||||
|
||||
let { Promise } = Components.utils.import("resource://gre/modules/Promise.jsm", {});
|
||||
let { Task } = Components.utils.import("resource://gre/modules/Task.jsm", {});
|
||||
|
||||
const getDebugButton = node =>
|
||||
node.ownerDocument.getAnonymousElementByAttribute(node, "anonid", "debug-btn");
|
||||
const addonDebuggingEnabled = bool =>
|
||||
Services.prefs.setBoolPref("devtools.chrome.enabled", !!bool);
|
||||
const remoteDebuggingEnabled = bool =>
|
||||
Services.prefs.setBoolPref("devtools.debugger.remote-enabled", !!bool);
|
||||
|
||||
function test() {
|
||||
requestLongerTimeout(2);
|
||||
|
||||
waitForExplicitFinish();
|
||||
|
||||
|
||||
var gProvider = new MockProvider();
|
||||
gProvider.createAddons([{
|
||||
id: "non-debuggable@tests.mozilla.org",
|
||||
name: "No debug",
|
||||
description: "foo"
|
||||
},
|
||||
{
|
||||
id: "debuggable@tests.mozilla.org",
|
||||
name: "Debuggable",
|
||||
description: "bar",
|
||||
isDebuggable: true
|
||||
}]);
|
||||
|
||||
Task.spawn(function* () {
|
||||
addonDebuggingEnabled(false);
|
||||
remoteDebuggingEnabled(false);
|
||||
|
||||
yield testDOM((nondebug, debuggable) => {
|
||||
is(nondebug.disabled, true,
|
||||
"addon:disabled::remote:disabled button is disabled for legacy addons");
|
||||
is(nondebug.hidden, true,
|
||||
"addon:disabled::remote:disabled button is hidden for legacy addons");
|
||||
is(debuggable.disabled, true,
|
||||
"addon:disabled::remote:disabled button is disabled for debuggable addons");
|
||||
is(debuggable.hidden, true,
|
||||
"addon:disabled::remote:disabled button is hidden for debuggable addons");
|
||||
});
|
||||
|
||||
addonDebuggingEnabled(true);
|
||||
remoteDebuggingEnabled(false);
|
||||
|
||||
yield testDOM((nondebug, debuggable) => {
|
||||
is(nondebug.disabled, true,
|
||||
"addon:enabled::remote:disabled button is disabled for legacy addons");
|
||||
is(nondebug.disabled, true,
|
||||
"addon:enabled::remote:disabled button is hidden for legacy addons");
|
||||
is(debuggable.disabled, true,
|
||||
"addon:enabled::remote:disabled button is disabled for debuggable addons");
|
||||
is(debuggable.disabled, true,
|
||||
"addon:enabled::remote:disabled button is hidden for debuggable addons");
|
||||
});
|
||||
|
||||
addonDebuggingEnabled(false);
|
||||
remoteDebuggingEnabled(true);
|
||||
|
||||
yield testDOM((nondebug, debuggable) => {
|
||||
is(nondebug.disabled, true,
|
||||
"addon:disabled::remote:enabled button is disabled for legacy addons");
|
||||
is(nondebug.disabled, true,
|
||||
"addon:disabled::remote:enabled button is hidden for legacy addons");
|
||||
is(debuggable.disabled, true,
|
||||
"addon:disabled::remote:enabled button is disabled for debuggable addons");
|
||||
is(debuggable.disabled, true,
|
||||
"addon:disabled::remote:enabled button is hidden for debuggable addons");
|
||||
});
|
||||
|
||||
addonDebuggingEnabled(true);
|
||||
remoteDebuggingEnabled(true);
|
||||
|
||||
yield testDOM((nondebug, debuggable) => {
|
||||
is(nondebug.disabled, true,
|
||||
"addon:enabled::remote:enabled button is disabled for legacy addons");
|
||||
is(nondebug.disabled, true,
|
||||
"addon:enabled::remote:enabled button is hidden for legacy addons");
|
||||
is(debuggable.disabled, false,
|
||||
"addon:enabled::remote:enabled button is enabled for debuggable addons");
|
||||
is(debuggable.hidden, false,
|
||||
"addon:enabled::remote:enabled button is visible for debuggable addons");
|
||||
});
|
||||
|
||||
finish();
|
||||
});
|
||||
|
||||
function testDOM (testCallback) {
|
||||
let deferred = Promise.defer();
|
||||
open_manager("addons://list/extension", function(aManager) {
|
||||
const {document} = aManager;
|
||||
const addonList = document.getElementById("addon-list");
|
||||
const nondebug = addonList.querySelector("[name='No debug']");
|
||||
const debuggable = addonList.querySelector("[name='Debuggable']");
|
||||
|
||||
testCallback.apply(null, [nondebug, debuggable].map(getDebugButton));
|
||||
|
||||
close_manager(aManager, deferred.resolve);
|
||||
});
|
||||
return deferred.promise;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue