test_bug790374.js (1491B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/licenses/publicdomain/ */ 3 4 function run_test() { 5 const PREF_NAME = "testPref"; 6 7 var prefs = Services.prefs.getDefaultBranch(null); 8 var userprefs = Services.prefs.getBranch(null); 9 10 /* First, test to make sure we can parse a float from a string properly. */ 11 prefs.setCharPref(PREF_NAME, "9.674"); 12 prefs.lockPref(PREF_NAME); 13 var myFloat = 9.674; 14 var fudge = 0.001; 15 var floatPref = userprefs.getFloatPref(PREF_NAME); 16 Assert.greaterOrEqual(myFloat + fudge, floatPref); 17 Assert.lessOrEqual(myFloat - fudge, floatPref); 18 19 /* Now test some failure conditions. */ 20 prefs.unlockPref(PREF_NAME); 21 prefs.setCharPref(PREF_NAME, ""); 22 prefs.lockPref(PREF_NAME); 23 do_check_throws(function () { 24 userprefs.getFloatPref(PREF_NAME); 25 }, Cr.NS_ERROR_ILLEGAL_VALUE); 26 27 prefs.unlockPref(PREF_NAME); 28 prefs.setCharPref(PREF_NAME, "18.0a1"); 29 prefs.lockPref(PREF_NAME); 30 31 do_check_throws(function () { 32 userprefs.getFloatPref(PREF_NAME); 33 }, Cr.NS_ERROR_ILLEGAL_VALUE); 34 35 prefs.unlockPref(PREF_NAME); 36 prefs.setCharPref(PREF_NAME, "09.25.2012"); 37 prefs.lockPref(PREF_NAME); 38 39 do_check_throws(function () { 40 userprefs.getFloatPref(PREF_NAME); 41 }, Cr.NS_ERROR_ILLEGAL_VALUE); 42 43 prefs.unlockPref(PREF_NAME); 44 prefs.setCharPref(PREF_NAME, "aString"); 45 prefs.lockPref(PREF_NAME); 46 47 do_check_throws(function () { 48 userprefs.getFloatPref(PREF_NAME); 49 }, Cr.NS_ERROR_ILLEGAL_VALUE); 50 }