diff options
Diffstat (limited to 'netwerk/test/unit/test_1073747.js')
-rw-r--r-- | netwerk/test/unit/test_1073747.js | 30 |
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);}); +} |