diff options
Diffstat (limited to 'devtools/client/shared/test/browser_prefs-01.js')
-rw-r--r-- | devtools/client/shared/test/browser_prefs-01.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/devtools/client/shared/test/browser_prefs-01.js b/devtools/client/shared/test/browser_prefs-01.js new file mode 100644 index 0000000000..2989cdee57 --- /dev/null +++ b/devtools/client/shared/test/browser_prefs-01.js @@ -0,0 +1,53 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Tests that the preference helpers work properly. + +const { PrefsHelper } = require("resource://devtools/client/shared/prefs.js"); + +function test() { + const Prefs = new PrefsHelper("devtools.debugger", { + foo: ["Bool", "enabled"], + }); + + const originalPrefValue = Services.prefs.getBoolPref( + "devtools.debugger.enabled" + ); + is(Prefs.foo, originalPrefValue, "The pref value was correctly fetched."); + + Prefs.foo = !originalPrefValue; + is(Prefs.foo, !originalPrefValue, "The pref was was correctly changed (1)."); + is( + Services.prefs.getBoolPref("devtools.debugger.enabled"), + !originalPrefValue, + "The pref was was correctly changed (2)." + ); + + Services.prefs.setBoolPref("devtools.debugger.enabled", originalPrefValue); + info("The pref value was reset (1)."); + is( + Prefs.foo, + !originalPrefValue, + "The cached pref value hasn't changed yet (1)." + ); + + Services.prefs.setBoolPref("devtools.debugger.enabled", !originalPrefValue); + info("The pref value was reset (2)."); + is( + Prefs.foo, + !originalPrefValue, + "The cached pref value hasn't changed yet (2)." + ); + + Prefs.registerObserver(); + + Services.prefs.setBoolPref("devtools.debugger.enabled", originalPrefValue); + info("The pref value was reset (3)."); + is(Prefs.foo, originalPrefValue, "The cached pref value has changed now."); + + Prefs.unregisterObserver(); + + finish(); +} |