1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/chrome/test/unit/test_abi.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,60 @@ 1.4 +const XULAppInfo = { 1.5 + vendor: "Mozilla", 1.6 + name: "XPCShell", 1.7 + ID: "{39885e5f-f6b4-4e2a-87e5-6259ecf79011}", 1.8 + version: "5", 1.9 + appBuildID: "2007010101", 1.10 + platformVersion: "1.9", 1.11 + platformBuildID: "2007010101", 1.12 + inSafeMode: false, 1.13 + logConsoleErrors: true, 1.14 + OS: "XPCShell", 1.15 + XPCOMABI: "noarch-spidermonkey", 1.16 + 1.17 + QueryInterface: function QueryInterface(iid) { 1.18 + if (iid.equals(Ci.nsIXULAppInfo) 1.19 + || iid.equals(Ci.nsIXULRuntime) 1.20 + || iid.equals(Ci.nsISupports)) 1.21 + return this; 1.22 + 1.23 + throw Components.results.NS_ERROR_NO_INTERFACE; 1.24 + } 1.25 +}; 1.26 + 1.27 +const XULAppInfoFactory = { 1.28 + // These two are used when we register all our factories (and unregister) 1.29 + CID: XULAPPINFO_CID, 1.30 + scheme: "XULAppInfo", 1.31 + contractID: XULAPPINFO_CONTRACTID, 1.32 + createInstance: function (outer, iid) { 1.33 + if (outer != null) 1.34 + throw Cr.NS_ERROR_NO_AGGREGATION; 1.35 + return XULAppInfo.QueryInterface(iid); 1.36 + } 1.37 +}; 1.38 + 1.39 +var registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar); 1.40 +registrar.registerFactory(XULAPPINFO_CID, "XULAppInfo", 1.41 + XULAPPINFO_CONTRACTID, XULAppInfoFactory); 1.42 + 1.43 +registerManifests([do_get_file("data/test_abi.manifest")]); 1.44 + 1.45 +const catman = Components.classes["@mozilla.org/categorymanager;1"]. 1.46 + getService(Components.interfaces.nsICategoryManager); 1.47 + 1.48 +function is_registered(name) { 1.49 + try { 1.50 + var d = catman.getCategoryEntry("abitest", name); 1.51 + return d == "found"; 1.52 + } 1.53 + catch (e) { 1.54 + return false; 1.55 + } 1.56 +} 1.57 + 1.58 +function run_test() { 1.59 + do_check_true(is_registered("test1")); 1.60 + do_check_false(is_registered("test2")); 1.61 + do_check_true(is_registered("test3")); 1.62 + do_check_false(is_registered("test4")); 1.63 +}