From 82d89ea7b4d7315aba012d9640aff1b4c0eae4bb Mon Sep 17 00:00:00 2001 From: Bobby Holley Date: Sun, 25 Sep 2011 15:38:00 +0100 Subject: [PATCH] Bug 684327 - Generalize test_readwriteattributes.js into test_attributes.js. r=khuey --HG-- rename : js/src/xpconnect/tests/unit/test_readwriteattributes.js => js/src/xpconnect/tests/unit/test_attributes.js --- .../tests/components/js/xpctest.manifest | 3 ++ .../tests/components/js/xpctest_attributes.js | 21 +++++++++++++- ...dwriteattributes.js => test_attributes.js} | 28 ++++++++++++++----- js/src/xpconnect/tests/unit/xpcshell.ini | 2 +- 4 files changed, 45 insertions(+), 9 deletions(-) rename js/src/xpconnect/tests/unit/{test_readwriteattributes.js => test_attributes.js} (77%) diff --git a/js/src/xpconnect/tests/components/js/xpctest.manifest b/js/src/xpconnect/tests/components/js/xpctest.manifest index e3aa34790e13..58ae43477bf6 100644 --- a/js/src/xpconnect/tests/components/js/xpctest.manifest +++ b/js/src/xpconnect/tests/components/js/xpctest.manifest @@ -1,2 +1,5 @@ component {8ff41d9c-66e9-4453-924a-7d8de0a5e966} xpctest_attributes.js contract @mozilla.org/js/xpc/test/js/ObjectReadWrite;1 {8ff41d9c-66e9-4453-924a-7d8de0a5e966} + +component {916c4247-253d-4ed0-a425-adfedf53ecc8} xpctest_attributes.js +contract @mozilla.org/js/xpc/test/js/ObjectReadOnly;1 {916c4247-253d-4ed0-a425-adfedf53ecc8} diff --git a/js/src/xpconnect/tests/components/js/xpctest_attributes.js b/js/src/xpconnect/tests/components/js/xpctest_attributes.js index eda54d3a2b74..6dae79861f4c 100644 --- a/js/src/xpconnect/tests/components/js/xpctest_attributes.js +++ b/js/src/xpconnect/tests/components/js/xpctest_attributes.js @@ -52,4 +52,23 @@ TestObjectReadWrite.prototype = { charProperty: "X" }; -var NSGetFactory = XPCOMUtils.generateNSGetFactory([TestObjectReadWrite]); + +function TestObjectReadOnly() {} +TestObjectReadOnly.prototype = { + + /* Boilerplate */ + QueryInterface: XPCOMUtils.generateQI([Components.interfaces["nsIXPCTestObjectReadOnly"]]), + contractID: "@mozilla.org/js/xpc/test/js/ObjectReadOnly;1", + classID: Components.ID("{916c4247-253d-4ed0-a425-adfedf53ecc8}"), + + /* nsIXPCTestObjectReadOnly */ + strReadOnly: "XPConnect Read-Only String", + boolReadOnly: true, + shortReadOnly: 32767, + longReadOnly: 2147483647, + floatReadOnly: 5.5, + charReadOnly: "X" +}; + + +var NSGetFactory = XPCOMUtils.generateNSGetFactory([TestObjectReadWrite, TestObjectReadOnly]); diff --git a/js/src/xpconnect/tests/unit/test_readwriteattributes.js b/js/src/xpconnect/tests/unit/test_attributes.js similarity index 77% rename from js/src/xpconnect/tests/unit/test_readwriteattributes.js rename to js/src/xpconnect/tests/unit/test_attributes.js index 5399373ffc98..9387b270c73e 100644 --- a/js/src/xpconnect/tests/unit/test_readwriteattributes.js +++ b/js/src/xpconnect/tests/unit/test_attributes.js @@ -34,8 +34,8 @@ * * ***** END LICENSE BLOCK ***** */ -// Globals -var gInterface = Components.interfaces["nsIXPCTestObjectReadWrite"]; +const Cc = Components.classes; +const Ci = Components.interfaces; function run_test() { @@ -44,15 +44,16 @@ function run_test() { Components.manager.autoRegister(do_get_file('../components/js/xpctest.manifest')); // Test for each component. - test_component("@mozilla.org/js/xpc/test/native/ObjectReadWrite;1"); - test_component("@mozilla.org/js/xpc/test/js/ObjectReadWrite;1"); - + test_component_readwrite("@mozilla.org/js/xpc/test/native/ObjectReadWrite;1"); + test_component_readwrite("@mozilla.org/js/xpc/test/js/ObjectReadWrite;1"); + test_component_readonly("@mozilla.org/js/xpc/test/native/ObjectReadOnly;1"); + test_component_readonly("@mozilla.org/js/xpc/test/js/ObjectReadOnly;1"); } -function test_component(contractid) { +function test_component_readwrite(contractid) { // Instantiate the object. - var o = Components.classes[contractid].createInstance(gInterface); + var o = Cc[contractid].createInstance(Ci["nsIXPCTestObjectReadWrite"]); // Test the initial values. do_check_eq("XPConnect Read-Writable String", o.stringProperty); @@ -93,3 +94,16 @@ function test_component(contractid) { SetAndTestBooleanProperty({}, true); } +function test_component_readonly(contractid) { + + // Instantiate the object. + var o = Cc[contractid].createInstance(Ci["nsIXPCTestObjectReadOnly"]); + + // Test the initial values. + do_check_eq("XPConnect Read-Only String", o.strReadOnly); + do_check_eq(true, o.boolReadOnly); + do_check_eq(32767, o.shortReadOnly); + do_check_eq(2147483647, o.longReadOnly); + do_check_true(5.25 < o.floatReadOnly && 5.75 > o.floatReadOnly); + do_check_eq("X", o.charReadOnly); +} diff --git a/js/src/xpconnect/tests/unit/xpcshell.ini b/js/src/xpconnect/tests/unit/xpcshell.ini index 194bbeb42c68..2421bb269b3a 100644 --- a/js/src/xpconnect/tests/unit/xpcshell.ini +++ b/js/src/xpconnect/tests/unit/xpcshell.ini @@ -21,4 +21,4 @@ fail-if = os == "android" [test_recursive_import.js] [test_xpcomutils.js] [test_unload.js] -[test_readwriteattributes.js] +[test_attributes.js]