blob: dd9a58964b870e902ad4254a549d5d7d8b28133a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
</head>
<body>
<script>
description("This test exercises the 'font' shorthand property in CSS computed styles.");
var testDiv = document.createElement('div');
document.body.appendChild(testDiv);
function computedFont(fontString) {
testDiv.style.font = 'bold 600px serif';
testDiv.style.font = fontString;
return window.getComputedStyle(testDiv).getPropertyValue('font');
}
function computedFontCSSValue(fontString) {
testDiv.style.font = 'bold 600px serif';
testDiv.style.font = fontString;
var cssValue = window.getComputedStyle(testDiv).getPropertyCSSValue('font');
if (cssValue === null)
return null;
return cssValue.cssText;
}
shouldBe("computedFont('10px sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFont('10px sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFont('10px SANS-SERIF')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFont('12px sans-serif')", "'normal normal normal normal 12px/14px sans-serif'");
shouldBe("computedFont('12px sans-serif')", "'normal normal normal normal 12px/14px sans-serif'");
shouldBe("computedFont('10px sans-serif, sans-serif')", "'normal normal normal normal 10px/12px sans-serif, sans-serif'");
shouldBe("computedFont('10px sans-serif, serif')", "'normal normal normal normal 10px/12px sans-serif, serif'");
shouldBe("computedFont('12px ahem')", "'normal normal normal normal 12px/12px ahem'");
shouldBe("computedFont('12px unlikely-font-name')", "'normal normal normal normal 12px/14px unlikely-font-name'");
shouldBe("computedFont('100 10px sans-serif')", "'normal normal 100 normal 10px/12px sans-serif'");
shouldBe("computedFont('200 10px sans-serif')", "'normal normal 200 normal 10px/12px sans-serif'");
shouldBe("computedFont('300 10px sans-serif')", "'normal normal 300 normal 10px/12px sans-serif'");
shouldBe("computedFont('400 10px sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFont('normal 10px sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFont('500 10px sans-serif')", "'normal normal 500 normal 10px/12px sans-serif'");
shouldBe("computedFont('600 10px sans-serif')", "'normal normal 600 normal 10px/12px sans-serif'");
shouldBe("computedFont('700 10px sans-serif')", "'normal normal bold normal 10px/12px sans-serif'");
shouldBe("computedFont('bold 10px sans-serif')", "'normal normal bold normal 10px/12px sans-serif'");
shouldBe("computedFont('800 10px sans-serif')", "'normal normal 800 normal 10px/12px sans-serif'");
shouldBe("computedFont('900 10px sans-serif')", "'normal normal 900 normal 10px/12px sans-serif'");
shouldBe("computedFont('italic 10px sans-serif')", "'italic normal normal normal 10px/12px sans-serif'");
shouldBe("computedFont('small-caps 10px sans-serif')", "'normal small-caps normal normal 10px/12px sans-serif'");
shouldBe("computedFont('italic small-caps 10px sans-serif')", "'italic small-caps normal normal 10px/12px sans-serif'");
shouldBe("computedFont('italic small-caps bold 10px sans-serif')", "'italic small-caps bold normal 10px/12px sans-serif'");
shouldBe("computedFont('10px/100% sans-serif')", "'normal normal normal normal 10px/10px sans-serif'");
shouldBe("computedFont('10px/100px sans-serif')", "'normal normal normal normal 10px/100px sans-serif'");
shouldBe("computedFont('10px/normal sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFont('10px/normal sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('10px sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('10px sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('10px SANS-SERIF')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('12px sans-serif')", "'normal normal normal normal 12px/14px sans-serif'");
shouldBe("computedFontCSSValue('12px sans-serif')", "'normal normal normal normal 12px/14px sans-serif'");
shouldBe("computedFontCSSValue('10px sans-serif, sans-serif')", "'normal normal normal normal 10px/12px sans-serif, sans-serif'");
shouldBe("computedFontCSSValue('10px sans-serif, serif')", "'normal normal normal normal 10px/12px sans-serif, serif'");
shouldBe("computedFontCSSValue('12px ahem')", "'normal normal normal normal 12px/12px ahem'");
shouldBe("computedFontCSSValue('12px unlikely-font-name')", "'normal normal normal normal 12px/14px unlikely-font-name'");
shouldBe("computedFontCSSValue('100 10px sans-serif')", "'normal normal 100 normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('200 10px sans-serif')", "'normal normal 200 normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('300 10px sans-serif')", "'normal normal 300 normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('400 10px sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('normal 10px sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('500 10px sans-serif')", "'normal normal 500 normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('600 10px sans-serif')", "'normal normal 600 normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('700 10px sans-serif')", "'normal normal bold normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('bold 10px sans-serif')", "'normal normal bold normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('800 10px sans-serif')", "'normal normal 800 normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('900 10px sans-serif')", "'normal normal 900 normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('italic 10px sans-serif')", "'italic normal normal normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('small-caps 10px sans-serif')", "'normal small-caps normal normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('italic small-caps 10px sans-serif')", "'italic small-caps normal normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('italic small-caps bold 10px sans-serif')", "'italic small-caps bold normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('10px/100% sans-serif')", "'normal normal normal normal 10px/10px sans-serif'");
shouldBe("computedFontCSSValue('10px/100px sans-serif')", "'normal normal normal normal 10px/100px sans-serif'");
shouldBe("computedFontCSSValue('10px/normal sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
shouldBe("computedFontCSSValue('10px/normal sans-serif')", "'normal normal normal normal 10px/12px sans-serif'");
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>