test_mockRegistrar.js (1738B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 const { MockRegistrar } = ChromeUtils.importESModule( 5 "resource://testing-common/MockRegistrar.sys.mjs" 6 ); 7 8 function platformInfo(injectedValue) { 9 this.platformVersion = injectedValue; 10 } 11 12 platformInfo.prototype = { 13 platformVersion: "some version", 14 platformBuildID: "some id", 15 QueryInterface: ChromeUtils.generateQI(["nsIPlatformInfo"]), 16 }; 17 18 add_test(function test_register() { 19 let localPlatformInfo = { 20 platformVersion: "local version", 21 platformBuildID: "local id", 22 QueryInterface: ChromeUtils.generateQI(["nsIPlatformInfo"]), 23 }; 24 25 MockRegistrar.register("@mozilla.org/xre/app-info;1", localPlatformInfo); 26 Assert.equal( 27 Cc["@mozilla.org/xre/app-info;1"].createInstance(Ci.nsIPlatformInfo) 28 .platformVersion, 29 "local version" 30 ); 31 run_next_test(); 32 }); 33 34 add_test(function test_register_with_arguments() { 35 MockRegistrar.register("@mozilla.org/xre/app-info;1", platformInfo, [ 36 "override", 37 ]); 38 Assert.equal( 39 Cc["@mozilla.org/xre/app-info;1"].createInstance(Ci.nsIPlatformInfo) 40 .platformVersion, 41 "override" 42 ); 43 run_next_test(); 44 }); 45 46 add_test(function test_register_twice() { 47 MockRegistrar.register("@mozilla.org/xre/app-info;1", platformInfo, [ 48 "override", 49 ]); 50 Assert.equal( 51 Cc["@mozilla.org/xre/app-info;1"].createInstance(Ci.nsIPlatformInfo) 52 .platformVersion, 53 "override" 54 ); 55 56 MockRegistrar.register("@mozilla.org/xre/app-info;1", platformInfo, [ 57 "override again", 58 ]); 59 Assert.equal( 60 Cc["@mozilla.org/xre/app-info;1"].createInstance(Ci.nsIPlatformInfo) 61 .platformVersion, 62 "override again" 63 ); 64 run_next_test(); 65 });