1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/components/contentprefs/tests/unit/test_bug679784.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,103 @@ 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 + 1.9 +var prefObserver = { 1.10 + setCalledNum: 0, 1.11 + onContentPrefSet: function(aGroup, aName, aValue) { 1.12 + this.setCalledNum++; 1.13 + }, 1.14 + removedCalledNum: 0, 1.15 + onContentPrefRemoved: function(aGroup, aName) { 1.16 + this.removedCalledNum++; 1.17 + } 1.18 +}; 1.19 + 1.20 +function run_test() { 1.21 + let loadContext = { get usePrivateBrowsing() { return gInPrivateBrowsing; } }; 1.22 + 1.23 + var cps = new ContentPrefInstance(loadContext); 1.24 + cps.removeGroupedPrefs(); 1.25 + 1.26 + var uri = ContentPrefTest.getURI("http://www.example.com/"); 1.27 + var group = cps.grouper.group(uri); 1.28 + 1.29 + // first, set a pref in normal mode 1.30 + cps.setPref(uri, "value", "foo"); 1.31 + cps.setPref(null, "value-global", "foo-global"); 1.32 + 1.33 + var num; 1.34 + cps.addObserver("value", prefObserver); 1.35 + cps.addObserver("value-global", prefObserver); 1.36 + 1.37 + enterPBMode(); 1.38 + 1.39 + // test setPref 1.40 + num = prefObserver.setCalledNum; 1.41 + cps.setPref(uri, "value", "foo-private-browsing"); 1.42 + do_check_eq(cps.hasPref(uri, "value"), true); 1.43 + do_check_eq(cps.getPref(uri, "value"), "foo-private-browsing"); 1.44 + do_check_eq(prefObserver.setCalledNum, num + 1); 1.45 + 1.46 + num = prefObserver.setCalledNum; 1.47 + cps.setPref(null, "value-global", "foo-private-browsing-global"); 1.48 + do_check_eq(cps.hasPref(null, "value-global"), true); 1.49 + do_check_eq(cps.getPref(null, "value-global"), "foo-private-browsing-global"); 1.50 + do_check_eq(prefObserver.setCalledNum, num + 1); 1.51 + 1.52 + // test removePref 1.53 + num = prefObserver.removedCalledNum; 1.54 + cps.removePref(uri, "value"); 1.55 + do_check_eq(cps.hasPref(uri, "value"), true); 1.56 + // fallback to non private mode value 1.57 + do_check_eq(cps.getPref(uri, "value"), "foo"); 1.58 + do_check_eq(prefObserver.removedCalledNum, num + 1); 1.59 + 1.60 + num = prefObserver.removedCalledNum; 1.61 + cps.removePref(null, "value-global"); 1.62 + do_check_eq(cps.hasPref(null, "value-global"), true); 1.63 + // fallback to non private mode value 1.64 + do_check_eq(cps.getPref(null, "value-global"), "foo-global") ; 1.65 + do_check_eq(prefObserver.removedCalledNum, num + 1); 1.66 + 1.67 + // test removeGroupedPrefs 1.68 + cps.setPref(uri, "value", "foo-private-browsing"); 1.69 + cps.removeGroupedPrefs(); 1.70 + do_check_eq(cps.hasPref(uri, "value"), false); 1.71 + do_check_eq(cps.getPref(uri, "value"), undefined); 1.72 + 1.73 + cps.setPref(null, "value-global", "foo-private-browsing-global"); 1.74 + cps.removeGroupedPrefs(); 1.75 + do_check_eq(cps.hasPref(null, "value-global"), true); 1.76 + do_check_eq(cps.getPref(null, "value-global"), "foo-private-browsing-global"); 1.77 + 1.78 + // test removePrefsByName 1.79 + num = prefObserver.removedCalledNum; 1.80 + cps.setPref(uri, "value", "foo-private-browsing"); 1.81 + cps.removePrefsByName("value"); 1.82 + do_check_eq(cps.hasPref(uri, "value"), false); 1.83 + do_check_eq(cps.getPref(uri, "value"), undefined); 1.84 + do_check_true(prefObserver.removedCalledNum > num); 1.85 + 1.86 + num = prefObserver.removedCalledNum; 1.87 + cps.setPref(null, "value-global", "foo-private-browsing"); 1.88 + cps.removePrefsByName("value-global"); 1.89 + do_check_eq(cps.hasPref(null, "value-global"), false); 1.90 + do_check_eq(cps.getPref(null, "value-global"), undefined); 1.91 + do_check_true(prefObserver.removedCalledNum > num); 1.92 + 1.93 + // test getPrefs 1.94 + cps.setPref(uri, "value", "foo-private-browsing"); 1.95 + do_check_eq(cps.getPrefs(uri).getProperty("value"), "foo-private-browsing"); 1.96 + 1.97 + cps.setPref(null, "value-global", "foo-private-browsing-global"); 1.98 + do_check_eq(cps.getPrefs(null).getProperty("value-global"), "foo-private-browsing-global"); 1.99 + 1.100 + // test getPrefsByName 1.101 + do_check_eq(cps.getPrefsByName("value").getProperty(group), "foo-private-browsing"); 1.102 + do_check_eq(cps.getPrefsByName("value-global").getProperty(null), "foo-private-browsing-global"); 1.103 + 1.104 + cps.removeObserver("value", prefObserver); 1.105 + cps.removeObserver("value-global", prefObserver); 1.106 +}