Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

<!doctype html>
<!--
-->
<title>Test for Bug 745685</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=745685">Mozilla Bug 745685</a>
<font>Test text</font>
<font size=1>1</font>
<font size=2>2</font>
<font size=3>3</font>
<font size=4>4</font>
<font size=5>5</font>
<font size=6>6</font>
<font size=7>7</font>
<script>
/** Test for Bug 745685 **/
var referenceSizes = {};
for (var i = 1; i <= 7; i++) {
referenceSizes[i] =
getComputedStyle(document.querySelector('[size="' + i + '"]'))
.fontSize;
if (i > 1) {
isnot(referenceSizes[i], referenceSizes[i - 1],
"Sanity check: different <font size>s give different .fontSize");
}
}
function testFontSize(input, expected) {
var font = document.querySelector("font");
font.setAttribute("size", input);
is(font.getAttribute("size"), input,
"Setting doesn't round-trip (.getAttribute)");
is(font.size, input,
"Setting doesn't round-trip (.size)");
is(getComputedStyle(font).fontSize, referenceSizes[expected],
'Incorrect size for "' + input + '" : expected the same as ' + expected);
}
function testFontSizes(input, expected) {
testFontSize(input, expected);
// Leading whitespace
testFontSize(" " + input, expected);
testFontSize("\t" + input, expected);
testFontSize("\n" + input, expected);
testFontSize("\f" + input, expected);
testFontSize("\r" + input, expected);
// Trailing garbage
testFontSize(input + "abcd", expected);
testFontSize(input + ".5", expected);
testFontSize(input + "e2", expected);
}
// Parse error
testFontSizes("", 3);
// No sign
testFontSizes("0", 1);
testFontSizes("1", 1);
testFontSizes("2", 2);
testFontSizes("3", 3);
testFontSizes("4", 4);
testFontSizes("5", 5);
testFontSizes("6", 6);
testFontSizes("7", 7);
testFontSizes("8", 7);
testFontSizes("9", 7);
testFontSizes("10", 7);
testFontSizes("10000000000000000000000", 7);
// Minus sign
testFontSizes("-0", 3);
testFontSizes("-1", 2);
testFontSizes("-2", 1);
testFontSizes("-3", 1);
testFontSizes("-4", 1);
testFontSizes("-5", 1);
testFontSizes("-6", 1);
testFontSizes("-7", 1);
testFontSizes("-8", 1);
testFontSizes("-9", 1);
testFontSizes("-10", 1);
testFontSizes("-10000000000000000000000", 1);
// Plus sign
testFontSizes("+0", 3);
testFontSizes("+1", 4);
testFontSizes("+2", 5);
testFontSizes("+3", 6);
testFontSizes("+4", 7);
testFontSizes("+5", 7);
testFontSizes("+6", 7);
testFontSizes("+7", 7);
testFontSizes("+8", 7);
testFontSizes("+9", 7);
testFontSizes("+10", 7);
testFontSizes("+10000000000000000000000", 7);
// Non-HTML5 whitespace
testFontSize("\b1", 3);
testFontSize("\v1", 3);
testFontSize("\0u00a01", 3);
</script>