font-face-src-local.html (1873B)
1 <!DOCTYPE html> 2 <title>CSS Fonts Module Level 4: parsing @font-face src:local()</title> 3 <link rel="help" href="https://drafts.csswg.org/css-fonts-4/#local-font-fallback"> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <style id="testStyle"> 7 </style> 8 <script> 9 const sheet = testStyle.sheet; 10 tests = [ 11 // Gargbage data following valid local() is not valid 12 { src:'local(A) dummy()', valid:false}, 13 // Gargbage data preceding valid local() is not valid 14 { src:'dummy() local(A)', valid:false}, 15 // Unquoted collapsing space 16 { src:'local( A )', valid:true }, 17 { src:'local(A B)', valid:true }, 18 { src:'local(A B)', valid:true }, 19 { src:'local( A B )', valid:true }, 20 // Unquoted local() with invalid CSS-wide keywords excluded from <custom-ident> 21 { src:'local(default)', valid:false }, 22 { src:'local(inherit)', valid:false }, 23 { src:'local(revert)', valid:false }, 24 { src:'local(unset)', valid:false }, 25 // Unquoted local() with CSS-wide keywords as part of the name 26 { src:'local(default A)', valid:true }, 27 { src:'local(inherit A)', valid:true }, 28 { src:'local(revert A)', valid:true }, 29 { src:'local(unset A)', valid:true }, 30 // Quoted local() with CSS-wide keywords 31 { src:'local("default")', valid:true }, 32 { src:'local("inherit")', valid:true }, 33 { src:'local("revert")', valid:true }, 34 { src:'local("unset")', valid:true } 35 ]; 36 37 for (let t of tests) { 38 test(() => { 39 assert_equals(sheet.cssRules.length, 0, "testSheet should initially be empty"); 40 sheet.insertRule("@font-face { src: " + t.src + "}"); 41 assert_equals(sheet.cssRules[0].style.getPropertyValue("src") != "", t.valid); 42 sheet.deleteRule(0); 43 }, "Check that src: " + t.src + " is " + (t.valid ? "valid" : "invalid")); 44 } 45 </script>