Bug 1436396 - Policy engine - Make boolean type accept 0 and 1 as valid values. r=mkaply

MozReview-Commit-ID: 1dqRknWy6Xi
This commit is contained in:
Felipe Gomes 2018-02-07 20:37:54 -02:00
Родитель 086b4ec6be
Коммит c0b38bfb11
2 изменённых файлов: 16 добавлений и 0 удалений

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

@ -95,6 +95,15 @@ function validateAndParseSimpleParam(param, type) {
switch (type) {
case "boolean":
if (typeof(param) == "boolean") {
valid = true;
} else if (typeof(param) == "number" &&
(param == 0 || param == 1)) {
valid = true;
parsedParam = !!param;
}
break;
case "number":
case "string":
valid = (typeof(param) == type);

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

@ -21,9 +21,16 @@ add_task(async function test_boolean_values() {
[valid, parsed] = PoliciesValidator.validateAndParseParameters(false, schema);
ok(valid && parsed === false, "Parsed boolean value correctly");
[valid, parsed] = PoliciesValidator.validateAndParseParameters(0, schema);
ok(valid && parsed === false, "0 parsed as false correctly");
[valid, parsed] = PoliciesValidator.validateAndParseParameters(1, schema);
ok(valid && parsed === true, "1 parsed as true correctly");
// Invalid values:
ok(!PoliciesValidator.validateAndParseParameters("0", schema)[0], "No type coercion");
ok(!PoliciesValidator.validateAndParseParameters("true", schema)[0], "No type coercion");
ok(!PoliciesValidator.validateAndParseParameters(2, schema)[0], "Other number values are not valid");
ok(!PoliciesValidator.validateAndParseParameters(undefined, schema)[0], "Invalid value");
ok(!PoliciesValidator.validateAndParseParameters({}, schema)[0], "Invalid value");
ok(!PoliciesValidator.validateAndParseParameters(null, schema)[0], "Invalid value");