1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/modules/libpref/test/unit/test_bug577950.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,28 @@ 1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.7 + 1.8 +function run_test() { 1.9 + var ps = Cc["@mozilla.org/preferences-service;1"]. 1.10 + getService(Ci.nsIPrefService); 1.11 + 1.12 + var pb = Cc["@mozilla.org/preferences-service;1"]. 1.13 + getService(Ci.nsIPrefBranch); 1.14 + 1.15 + var observer = { 1.16 + QueryInterface: function QueryInterface(aIID) { 1.17 + if (aIID.equals(Ci.nsIObserver) || 1.18 + aIID.equals(Ci.nsISupports)) 1.19 + return this; 1.20 + throw Components.results.NS_NOINTERFACE; 1.21 + }, 1.22 + 1.23 + observe: function observe(aSubject, aTopic, aState) { 1.24 + // Don't do anything. 1.25 + } 1.26 + } 1.27 + 1.28 + /* Set the same pref twice. This shouldn't leak. */ 1.29 + pb.addObserver("UserPref.nonexistent.setIntPref", observer, false); 1.30 + pb.addObserver("UserPref.nonexistent.setIntPref", observer, false); 1.31 +}