size-attribute.js revision eff69b907ef2cd3a9af0351287a929c66f58e3f6
1eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockdescription("HTMLFontElement size attribute test");
2eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
3eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockfunction fontSizeAttributeEffect(value)
4eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block{
5eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    var element = document.createElement("font");
6eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    element.setAttribute("size", value);
7eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    var outerElement = document.createElement("p");
8eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    outerElement.setAttribute("style", "font-size: 100px");
9eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    document.body.appendChild(outerElement);
10eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    outerElement.appendChild(element);
11eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    var computedStyle = getComputedStyle(element, "");
12eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    var result = computedStyle.fontSize;
13eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    document.body.removeChild(outerElement);
14eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block    return result === "100px" ? null : result;
15eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block}
16eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
17eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("")', 'null');
18eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
19eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("1")', '"10px"');
20eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("2")', '"13px"');
21eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("3")', '"16px"');
22eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("4")', '"18px"');
23eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("5")', '"24px"');
24eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("6")', '"32px"');
25eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("7")', '"48px"');
26eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
27eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("0")', '"16px"'); // Gecko and WebKit do not agree on this result. Which matches IE?
28eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
29eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("-1")', '"13px"');
30eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("-2")', '"10px"');
31eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("-3")', '"10px"');
32eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("-4")', '"10px"');
33eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("-5")', '"10px"');
34eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("-6")', '"10px"');
35eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("-7")', '"10px"');
36eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("-8")', '"10px"');
37eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("-9")', '"10px"');
38eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("-10")', '"10px"');
39eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
40eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("8")', '"48px"');
41eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("9")', '"48px"');
42eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("10")', '"48px"');
43eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("100")', '"48px"');
44eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("1000")', '"48px"');
45eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
46eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("1x")', '"10px"');
47eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("1.")', '"10px"');
48eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("1.9")', '"10px"');
49eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("2x")', '"13px"');
50eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("2.")', '"13px"');
51eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("2.9")', '"13px"');
52eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
53eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect("a")', 'null');
54eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
55eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockvar arabicIndicDigitOne = String.fromCharCode(0x661);
56eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve BlockshouldBe('fontSizeAttributeEffect(arabicIndicDigitOne)', 'null');
57eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Block
58eff69b907ef2cd3a9af0351287a929c66f58e3f6Steve Blockvar successfullyParsed = true;
59