OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <title>Font Variant Shorthand Parsing</title> | 2 <title>Font Variant Shorthand Parsing</title> |
3 <script src="../../../resources/testharness.js"></script> | 3 <script src="../../../resources/testharness.js"></script> |
4 <script src="../../../resources/testharnessreport.js"></script> | 4 <script src="../../../resources/testharnessreport.js"></script> |
5 <script> | 5 <script> |
6 var shorthandWriteExpectations = [ | 6 var shorthandWriteExpectations = [ |
7 { writeFontVariant : "normal", readCaps : "normal", readLigatures : "nor
mal" }, | 7 { writeFontVariant : "normal", readCaps : "normal", readLigatures : "nor
mal", readNumeric : "normal" }, |
8 { writeFontVariant : "none", readCaps : "normal", readLigatures : "none"
}, | 8 { writeFontVariant : "none", readCaps : "normal", readLigatures : "none"
, readNumeric : "normal" }, |
9 { writeFontVariant : "all-small-caps", readCaps : "all-small-caps", read
Ligatures : "normal" }, | 9 { writeFontVariant : "all-small-caps", readCaps : "all-small-caps", read
Ligatures : "normal", readNumeric : "normal" }, |
10 { writeFontVariant : "historical-ligatures", readCaps : "normal", readLi
gatures : "historical-ligatures" }, | 10 { writeFontVariant : "historical-ligatures", readCaps : "normal", readLi
gatures : "historical-ligatures", readNumeric : "normal" }, |
11 { writeFontVariant : "historical-ligatures discretionary-ligatures", rea
dCaps : "normal", readLigatures : "discretionary-ligatures historical-ligatures"
}, | 11 { writeFontVariant : "historical-ligatures discretionary-ligatures", rea
dCaps : "normal", |
12 { writeFontVariant : "historical-ligatures petite-caps", readCaps : "pet
ite-caps", readLigatures : "historical-ligatures" }, | 12 readLigatures : "discretionary-ligatures historical-ligatures", readNu
meric : "normal" }, |
13 { writeFontVariant : "", readCaps : "normal", readLigatures : "normal" }
, | 13 { writeFontVariant : "historical-ligatures petite-caps", readCaps : "pet
ite-caps", readLigatures : "historical-ligatures", readNumeric : "normal" }, |
| 14 { writeFontVariant : "", readCaps : "normal", readLigatures : "normal",
readNumeric : "normal" }, |
| 15 { writeFontVariant : "lining-nums", readCaps : "normal", readLigatures :
"normal", readNumeric : "lining-nums" }, |
| 16 { writeFontVariant : "lining-nums diagonal-fractions", readCaps : "norma
l", |
| 17 readLigatures : "normal", readNumeric : "lining-nums diagonal-fraction
s" }, |
| 18 { writeFontVariant : "lining-nums all-small-caps", readCaps : "all-small
-caps", |
| 19 readLigatures : "normal", readNumeric : "lining-nums" }, |
| 20 { writeFontVariant : "lining-nums discretionary-ligatures", readCaps : "
normal", |
| 21 readLigatures : "discretionary-ligatures", readNumeric : "lining-nums"
}, |
| 22 { writeFontVariant : "lining-nums historical-ligatures ordinal all-small
-caps", |
| 23 readCaps : "all-small-caps", |
| 24 readLigatures : "historical-ligatures", |
| 25 readNumeric : "lining-nums ordinal" }, |
| 26 { writeFontVariant : "ordinal discretionary-ligatures all-petite-caps hi
storical-ligatures diagonal-fractions", |
| 27 readCaps : "all-petite-caps", |
| 28 readLigatures : "discretionary-ligatures historical-ligatures", |
| 29 readNumeric : "diagonal-fractions ordinal" |
| 30 } |
14 ]; | 31 ]; |
15 | 32 |
16 var shorthandReadExpectations = [ | 33 var shorthandReadExpectations = [ |
17 { writeCaps : "", writeLigatures: "", readFontVariant: "normal" }, | 34 { writeCaps : "", writeLigatures: "", writeNumeric: "", readFontVariant:
"normal" }, |
18 { writeCaps : "normal", writeLigatures: "normal", readFontVariant: "norm
al" }, | 35 { writeCaps : "normal", writeLigatures: "normal", writeNumeric: "normal"
, readFontVariant: "normal" }, |
19 { writeCaps : "normal", writeLigatures: "none", readFontVariant: "none"
}, | 36 { writeCaps : "normal", writeLigatures: "none", writeNumeric: "normal",
readFontVariant: "none" }, |
20 { writeCaps : "all-small-caps", writeLigatures: "none", readFontVariant:
"no-common-ligatures no-discretionary-ligatures no-historical-ligatures no-cont
extual all-small-caps" }, | 37 { writeCaps : "all-small-caps", writeLigatures: "none", writeNumeric: "n
ormal", |
21 { writeCaps : "all-small-caps", writeLigatures: "normal", readFontVarian
t: "all-small-caps" }, | 38 readFontVariant: "no-common-ligatures no-discretionary-ligatures no-hi
storical-ligatures no-contextual all-small-caps" }, |
22 { writeCaps : "normal", writeLigatures: "discretionary-ligatures histori
cal-ligatures", readFontVariant: "discretionary-ligatures historical-ligatures"
}, | 39 { writeCaps : "all-small-caps", writeLigatures: "normal", writeNumeric:
"normal", readFontVariant: "all-small-caps" }, |
23 { writeCaps : "petite-caps", writeLigatures: "discretionary-ligatures",
readFontVariant: "discretionary-ligatures petite-caps" }, | 40 { writeCaps : "normal", |
| 41 writeLigatures: "discretionary-ligatures historical-ligatures", |
| 42 writeNumeric: "normal", |
| 43 readFontVariant: "discretionary-ligatures historical-ligatures" }, |
| 44 { writeCaps : "petite-caps", writeLigatures: "discretionary-ligatures",
writeNumeric: "normal", |
| 45 readFontVariant: "discretionary-ligatures petite-caps" }, |
| 46 { writeCaps : "petite-caps", writeLigatures: "discretionary-ligatures",
writeNumeric: "lining-nums diagonal-fractions", |
| 47 readFontVariant: "discretionary-ligatures petite-caps lining-nums diag
onal-fractions" }, |
| 48 { writeCaps : "", writeLigatures: "", writeNumeric: "lining-nums diagona
l-fractions", |
| 49 readFontVariant: "lining-nums diagonal-fractions" }, |
24 ]; | 50 ]; |
25 | 51 |
26 var writeInvalidExpectations = { | 52 var writeInvalidExpectations = { |
27 "font-variant" : [ "historical-ligaturesTYPO", | 53 "font-variant" : [ "historical-ligaturesTYPO", |
28 "historical-ligaturesTYPO small-caps", | 54 "historical-ligaturesTYPO small-caps", |
29 "discretionary-ligatures no-discretionary-ligatures", | 55 "discretionary-ligatures no-discretionary-ligatures", |
30 "discretionary-ligatures small-caps no-historical-ligatu
res all-small-caps", | 56 "discretionary-ligatures small-caps no-historical-ligatu
res all-small-caps", |
31 "discretionary-ligatures small-caps all-petite-caps", | 57 "discretionary-ligatures small-caps all-petite-caps", |
32 "small-caps unicase"], | 58 "small-caps unicase"], |
33 "font-variant-caps" : [ "typotypotypo", "all-small-caps all-petite-caps"
], | 59 "font-variant-caps" : [ "typotypotypo", "all-small-caps all-petite-caps"
], |
34 "font-variant-ligatures" : [ "discretionary-ligatures no-discretionary-l
igatures", "typotypotypo", "none discretionary-ligatures" ] | 60 "font-variant-ligatures" : [ "discretionary-ligatures no-discretionary-l
igatures", "typotypotypo", "none discretionary-ligatures" ], |
| 61 "font-variant-numeric" : [ "lining-nums normal", "lining-nums slashed-ze
ro diagonal-fractions oldstyle-nums" ] |
35 }; | 62 }; |
36 </script> | 63 </script> |
37 <div id="testElement"></div> | 64 <div id="testElement"></div> |
38 | 65 |
39 <div id="log"></div> | 66 <div id="log"></div> |
40 <script> | 67 <script> |
41 setup({ explicit_done: true }); | 68 setup({ explicit_done: true }); |
42 | 69 |
43 function writeFontVariantTests() { | 70 function writeFontVariantTests() { |
44 for (testParameters of shorthandWriteExpectations) { | 71 for (testParameters of shorthandWriteExpectations) { |
45 testElement.style.fontVariant = testParameters.writeFontVariant; | 72 testElement.style.fontVariant = testParameters.writeFontVariant; |
46 test(function(){ | 73 test(function(){ |
47 assert_equals(getComputedStyle(testElement).fontVariantCaps, testP
arameters.readCaps); | 74 assert_equals(getComputedStyle(testElement).fontVariantCaps, testP
arameters.readCaps); |
48 assert_equals(getComputedStyle(testElement).fontVariantLigatures,
testParameters.readLigatures); | 75 assert_equals(getComputedStyle(testElement).fontVariantLigatures,
testParameters.readLigatures); |
| 76 assert_equals(getComputedStyle(testElement).fontVariantNumeric, te
stParameters.readNumeric); |
49 }, "Sub properties set from longhand value: " + testParameters.writeFo
ntVariant); | 77 }, "Sub properties set from longhand value: " + testParameters.writeFo
ntVariant); |
50 } | 78 } |
51 } | 79 } |
52 | 80 |
53 function readFontVariantTests() { | 81 function readFontVariantTests() { |
54 for (testParameters of shorthandReadExpectations) { | 82 for (testParameters of shorthandReadExpectations) { |
55 testElement.style.fontVariantCaps = testParameters.writeCaps; | 83 testElement.style.fontVariantCaps = testParameters.writeCaps; |
56 testElement.style.fontVariantLigatures = testParameters.writeLigatures
; | 84 testElement.style.fontVariantLigatures = testParameters.writeLigatures
; |
| 85 testElement.style.fontVariantNumeric = testParameters.writeNumeric; |
57 test(function(){ | 86 test(function(){ |
58 assert_equals(getComputedStyle(testElement).fontVariant, testParam
eters.readFontVariant); | 87 assert_equals(getComputedStyle(testElement).fontVariant, testParam
eters.readFontVariant); |
59 }, "Shorthand from written subproperties: " + getComputedStyle(testEle
ment).fontVariant); | 88 }, "Shorthand from written subproperties: " + getComputedStyle(testEle
ment).fontVariant); |
60 } | 89 } |
61 } | 90 } |
62 | 91 |
63 function invalidWriteTests() { | 92 function invalidWriteTests() { |
64 for (key in writeInvalidExpectations) { | 93 for (key in writeInvalidExpectations) { |
65 for (value of writeInvalidExpectations[key]) { | 94 for (value of writeInvalidExpectations[key]) { |
66 test(function(){ | 95 test(function(){ |
67 assert_false(CSS.supports(key, value)); | 96 assert_false(CSS.supports(key, value)); |
68 }, "Value " + value + " invalid for property " + key + "."); | 97 }, "Value " + value + " invalid for property " + key + "."); |
69 } | 98 } |
70 } | 99 } |
71 } | 100 } |
72 | 101 |
73 window.addEventListener("load", function() { | 102 window.addEventListener("load", function() { |
74 writeFontVariantTests(); | 103 writeFontVariantTests(); |
75 readFontVariantTests(); | 104 readFontVariantTests(); |
76 invalidWriteTests(); | 105 invalidWriteTests(); |
77 done(); | 106 done(); |
78 }); | 107 }); |
79 </script> | 108 </script> |
OLD | NEW |