|
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 } |