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