|
1 # Tests for opentype font feature control (bug 511339) |
|
2 # |
|
3 # These rely on the Linux Libertine font (loaded via @font-face) |
|
4 # to ensure that features are present. |
|
5 |
|
6 # check that Turkish language causes a change in rendering (no fi ligature) |
|
7 # (also works via Pango) |
|
8 skip-if(B2G) HTTP(..) != font-features-turkish.html font-features-ref.html # bug 773482 |
|
9 |
|
10 # check that disabling ligatures causes a change |
|
11 HTTP(..) != font-features-noliga.html font-features-ref.html |
|
12 |
|
13 # check that enabling optional ligatures causes a change |
|
14 HTTP(..) != font-features-hlig.html font-features-ref.html |
|
15 |
|
16 # compare Turkish rendering with reference using ZWNJ to break the ligature |
|
17 HTTP(..) == font-features-turkish.html font-features-turkish-ref.html |
|
18 |
|
19 # compare Turkish rendering with explicitly disabled ligatures |
|
20 HTTP(..) == font-features-turkish.html font-features-noliga.html |
|
21 |
|
22 # The following should pass even if feature support isn't available, |
|
23 # because both testcase and reference will have the default rendering, |
|
24 # though they're not really meaningful unless the tests above passed already. |
|
25 |
|
26 # compare feature specified within @font-face to same feature in style rule |
|
27 HTTP(..) == font-features-hlig-2.html font-features-hlig.html |
|
28 HTTP(..) == font-features-hlig-4.html font-features-hlig.html |
|
29 HTTP(..) != font-features-hlig-5.html font-features-hlig.html |
|
30 pref(layout.css.font-features.enabled,true) HTTP(..) == font-features-ligatures-none.html font-features-noliga.html |
|
31 |
|
32 # check that feature in style rule overrides @font-face |
|
33 skip-if(B2G) HTTP(..) == font-features-hlig-3.html font-features-noliga.html # bug 773482 |
|
34 |
|
35 # make sure old syntax usage never interferes with new syntax usage |
|
36 HTTP(..) == font-features-oldsyntax-1.html font-features-ref.html |
|
37 HTTP(..) == font-features-oldsyntax-2.html font-features-ref.html |
|
38 HTTP(..) == font-features-oldsyntax-3.html font-features-hlig.html |
|
39 HTTP(..) == font-features-oldsyntax-4.html font-features-hlig.html |
|
40 |
|
41 # compare -moz-font-language-override rendering to lang-tagged rendering |
|
42 skip-if(B2G) HTTP(..) == font-features-turkish-override-1.html font-features-turkish.html # bug 773482 |
|
43 HTTP(..) == font-features-turkish-override-2.html font-features-turkish.html |
|
44 |
|
45 # check use of -moz-font-language-override to override explicit lang tag |
|
46 HTTP(..) == font-features-turkish-override-3.html font-features-ref.html |
|
47 HTTP(..) == font-features-turkish-override-4.html font-features-ref.html |
|
48 skip-if(B2G) HTTP(..) == font-features-turkish-override-5.html font-features-turkish.html # bug 773482 |
|
49 |
|
50 # check that last value wins if a feature is repeated |
|
51 HTTP(..) == font-features-order-1.html font-features-ref.html |
|
52 HTTP(..) == font-features-order-2.html font-features-noliga.html |
|
53 |
|
54 # check priority of feature settings vs. font-variant subproperty |
|
55 HTTP(..) == font-features-order-3.html font-features-noliga.html |
|
56 pref(layout.css.font-features.enabled,true) HTTP(..) == font-features-order-4.html font-features-noliga.html |
|
57 pref(layout.css.font-features.enabled,true) HTTP(..) == font-features-order-5.html font-features-hlig.html |
|
58 |
|
59 # check priority involving feature settings and font-variant-alternates |
|
60 pref(layout.css.font-features.enabled,true) HTTP(..) == alternates-order.html alternates-order-ref.html |
|
61 |
|
62 # check that font-specific values line up with @font-face feature settings |
|
63 pref(layout.css.font-features.enabled,true) HTTP(..) == annotations.html annotations-ref.html |
|
64 |
|
65 # font-variant subproperties |
|
66 # test for specific features being on and others off, based on prop values |
|
67 # (debug problems with font-variant-debug.html which displays all props) |
|
68 pref(layout.css.font-features.enabled,true) HTTP(..) == font-variant-alternates.html font-variant-alternates-ref.html |
|
69 pref(layout.css.font-features.enabled,true) HTTP(..) == font-variant-caps.html font-variant-caps-ref.html |
|
70 pref(layout.css.font-features.enabled,true) HTTP(..) == font-variant-east-asian.html font-variant-east-asian-ref.html |
|
71 pref(layout.css.font-features.enabled,true) HTTP(..) == font-variant-ligatures.html font-variant-ligatures-ref.html |
|
72 pref(layout.css.font-features.enabled,true) HTTP(..) == font-variant-numeric.html font-variant-numeric-ref.html |
|
73 pref(layout.css.font-features.enabled,true) HTTP(..) == font-variant-position.html font-variant-position-ref.html |
|
74 |
|
75 # font-kerning |
|
76 pref(layout.css.font-features.enabled,true) HTTP(..) != font-kerning-normal.html font-kerning-none.html |
|
77 pref(layout.css.font-features.enabled,true) HTTP(..) != font-kerning-auto.html font-kerning-none.html |
|
78 pref(layout.css.font-features.enabled,true) HTTP(..) == font-kerning-auto.html font-kerning-normal.html |
|
79 pref(layout.css.font-features.enabled,true) HTTP(..) == font-kerning-normal.html font-kerning-kern.html |
|
80 pref(layout.css.font-features.enabled,true) HTTP(..) == font-kerning-none.html font-kerning-nokern.html |
|
81 pref(layout.css.font-features.enabled,true) HTTP(..) == font-kerning-1.html font-kerning-none.html |
|
82 pref(layout.css.font-features.enabled,true) HTTP(..) == font-kerning-2.html font-kerning-normal.html |
|
83 pref(layout.css.font-features.enabled,true) HTTP(..) == font-kerning-3.html font-kerning-none.html |
|
84 pref(layout.css.font-features.enabled,true) HTTP(..) != font-kerning-table-none.html font-kerning-table-normal.html |
|
85 |
|
86 # sanity check for kerning - with no spaces, kerning should occur |
|
87 HTTP(..) == kerning-sanity-check-kern.html kerning-sanity-check-default.html |
|
88 HTTP(..) != kerning-sanity-check-nokern.html kerning-sanity-check-default.html |
|
89 |
|
90 # OpenType features should work across inter-word spaces |
|
91 HTTP(..) == font-features-across-space-1.html font-features-across-space-1-ref.html |
|
92 HTTP(..) == spacelookups.html spacelookups-ref.html |
|
93 # tests whether word cache is in use by testing for ignored space kerns |
|
94 HTTP(..) == spacelookups-wordcache.html spacelookups-wordcache-ref.html |
|
95 # requires Japanese font with feature support, WinXP lacks one |
|
96 random-if(!winWidget&&!cocoaWidget) fails-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == fwid-spaces.html fwid-spaces-ref.html |
|
97 # Arial/Times New Roman on Win7+/OSX 10.6+ have kerning pairs that include spaces |
|
98 random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) != kerning-spaces-arial-nokern.html kerning-spaces-arial-default.html |
|
99 random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == kerning-spaces-arial-kern.html kerning-spaces-arial-default.html |
|
100 random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) != kerning-spaces-tnr-nokern.html kerning-spaces-tnr-default.html |
|
101 random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == kerning-spaces-tnr-kern.html kerning-spaces-tnr-default.html |
|
102 |