<!DOCTYPE html><html><head><title>Testing new font-stretch values introduced in CSS Fonts level 4</title><linkrel="help"href="https://www.w3.org/TR/css-fonts-4/#font-stretch-prop"/><scriptsrc="/resources/testharness.js"></script><scriptsrc="/resources/testharnessreport.js"></script></head><body><divid="computedStyleTest">Abc</span></div><divid="inheritanceTest"><spanstyle="font-stretch:125%;">Abc</span><spanstyle="font-stretch:expanded;">Abc</span><spanstyle="font-weight: 700;">Abc</span></div><script>testStretchValues=[{stretch:"100",expectedComputedStretch:"100%",expectedIsSupported:false,message:"only percentages, not numbers allowed"},{stretch:"-1%",expectedComputedStretch:"",expectedIsSupported:false,message:"negative values are illegal"},{stretch:"0%",expectedComputedStretch:"0%",expectedIsSupported:true,message:"zero is legal"},{stretch:"1%",expectedComputedStretch:"1%",expectedIsSupported:true,message:"legal percentage"},{stretch:"10%",expectedComputedStretch:"10%",expectedIsSupported:true,message:"legal percentage"},{stretch:"100%",expectedComputedStretch:"100%",expectedIsSupported:true,message:"legal percentage"},{stretch:"1000%",expectedComputedStretch:"1000%",expectedIsSupported:true,message:"legal percentage"},{stretch:"1e9%",expectedComputedStretch:"1e+009%",expectedIsSupported:true,message:"huge legal percentage"},{stretch:"ultra-condensed",expectedComputedStretch:"50%",expectedIsSupported:true,message:"legal enum"},{stretch:"extra-condensed",expectedComputedStretch:"62.5%",expectedIsSupported:true,message:"legal enum"},{stretch:"condensed",expectedComputedStretch:"75%",expectedIsSupported:true,message:"legal enum"},{stretch:"semi-condensed",expectedComputedStretch:"87.5%",expectedIsSupported:true,message:"legal enum"},{stretch:"normal",expectedComputedStretch:"100%",expectedIsSupported:true,message:"legal enum"},{stretch:"semi-expanded",expectedComputedStretch:"112.5%",expectedIsSupported:true,message:"legal enum"},{stretch:"expanded",expectedComputedStretch:"125%",expectedIsSupported:true,message:"legal enum"},{stretch:"extra-expanded",expectedComputedStretch:"150%",expectedIsSupported:true,message:"legal enum"},{stretch:"ultra-expanded",expectedComputedStretch:"200%",expectedIsSupported:true,message:"legal enum"},{stretch:"narrower",expectedComputedStretch:"",expectedIsSupported:false,message:"deprecated"},{stretch:"wider",expectedComputedStretch:"",expectedIsSupported:false,message:"deprecated"},{stretch:"calc(200.5%)",expectedComputedStretch:"200.5%",expectedIsSupported:true,message:"Simple calc value"},{stretch:"calc(50%*2 - 20%)",expectedComputedStretch:"80%",expectedIsSupported:true,message:"Valid calc expression"},{stretch:"calc(-100%)",expectedComputedStretch:"0%",expectedIsSupported:true,message:"Negative calc value (to be clamped)"},{stretch:"calc(50% - 50%*2)",expectedComputedStretch:"0%",expectedIsSupported:true,message:"Negative calc expression (to be clamped)"},{stretch:"calc(100)",expectedComputedStretch:"",expectedIsSupported:false,message:"Unit-less calc value"},{stretch:"calc(100px)",expectedComputedStretch:"",expectedIsSupported:false,message:"Calc value with units"},{stretch:"100% 700%",expectedComputedStretch:"",expectedIsSupported:false,message:"Extra percentage after numeric value"},{stretch:"100% 100",expectedComputedStretch:"",expectedIsSupported:false,message:"Extra content after numeric value"},{stretch:"condensed expanded",expectedComputedStretch:"",expectedIsSupported:false,message:"Extra content after keyword value"},{stretch:"calc(100%) 100%",expectedComputedStretch:"",expectedIsSupported:false,message:"Extra content after calc value"}];testStretchValues.forEach(function(element){test(()=>{assert_equals(window.CSS.supports("font-stretch",element.stretch),element.expectedIsSupported,element.message);},"@supports: "+element.stretch+" - "+element.message);// If supported, verify the computed style.if(element.expectedIsSupported){vartestSpan=document.getElementById("computedStyleTest");testSpan.style.fontStretch=element.stretch;varactualStretch=window.getComputedStyle(testSpan).fontStretch;test(()=>{assert_equals(actualStretch,element.expectedComputedStretch,element.message);},"@getComputedStyle: "+element.stretch+" - "+element.message);}});// Verify computed inheritance of nested elements.{varbase=document.getElementById("inheritanceTest");varparentStretch="condensed";base.style.fontStretch=parentStretch;test(()=>{varactualStretch=window.getComputedStyle(base.children[0]).fontStretch;assert_equals(actualStretch,"125%","Overridden value for "+parentStretch+" should match expected value.");},"Test font-stretch for overridden number "+parentStretch);test(()=>{varactualStretch=window.getComputedStyle(base.children[1]).fontStretch;assert_equals(actualStretch,"125%","Inherited value "+parentStretch+" should match expected value.");},"Test font-stretch for overridden enum name resolved to number "+parentStretch);test(()=>{varactualStretch=window.getComputedStyle(base.children[2]).fontStretch;assert_equals(actualStretch,"75%","Inherited value "+parentStretch+" should match expected value.");},"Test font-stretch for inherited named enum resolved to number "+parentStretch);}</script></body></html>