getcharnumatposition-slr.tentative.html (1339B)
1 <!DOCTYPE html> 2 <meta charset="utf-8"> 3 <title>SVGTextContentElement.getCharNumAtPosition</title> 4 <link rel="help" href="https://svgwg.org/svg2-draft/text.html#__svg__SVGTextContentElement__getCharNumAtPosition"> 5 <link rel="help" href="https://github.com/w3c/svgwg/issues/955"> 6 <link rel="stylesheet" href="/fonts/ahem.css"> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 10 <svg width="800" height="600"> 11 <style> 12 text { 13 font: 20px/1 Ahem; 14 } 15 </style> 16 <text style="writing-mode:sideways-lr"><tspan id="slr" x="40" y="200">abc</tspan></text> 17 </svg> 18 19 <script> 20 function newPoint(x, y) { 21 const p = document.querySelector('svg').createSVGPoint(); 22 p.x = x; 23 p.y = y; 24 return p; 25 } 26 27 document.fonts.ready.then(() => { 28 test(() => { 29 const element = document.querySelector('#slr'); 30 assert_equals(element.getNumberOfChars(), 3); 31 const start = 200; 32 assert_equals(element.getCharNumAtPosition(newPoint(40, start + 10)), -1); 33 assert_equals(element.getCharNumAtPosition(newPoint(40, start - 10)), 0); 34 assert_equals(element.getCharNumAtPosition(newPoint(40, start - 30)), 1); 35 assert_equals(element.getCharNumAtPosition(newPoint(40, start - 50)), 2); 36 assert_equals(element.getCharNumAtPosition(newPoint(40, start - 70)), -1); 37 }, 'sideways-lr'); 38 }); 39 </script>