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