// 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);});
}