fune/toolkit/components/windowcreator/tests/unit/test_wwauthpromptfactory.js
Ian Moody 011b59d595 Bug 1536556 - Replace raw thrown Cr.ERRORs with Components.Exception. r=mossop,remote-protocol-reviewers,marionette-reviewers,whimboo,necko-reviewers,geckoview-reviewers,valentin,agi
Raw Cr.ERROR don't get stack information, same as throwing JS literals instead
of `new Error()`s.

This was done automatically with a new eslint rule that will be introduced in
the next commit.  One instance of a raw Cr.ERROR was not replaced since it is
used in a test that specifically checks the preservation of raw Cr values in
XPCJS.  The rule will be disabled for that instance.

Differential Revision: https://phabricator.services.mozilla.com/D28073
2020-05-05 17:41:36 +00:00

62 lines
1.6 KiB
JavaScript

var authPromptRequestReceived;
const tPFCID = Components.ID("{749e62f4-60ae-4569-a8a2-de78b649660f}");
const tPFContract = "@mozilla.org/passwordmanager/authpromptfactory;1";
/*
* TestPromptFactory
*
* Implements nsIPromptFactory
*/
var TestPromptFactory = {
QueryInterface: ChromeUtils.generateQI(["nsIFactory", "nsIPromptFactory"]),
createInstance: function tPF_ci(outer, iid) {
if (outer) {
throw Components.Exception("", Cr.NS_ERROR_NO_AGGREGATION);
}
return this.QueryInterface(iid);
},
lockFactory: function tPF_lockf(lock) {
throw Components.Exception("", Cr.NS_ERROR_NOT_IMPLEMENTED);
},
getPrompt: function tPF_getPrompt(aWindow, aIID) {
if (aIID.equals(Ci.nsIAuthPrompt) || aIID.equals(Ci.nsIAuthPrompt2)) {
authPromptRequestReceived = true;
return {};
}
throw Components.Exception("", Cr.NS_ERROR_NO_INTERFACE);
},
}; // end of TestPromptFactory implementation
/*
* The tests
*/
function run_test() {
Components.manager.nsIComponentRegistrar.registerFactory(
tPFCID,
"TestPromptFactory",
tPFContract,
TestPromptFactory
);
// Make sure that getting both nsIAuthPrompt and nsIAuthPrompt2 works
// (these should work independently of whether the application has
// nsIPromptService)
var ww = Cc["@mozilla.org/embedcomp/window-watcher;1"].getService();
authPromptRequestReceived = false;
Assert.notEqual(ww.nsIPromptFactory.getPrompt(null, Ci.nsIAuthPrompt), null);
Assert.ok(authPromptRequestReceived);
authPromptRequestReceived = false;
Assert.notEqual(ww.nsIPromptFactory.getPrompt(null, Ci.nsIAuthPrompt2), null);
Assert.ok(authPromptRequestReceived);
}