summaryrefslogtreecommitdiffstats
path: root/embedding/tests
diff options
context:
space:
mode:
Diffstat (limited to 'embedding/tests')
-rw-r--r--embedding/tests/unit/test_wwauthpromptfactory.js67
-rw-r--r--embedding/tests/unit/test_wwpromptfactory.js24
-rw-r--r--embedding/tests/unit/xpcshell.ini6
3 files changed, 97 insertions, 0 deletions
diff --git a/embedding/tests/unit/test_wwauthpromptfactory.js b/embedding/tests/unit/test_wwauthpromptfactory.js
new file mode 100644
index 000000000..358e5ca6d
--- /dev/null
+++ b/embedding/tests/unit/test_wwauthpromptfactory.js
@@ -0,0 +1,67 @@
+var Cc = Components.classes;
+var Ci = Components.interfaces;
+
+var authPromptRequestReceived;
+
+const tPFCID = Components.ID("{749e62f4-60ae-4569-a8a2-de78b649660f}");
+const tPFContract = "@mozilla.org/passwordmanager/authpromptfactory;1";
+
+/*
+ * TestPromptFactory
+ *
+ * Implements nsIPromptFactory
+ */
+var TestPromptFactory = {
+ QueryInterface: function tPF_qi(iid) {
+ if (iid.equals(Ci.nsISupports) ||
+ iid.equals(Ci.nsIFactory) ||
+ iid.equals(Ci.nsIPromptFactory))
+ return this;
+ throw Components.results.NS_ERROR_NO_INTERFACE;
+ },
+
+ createInstance: function tPF_ci(outer, iid) {
+ if (outer)
+ throw Components.results.NS_ERROR_NO_AGGREGATION;
+ return this.QueryInterface(iid);
+ },
+
+ lockFactory: function tPF_lockf(lock) {
+ throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
+ },
+
+ getPrompt : function tPF_getPrompt(aWindow, aIID) {
+ if (aIID.equals(Ci.nsIAuthPrompt) ||
+ aIID.equals(Ci.nsIAuthPrompt2)) {
+ authPromptRequestReceived = true;
+ return {};
+ }
+
+ throw Components.results.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
+ // nsIPromptService2)
+ var ww = Cc["@mozilla.org/embedcomp/window-watcher;1"].getService();
+
+ authPromptRequestReceived = false;
+
+ do_check_neq(ww.nsIPromptFactory.getPrompt(null, Ci.nsIAuthPrompt), null);
+
+ do_check_true(authPromptRequestReceived);
+
+ authPromptRequestReceived = false;
+
+ do_check_neq(ww.nsIPromptFactory.getPrompt(null, Ci.nsIAuthPrompt2), null);
+
+ do_check_true(authPromptRequestReceived);
+}
diff --git a/embedding/tests/unit/test_wwpromptfactory.js b/embedding/tests/unit/test_wwpromptfactory.js
new file mode 100644
index 000000000..d595988c9
--- /dev/null
+++ b/embedding/tests/unit/test_wwpromptfactory.js
@@ -0,0 +1,24 @@
+function run_test() {
+ // Make sure that getting both nsIAuthPrompt and nsIAuthPrompt2 works
+ // (these should work independently of whether the application has
+ // nsIPromptService2)
+ var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
+ .getService();
+
+ var prompt;
+
+ prompt = ww.nsIWindowWatcher.getNewPrompter(null);
+ do_check_neq(prompt, null);
+ prompt = ww.nsIWindowWatcher.getNewAuthPrompter(null);
+ do_check_neq(prompt, null);
+
+ prompt = ww.nsIPromptFactory.getPrompt(null,
+ Components.interfaces.nsIPrompt);
+ do_check_neq(prompt, null);
+ prompt = ww.nsIPromptFactory.getPrompt(null,
+ Components.interfaces.nsIAuthPrompt);
+ do_check_neq(prompt, null);
+ prompt = ww.nsIPromptFactory.getPrompt(null,
+ Components.interfaces.nsIAuthPrompt2);
+ do_check_neq(prompt, null);
+}
diff --git a/embedding/tests/unit/xpcshell.ini b/embedding/tests/unit/xpcshell.ini
new file mode 100644
index 000000000..b3c55a1e7
--- /dev/null
+++ b/embedding/tests/unit/xpcshell.ini
@@ -0,0 +1,6 @@
+[DEFAULT]
+head =
+tail =
+
+[test_wwauthpromptfactory.js]
+[test_wwpromptfactory.js]