Bug 949627 - Fix reflect.js to work with strict equality in is(); r=mounir

This commit is contained in:
Ms2ger 2014-01-20 08:58:24 +01:00
parent adfeed0fe4
commit b2f2adfe60

View File

@ -161,24 +161,24 @@ function reflectUnsignedInt(aParameters)
for (var value of values) {
element[attr] = value;
is(element[attr], value, "." + attr + " should be equals " + value);
is(element.getAttribute(attr), value,
is(element.getAttribute(attr), String(value),
"@" + attr + " should be equals " + value);
element.setAttribute(attr, value);
is(element[attr], value, "." + attr + " should be equals " + value);
is(element.getAttribute(attr), value,
is(element.getAttribute(attr), String(value),
"@" + attr + " should be equals " + value);
}
// -3000000000 is equivalent to 1294967296 when using the IDL attribute.
element[attr] = -3000000000;
is(element[attr], 1294967296, "." + attr + " should be equals to 1294967296");
is(element.getAttribute(attr), 1294967296,
is(element.getAttribute(attr), "1294967296",
"@" + attr + " should be equals to 1294967296");
// When setting the content atribute, it's a string so it will be unvalid.
element.setAttribute(attr, -3000000000);
is(element.getAttribute(attr), -3000000000,
is(element.getAttribute(attr), "-3000000000",
"@" + attr + " should be equals to " + -3000000000);
is(element[attr], defaultValue,
"." + attr + " should be equals to " + defaultValue);
@ -192,7 +192,7 @@ function reflectUnsignedInt(aParameters)
for (var values of nonValidValues) {
element[attr] = values[0];
is(element.getAttribute(attr), values[1],
is(element.getAttribute(attr), String(values[1]),
"@" + attr + " should be equals to " + values[1]);
is(element[attr], defaultValue,
"." + attr + " should be equals to " + defaultValue);
@ -200,7 +200,7 @@ function reflectUnsignedInt(aParameters)
for (var values of nonValidValues) {
element.setAttribute(attr, values[0]);
is(element.getAttribute(attr), values[0],
is(element.getAttribute(attr), String(values[0]),
"@" + attr + " should be equals to " + values[0]);
is(element[attr], defaultValue,
"." + attr + " should be equals to " + defaultValue);
@ -223,8 +223,8 @@ function reflectUnsignedInt(aParameters)
}
// If 0 is set in @attr, it will be ignored when calling .attr.
element.setAttribute(attr, 0);
is(element.getAttribute(attr), 0, "@" + attr + " should be equals to 0");
element.setAttribute(attr, "0");
is(element.getAttribute(attr), "0", "@" + attr + " should be equals to 0");
if (nonZero) {
is(element[attr], defaultValue,
"." + attr + " should be equals to " + defaultValue);
@ -474,9 +474,10 @@ function reflectInt(aParameters)
// Parse: Ignore leading whitespace, find [+/-][numbers]
var result = /^[ \t\n\f\r]*([\+\-]?[0-9]+)/.exec(value);
if (result) {
if ((nonNegative ? 0:-0x80000000) <= result[1] && result[1] <= 0x7FFFFFFF) {
var resultInt = parseInt(result[1], 10);
if ((nonNegative ? 0 : -0x80000000) <= resultInt && resultInt <= 0x7FFFFFFF) {
// If the value is within allowed value range for signed/unsigned integer, return value
return result[1];
return resultInt;
}
}
return defaultValue;
@ -569,8 +570,9 @@ function reflectInt(aParameters)
} else {
is(element[attr], expectedIdlAttributeResult(v), element.localName + "[" + attr + "] = " + v +
", " + element.localName + "[" + attr + "] ");
is(element.getAttribute(attr), expectedIdlAttributeResult(v), element.localName + "[" + attr +
"] = " + v + ", " + element.localName + ".getAttribute(" + attr + ") ");
is(element.getAttribute(attr), String(expectedIdlAttributeResult(v)),
element.localName + "[" + attr + "] = " + v + ", " +
element.localName + ".getAttribute(" + attr + ") ");
}
}
element.removeAttribute(attr);