summaryrefslogtreecommitdiffstats
path: root/netwerk/test/unit/test_1073747.js
diff options
context:
space:
mode:
Diffstat (limited to 'netwerk/test/unit/test_1073747.js')
-rw-r--r--netwerk/test/unit/test_1073747.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/netwerk/test/unit/test_1073747.js b/netwerk/test/unit/test_1073747.js
new file mode 100644
index 000000000..c930514e7
--- /dev/null
+++ b/netwerk/test/unit/test_1073747.js
@@ -0,0 +1,30 @@
+// Test based on submitted one from Peter B Shalimoff
+
+var test = function(s, funcName){
+ function Arg(){};
+ Arg.prototype.toString = function(){
+ do_print("Testing " + funcName + " with null args");
+ return this.value;
+ };
+ // create a generic arg lits of null, -1, and 10 nulls
+ var args = [s, -1];
+ for (var i = 0; i < 10; ++i) {
+ args.push(new Arg());
+ }
+ var up = Components.classes["@mozilla.org/network/url-parser;1?auth=maybe"].getService(Components.interfaces.nsIURLParser);
+ try {
+ up[funcName].apply(up, args);
+ return args;
+ } catch (x) {
+ do_check_true(true); // make sure it throws an exception instead of crashing
+ return x;
+ }
+ // should always have an exception to catch
+ do_check_true(false);
+};
+var s = null;
+var funcs = ["parseAuthority", "parseFileName", "parseFilePath", "parsePath", "parseServerInfo", "parseURL", "parseUserInfo"];
+
+function run_test() {
+ funcs.forEach(function(f){test(s, f);});
+}