modules/libpref/test/unit/test_bug790374.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:fc736f1b2055
1 /* Any copyright is dedicated to the Public Domain.
2 * http://creativecommons.org/licenses/publicdomain/ */
3
4 function run_test() {
5 const Cc = Components.classes;
6 const Ci = Components.interfaces;
7 const Cr = Components.results;
8 const PREF_NAME = "testPref";
9
10 var ps = Cc["@mozilla.org/preferences-service;1"]
11 .getService(Ci.nsIPrefService);
12 var prefs = ps.getDefaultBranch(null);
13 var userprefs = ps.getBranch(null);
14
15 /* First, test to make sure we can parse a float from a string properly. */
16 prefs.setCharPref(PREF_NAME, "9.674");
17 prefs.lockPref(PREF_NAME);
18 var myFloat = 9.674;
19 var fudge = 0.001;
20 var floatPref = userprefs.getFloatPref(PREF_NAME);
21 do_check_true(myFloat+fudge >= floatPref);
22 do_check_true(myFloat-fudge <= floatPref);
23
24 /* Now test some failure conditions. */
25 prefs.unlockPref(PREF_NAME);
26 prefs.setCharPref(PREF_NAME, "");
27 prefs.lockPref(PREF_NAME);
28 do_check_throws(function() {
29 userprefs.getFloatPref(PREF_NAME);
30 }, Cr.NS_ERROR_ILLEGAL_VALUE);
31
32 prefs.unlockPref(PREF_NAME);
33 prefs.setCharPref(PREF_NAME, "18.0a1");
34 prefs.lockPref(PREF_NAME);
35
36 do_check_throws(function() {
37 userprefs.getFloatPref(PREF_NAME);
38 }, Cr.NS_ERROR_ILLEGAL_VALUE);
39
40 prefs.unlockPref(PREF_NAME);
41 prefs.setCharPref(PREF_NAME, "09.25.2012");
42 prefs.lockPref(PREF_NAME);
43
44 do_check_throws(function() {
45 userprefs.getFloatPref(PREF_NAME);
46 }, Cr.NS_ERROR_ILLEGAL_VALUE);
47
48 prefs.unlockPref(PREF_NAME);
49 prefs.setCharPref(PREF_NAME, "aString");
50 prefs.lockPref(PREF_NAME);
51
52 do_check_throws(function() {
53 userprefs.getFloatPref(PREF_NAME);
54 }, Cr.NS_ERROR_ILLEGAL_VALUE);
55 }

mercurial