summaryrefslogtreecommitdiffstats
path: root/toolkit/components/windowcreator/tests
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/windowcreator/tests')
-rw-r--r--toolkit/components/windowcreator/tests/unit/test_wwauthpromptfactory.js55
-rw-r--r--toolkit/components/windowcreator/tests/unit/test_wwpromptfactory.js20
-rw-r--r--toolkit/components/windowcreator/tests/unit/xpcshell.ini5
3 files changed, 80 insertions, 0 deletions
diff --git a/toolkit/components/windowcreator/tests/unit/test_wwauthpromptfactory.js b/toolkit/components/windowcreator/tests/unit/test_wwauthpromptfactory.js
new file mode 100644
index 0000000000..ba4d4b8f9b
--- /dev/null
+++ b/toolkit/components/windowcreator/tests/unit/test_wwauthpromptfactory.js
@@ -0,0 +1,55 @@
+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(iid) {
+ return this.QueryInterface(iid);
+ },
+
+ 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);
+}
diff --git a/toolkit/components/windowcreator/tests/unit/test_wwpromptfactory.js b/toolkit/components/windowcreator/tests/unit/test_wwpromptfactory.js
new file mode 100644
index 0000000000..92c8d90c1f
--- /dev/null
+++ b/toolkit/components/windowcreator/tests/unit/test_wwpromptfactory.js
@@ -0,0 +1,20 @@
+function run_test() {
+ // 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();
+
+ var prompt;
+
+ prompt = ww.nsIWindowWatcher.getNewPrompter(null);
+ Assert.notEqual(prompt, null);
+ prompt = ww.nsIWindowWatcher.getNewAuthPrompter(null);
+ Assert.notEqual(prompt, null);
+
+ prompt = ww.nsIPromptFactory.getPrompt(null, Ci.nsIPrompt);
+ Assert.notEqual(prompt, null);
+ prompt = ww.nsIPromptFactory.getPrompt(null, Ci.nsIAuthPrompt);
+ Assert.notEqual(prompt, null);
+ prompt = ww.nsIPromptFactory.getPrompt(null, Ci.nsIAuthPrompt2);
+ Assert.notEqual(prompt, null);
+}
diff --git a/toolkit/components/windowcreator/tests/unit/xpcshell.ini b/toolkit/components/windowcreator/tests/unit/xpcshell.ini
new file mode 100644
index 0000000000..bd6eb7a043
--- /dev/null
+++ b/toolkit/components/windowcreator/tests/unit/xpcshell.ini
@@ -0,0 +1,5 @@
+[DEFAULT]
+head =
+
+[test_wwauthpromptfactory.js]
+[test_wwpromptfactory.js]