decimal-points-in-numbers.html (1710B)
1 <!doctype html> 2 <title>decimal points in numbers</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 6 <meta name=author title="Tab Atkins-Bittner"> 7 <link rel=help href="https://drafts.csswg.org/css-syntax/#consume-number"> 8 9 <style> 10 11 .foo {} 12 13 </style> 14 <script> 15 16 function roundTripNumber(input) { 17 const rule = document.styleSheets[0].cssRules[0].style; 18 const fallback = "0"; 19 rule.setProperty("line-height", fallback); 20 rule.setProperty("line-height", input); 21 const value = rule.getPropertyValue("line-height"); 22 if(value == fallback) return false; 23 return value; 24 } 25 26 test(()=>{ 27 assert_equals(roundTripNumber("1.0"), "1"); 28 }, "decimal point between digits is valid in a number"); 29 test(()=>{ 30 assert_equals(roundTripNumber(".1"), "0.1"); 31 }, "decimal point before digits is valid in a number"); 32 test(()=>{ 33 assert_not_equals(roundTripNumber("1."), "1"); 34 }, "decimal point after digits is invalid in a number"); 35 36 function roundTripDimension(input) { 37 const rule = document.styleSheets[0].cssRules[0].style; 38 const fallback = "0px"; 39 rule.setProperty("width", fallback); 40 rule.setProperty("width", input); 41 const value = rule.getPropertyValue("width"); 42 if(value == fallback) return false; 43 return value; 44 } 45 46 test(()=>{ 47 assert_equals(roundTripDimension("1.0px"), "1px"); 48 }, "decimal point between digits is valid in a dimension"); 49 test(()=>{ 50 assert_equals(roundTripDimension(".1px"), "0.1px"); 51 }, "decimal point before digits is valid in a dimension"); 52 test(()=>{ 53 assert_not_equals(roundTripDimension("1.px"), "1px"); 54 }, "decimal point after digits is invalid in a dimension"); 55 56 </script>