# 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)
!= font-features-turkish.html font-features-ref.html

# check that disabling ligatures causes a change
!= font-features-noliga.html font-features-ref.html

# check that enabling optional ligatures causes a change
!= font-features-hlig.html font-features-ref.html

# compare Turkish rendering with reference using ZWNJ to break the ligature
== font-features-turkish.html font-features-turkish-ref.html

# compare Turkish rendering with explicitly disabled ligatures
== 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
== font-features-hlig-2.html font-features-hlig.html
== font-features-hlig-4.html font-features-hlig.html
!= font-features-hlig-5.html font-features-hlig.html
== font-features-ligatures-none.html font-features-noliga.html

# check that feature in style rule overrides @font-face
== font-features-hlig-3.html font-features-noliga.html

# compare font-language-override rendering to lang-tagged rendering
== font-features-turkish-override-1.html font-features-turkish.html
== font-features-turkish-override-2.html font-features-turkish.html

# check use of font-language-override to override explicit lang tag
== font-features-turkish-override-3.html font-features-ref.html
== font-features-turkish-override-4.html font-features-ref.html
== font-features-turkish-override-5.html font-features-turkish.html

# check that last value wins if a feature is repeated
== font-features-order-1.html font-features-ref.html
== font-features-order-2.html font-features-noliga.html

# check priority of feature settings vs. font-variant subproperty
== font-features-order-3.html font-features-noliga.html
== font-features-order-4.html font-features-noliga.html
== font-features-order-5.html font-features-hlig.html

# check priority involving feature settings and font-variant-alternates
== alternates-order.html alternates-order-ref.html

# check that font-specific values line up with @font-face feature settings
skip-if(winWidget) == annotations.html annotations-ref.html # bug 1447257

# 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)
== font-variant-alternates.html font-variant-alternates-ref.html
== font-variant-caps.html font-variant-caps-ref.html
== font-variant-east-asian.html font-variant-east-asian-ref.html
== font-variant-ligatures.html font-variant-ligatures-ref.html
== font-variant-numeric.html font-variant-numeric-ref.html
== font-variant-position.html font-variant-position-ref.html

# font-kerning
!= font-kerning-normal.html font-kerning-none.html
!= font-kerning-auto.html font-kerning-none.html
== font-kerning-auto.html font-kerning-normal.html
== font-kerning-normal.html font-kerning-kern.html
== font-kerning-none.html font-kerning-nokern.html
== font-kerning-1.html font-kerning-none.html
== font-kerning-2.html font-kerning-normal.html
== font-kerning-3.html font-kerning-none.html
!= font-kerning-table-none.html font-kerning-table-normal.html

# sanity check for kerning - with no spaces, kerning should occur
== kerning-sanity-check-kern.html kerning-sanity-check-default.html
!= kerning-sanity-check-nokern.html kerning-sanity-check-default.html

# OpenType features should work across inter-word spaces
== font-features-across-space-1.html font-features-across-space-1-ref.html
== spacelookups.html spacelookups-ref.html
# tests whether word cache is in use by testing for ignored space kerns
== spacelookups-wordcache.html spacelookups-wordcache-ref.html
# requires Japanese font with feature support, WinXP lacks one
random-if(!winWidget&&!cocoaWidget) == 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) != kerning-spaces-arial-nokern.html kerning-spaces-arial-default.html
random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) == kerning-spaces-arial-kern.html kerning-spaces-arial-default.html
random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) != kerning-spaces-tnr-nokern.html kerning-spaces-tnr-default.html
random-if(!winWidget&&!cocoaWidget) fails-if(winWidget||cocoaWidget) == 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
!= caps-fallback-smallcaps1.html caps-fallback-default.html
!= caps-fallback-smallcaps2.html caps-fallback-default.html
!= caps-fallback-petitecaps.html caps-fallback-default.html
!= caps-fallback-allsmallcaps.html caps-fallback-default.html
!= caps-fallback-allpetitecaps.html caps-fallback-default.html
# -- normal or fallback rendering
== caps-fallback-smallcaps1.html caps-fallback-smcp.html
== caps-fallback-smallcaps2.html caps-fallback-smcp.html
== caps-fallback-petitecaps.html caps-fallback-smcp.html
== caps-fallback-allsmallcaps.html caps-fallback-smcpc2sc.html
== caps-fallback-allpetitecaps.html caps-fallback-smcpc2sc.html

== small-caps-missing-capital.html small-caps-missing-capital-ref.html

# font-variant-position fallback
random-if(cocoaWidget||Android) == subsuper-fallback.html subsuper-fallback-ref.html # bug 1139269
!= subsuper-fallback.html subsuper-fallback-notref1.html
!= subsuper-fallback.html subsuper-fallback-notref2.html
!= subsuper-fallback.html subsuper-fallback-notref3.html
!= subsuper-fallback-omega.html subsuper-fallback-omega-notref.html
== subsuper-nofallback.html subsuper-nofallback-ref1.html
random-if(cocoaWidget) == subsuper-nofallback.html subsuper-nofallback-ref2.html # bug 1139269
!= subsuper-nofallback.html subsuper-nofallback-notref.html
== subsuper-fallback-size.html subsuper-fallback-size-ref.html

# GPOS spacing adjustments in vertical mode -- subsetted opentype/cff test font fails to load on Win7
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),255-255,3200-3200) fuzzy-if(winWidget&&!swgl&&!/^Windows\x20NT\x206\.1/.test(http.oscpu),0-1,0-70) == 1376231-vertical-gpos-adjustments.html 1376231-vertical-gpos-adjustments-ref.html
