# Tests for opentype font feature control (bug 511339) # # These rely on the Linux Libertine font (loaded via @font-face) # to ensure that features are present. # check that Turkish language causes a change in rendering (no fi ligature) # (also works via Pango) HTTP(..) != font-features-turkish.html font-features-ref.html # check that disabling ligatures causes a change HTTP(..) != font-features-noliga.html font-features-ref.html # check that enabling optional ligatures causes a change HTTP(..) != font-features-hlig.html font-features-ref.html # compare Turkish rendering with reference using ZWNJ to break the ligature HTTP(..) == font-features-turkish.html font-features-turkish-ref.html # compare Turkish rendering with explicitly disabled ligatures HTTP(..) == font-features-turkish.html font-features-noliga.html # The following should pass even if feature support isn't available, # because both testcase and reference will have the default rendering, # though they're not really meaningful unless the tests above passed already. # compare feature specified within @font-face to same feature in style rule HTTP(..) == font-features-hlig-2.html font-features-hlig.html HTTP(..) == font-features-hlig-4.html font-features-hlig.html HTTP(..) != font-features-hlig-5.html font-features-hlig.html HTTP(..) == font-features-ligatures-none.html font-features-noliga.html # check that feature in style rule overrides @font-face HTTP(..) == font-features-hlig-3.html font-features-noliga.html # compare font-language-override rendering to lang-tagged rendering HTTP(..) == font-features-turkish-override-1.html font-features-turkish.html HTTP(..) == font-features-turkish-override-2.html font-features-turkish.html # check use of font-language-override to override explicit lang tag HTTP(..) == font-features-turkish-override-3.html font-features-ref.html HTTP(..) == font-features-turkish-override-4.html font-features-ref.html HTTP(..) == font-features-turkish-override-5.html font-features-turkish.html # check that last value wins if a feature is repeated HTTP(..) == font-features-order-1.html font-features-ref.html HTTP(..) == font-features-order-2.html font-features-noliga.html # check priority of feature settings vs. font-variant subproperty HTTP(..) == font-features-order-3.html font-features-noliga.html HTTP(..) == font-features-order-4.html font-features-noliga.html HTTP(..) == font-features-order-5.html font-features-hlig.html # check priority involving feature settings and font-variant-alternates HTTP(..) == alternates-order.html alternates-order-ref.html # check that font-specific values line up with @font-face feature settings HTTP(..) == annotations.html annotations-ref.html # font-variant subproperties # test for specific features being on and others off, based on prop values # (debug problems with font-variant-debug.html which displays all props) HTTP(..) == font-variant-alternates.html font-variant-alternates-ref.html HTTP(..) == font-variant-caps.html font-variant-caps-ref.html HTTP(..) == font-variant-east-asian.html font-variant-east-asian-ref.html HTTP(..) == font-variant-ligatures.html font-variant-ligatures-ref.html HTTP(..) == font-variant-numeric.html font-variant-numeric-ref.html HTTP(..) == font-variant-position.html font-variant-position-ref.html # font-kerning HTTP(..) != font-kerning-normal.html font-kerning-none.html HTTP(..) != font-kerning-auto.html font-kerning-none.html HTTP(..) == font-kerning-auto.html font-kerning-normal.html HTTP(..) == font-kerning-normal.html font-kerning-kern.html HTTP(..) == font-kerning-none.html font-kerning-nokern.html HTTP(..) == font-kerning-1.html font-kerning-none.html HTTP(..) == font-kerning-2.html font-kerning-normal.html HTTP(..) == font-kerning-3.html font-kerning-none.html HTTP(..) != font-kerning-table-none.html font-kerning-table-normal.html # sanity check for kerning - with no spaces, kerning should occur HTTP(..) == kerning-sanity-check-kern.html kerning-sanity-check-default.html HTTP(..) != kerning-sanity-check-nokern.html kerning-sanity-check-default.html # OpenType features should work across inter-word spaces HTTP(..) == font-features-across-space-1.html font-features-across-space-1-ref.html HTTP(..) == spacelookups.html spacelookups-ref.html # tests whether word cache is in use by testing for ignored space kerns HTTP(..) == spacelookups-wordcache.html spacelookups-wordcache-ref.html # requires Japanese font with feature support, WinXP lacks one random-if(!winWidget&&!cocoaWidget) fails-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) HTTP(..) == fwid-spaces.html fwid-spaces-ref.html # Arial/Times New Roman on Win7+/OSX 10.6+ have kerning pairs that include spaces 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 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 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 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 # font-variant-caps fallback # -- sanity check - none of these should look like the default rendering HTTP(..) != caps-fallback-smallcaps1.html caps-fallback-default.html HTTP(..) != caps-fallback-smallcaps2.html caps-fallback-default.html HTTP(..) != caps-fallback-petitecaps.html caps-fallback-default.html HTTP(..) != caps-fallback-allsmallcaps.html caps-fallback-default.html HTTP(..) != caps-fallback-allpetitecaps.html caps-fallback-default.html # -- normal or fallback rendering HTTP(..) == caps-fallback-smallcaps1.html caps-fallback-smcp.html HTTP(..) == caps-fallback-smallcaps2.html caps-fallback-smcp.html HTTP(..) == caps-fallback-petitecaps.html caps-fallback-smcp.html HTTP(..) == caps-fallback-allsmallcaps.html caps-fallback-smcpc2sc.html HTTP(..) == caps-fallback-allpetitecaps.html caps-fallback-smcpc2sc.html # font-variant-position fallback random-if(cocoaWidget||Android) HTTP(..) == subsuper-fallback.html subsuper-fallback-ref.html # bug 1139269 HTTP(..) != subsuper-fallback.html subsuper-fallback-notref1.html HTTP(..) != subsuper-fallback.html subsuper-fallback-notref2.html HTTP(..) != subsuper-fallback.html subsuper-fallback-notref3.html HTTP(..) != subsuper-fallback-omega.html subsuper-fallback-omega-notref.html HTTP(..) == subsuper-nofallback.html subsuper-nofallback-ref1.html random-if(cocoaWidget) HTTP(..) == subsuper-nofallback.html subsuper-nofallback-ref2.html # bug 1139269 HTTP(..) != subsuper-nofallback.html subsuper-nofallback-notref.html HTTP(..) == subsuper-fallback-size.html subsuper-fallback-size-ref.html