size-attribute.js revision 68513a70bcd92384395513322f1b801e7bf9c729
1description("HTMLFontElement size attribute test");
2
3function fontSizeAttributeEffect(value)
4{
5    var element = document.createElement("font");
6    element.setAttribute("size", value);
7    var outerElement = document.createElement("p");
8    outerElement.setAttribute("style", "font-size: 100px");
9    document.body.appendChild(outerElement);
10    outerElement.appendChild(element);
11    var computedStyle = getComputedStyle(element, "");
12    var result = computedStyle.fontSize;
13    document.body.removeChild(outerElement);
14    return result === "100px" ? null : result;
15}
16
17shouldBe('fontSizeAttributeEffect("")', 'null');
18
19shouldBe('fontSizeAttributeEffect("1")', '"10px"');
20shouldBe('fontSizeAttributeEffect("2")', '"13px"');
21shouldBe('fontSizeAttributeEffect("3")', '"16px"');
22shouldBe('fontSizeAttributeEffect("4")', '"18px"');
23shouldBe('fontSizeAttributeEffect("5")', '"24px"');
24shouldBe('fontSizeAttributeEffect("6")', '"32px"');
25shouldBe('fontSizeAttributeEffect("7")', '"48px"');
26
27shouldBe('fontSizeAttributeEffect("0")', '"10px"');
28
29shouldBe('fontSizeAttributeEffect("-1")', '"13px"');
30shouldBe('fontSizeAttributeEffect("-2")', '"10px"');
31shouldBe('fontSizeAttributeEffect("-3")', '"10px"');
32shouldBe('fontSizeAttributeEffect("-4")', '"10px"');
33shouldBe('fontSizeAttributeEffect("-5")', '"10px"');
34shouldBe('fontSizeAttributeEffect("-6")', '"10px"');
35shouldBe('fontSizeAttributeEffect("-7")', '"10px"');
36shouldBe('fontSizeAttributeEffect("-8")', '"10px"');
37shouldBe('fontSizeAttributeEffect("-9")', '"10px"');
38shouldBe('fontSizeAttributeEffect("-10")', '"10px"');
39
40shouldBe('fontSizeAttributeEffect("x6")', 'null');
41shouldBe('fontSizeAttributeEffect(" 6")', '"32px"');
42shouldBe('fontSizeAttributeEffect("\\t6")', '"32px"');
43shouldBe('fontSizeAttributeEffect("\\r6")', '"32px"');
44shouldBe('fontSizeAttributeEffect("\\n6")', '"32px"');
45shouldBe('fontSizeAttributeEffect("\\u20086")', 'null');
46
47shouldBe('fontSizeAttributeEffect("x-6")', 'null');
48shouldBe('fontSizeAttributeEffect(" -6")', '"10px"');
49shouldBe('fontSizeAttributeEffect("\\t-6")', '"10px"');
50shouldBe('fontSizeAttributeEffect("\\r-6")', '"10px"');
51shouldBe('fontSizeAttributeEffect("\\n-6")', '"10px"');
52shouldBe('fontSizeAttributeEffect("\\u2008-6")', 'null');
53
54shouldBe('fontSizeAttributeEffect("x+6")', 'null');
55shouldBe('fontSizeAttributeEffect(" +6")', '"48px"');
56shouldBe('fontSizeAttributeEffect("\\t+6")', '"48px"');
57shouldBe('fontSizeAttributeEffect("\\r+6")', '"48px"');
58shouldBe('fontSizeAttributeEffect("\\n+6")', '"48px"');
59shouldBe('fontSizeAttributeEffect("\\u2008+6")', 'null');
60
61shouldBe('fontSizeAttributeEffect("x+x6")', 'null');
62shouldBe('fontSizeAttributeEffect(" + 6")', 'null');
63shouldBe('fontSizeAttributeEffect("\\t+\\t6")', 'null');
64shouldBe('fontSizeAttributeEffect("\\r+\\r6")', 'null');
65shouldBe('fontSizeAttributeEffect("\\n+\\n6")', 'null');
66shouldBe('fontSizeAttributeEffect("\\u2008+\\u20086")', 'null');
67
68shouldBe('fontSizeAttributeEffect("x-x6")', 'null');
69shouldBe('fontSizeAttributeEffect(" - 6")', 'null');
70shouldBe('fontSizeAttributeEffect("\\t-\\t6")', 'null');
71shouldBe('fontSizeAttributeEffect("\\r-\\r6")', 'null');
72shouldBe('fontSizeAttributeEffect("\\n-\\n6")', 'null');
73shouldBe('fontSizeAttributeEffect("\\u2008-\\u20086")', 'null');
74
75shouldBe('fontSizeAttributeEffect("8")', '"48px"');
76shouldBe('fontSizeAttributeEffect("9")', '"48px"');
77shouldBe('fontSizeAttributeEffect("10")', '"48px"');
78shouldBe('fontSizeAttributeEffect("100")', '"48px"');
79shouldBe('fontSizeAttributeEffect("1000")', '"48px"');
80
81shouldBe('fontSizeAttributeEffect("1x")', '"10px"');
82shouldBe('fontSizeAttributeEffect("1.")', '"10px"');
83shouldBe('fontSizeAttributeEffect("1.9")', '"10px"');
84shouldBe('fontSizeAttributeEffect("2x")', '"13px"');
85shouldBe('fontSizeAttributeEffect("2.")', '"13px"');
86shouldBe('fontSizeAttributeEffect("2.9")', '"13px"');
87
88shouldBe('fontSizeAttributeEffect("a")', 'null');
89
90var arabicIndicDigitOne = String.fromCharCode(0x661);
91shouldBe('fontSizeAttributeEffect(arabicIndicDigitOne)', 'null');
92
93var successfullyParsed = true;
94