Bug 1354613 - Part 2: Fix GetFloatPref on non-root branches. r=bsmedberg

MozReview-Commit-ID: 1NLBQQ40sae
This commit is contained in:
Eric Rahm 2017-04-11 14:00:17 -07:00
Родитель 591d767fd9
Коммит 7ab6120424
3 изменённых файлов: 28 добавлений и 2 удалений

Просмотреть файл

@ -191,9 +191,8 @@ NS_IMETHODIMP nsPrefBranch::GetFloatPrefWithDefault(const char *aPrefName,
NS_IMETHODIMP nsPrefBranch::GetFloatPref(const char *aPrefName, float *_retval)
{
NS_ENSURE_ARG(aPrefName);
const char *pref = getPrefName(aPrefName);
nsAutoCString stringVal;
nsresult rv = GetCharPref(pref, getter_Copies(stringVal));
nsresult rv = GetCharPref(aPrefName, getter_Copies(stringVal));
if (NS_SUCCEEDED(rv)) {
*_retval = stringVal.ToFloat(&rv);
}

Просмотреть файл

@ -0,0 +1,26 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/licenses/publicdomain/ */
function run_test() {
const Cc = Components.classes;
const Ci = Components.interfaces;
const Cr = Components.results;
const BRANCH = "foo.";
const PREF_NAME = "testPref";
const FULL_PREF_NAME = BRANCH + PREF_NAME;
const FLOAT = 9.674;
const FUDGE = 0.001;
let ps = Cc["@mozilla.org/preferences-service;1"]
.getService(Ci.nsIPrefService);
let prefs = ps.getDefaultBranch(null);
/* Test with a non-default branch */
prefs.setCharPref(FULL_PREF_NAME, FLOAT);
let pb = ps.getBranch(BRANCH);
let floatPref = pb.getFloatPref(PREF_NAME);
do_check_true(FLOAT+FUDGE >= floatPref);
do_check_true(FLOAT-FUDGE <= floatPref);
}

Просмотреть файл

@ -16,3 +16,4 @@ support-files = data/testPrefSticky.js data/testPrefStickyUser.js
[test_dirtyPrefs.js]
[test_extprefs.js]
[test_libPrefs.js]
[test_bug1354613.js]