tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

getstartpositionofchar.html (2904B)


      1 <!DOCTYPE html>
      2 <title>SVGTextContentElement.getStartPositionOfChar and getEndPositionOfChar</title>
      3 <link rel="help" href="https://svgwg.org/svg2-draft/text.html#__svg__SVGTextContentElement__getStartPositionOfChar">
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <link rel="stylesheet" href="/fonts/ahem.css">
      7 <style>
      8 text {
      9  font: 10px/1 Ahem;
     10 }
     11 #vrl {
     12  writing-mode: vertical-rl;
     13 }
     14 #vlr {
     15  writing-mode: vertical-lr;
     16 }
     17 #srl {
     18  writing-mode: sideways-rl;
     19 }
     20 #slr {
     21  writing-mode: sideways-lr;
     22 }
     23 </style>
     24 
     25 <svg>
     26  <text id="vrl" x="100" y="100">ABC</text>
     27  <text id="vlr" x="100" y="100">ABC</text>
     28  <text id="srl" x="100" y="100">ABC</text>
     29  <text id="slr" x="100" y="100">ABC</text>
     30 </svg>
     31 
     32 <script>
     33 const FONT_SIZE = 10;
     34 function $(sel) { return document.querySelector(sel); }
     35 
     36 setup({ explicit_done: true });
     37 
     38 document.fonts.ready.then(() => {
     39  test(() => {
     40    const target = $('#vrl');
     41    const base = target.getStartPositionOfChar(0).y;
     42    assert_equals(target.getEndPositionOfChar(0).y, base + FONT_SIZE);
     43    assert_equals(target.getStartPositionOfChar(1).y, base + FONT_SIZE);
     44    assert_equals(target.getEndPositionOfChar(1).y, base + FONT_SIZE * 2);
     45    assert_equals(target.getStartPositionOfChar(2).y, base + FONT_SIZE * 2);
     46    assert_equals(target.getEndPositionOfChar(2).y, base + FONT_SIZE * 3);
     47  }, 'vertical-rl');
     48 
     49  test(() => {
     50    const target = $('#vlr');
     51    const base = target.getStartPositionOfChar(0).y;
     52    assert_equals(target.getEndPositionOfChar(0).y, base + FONT_SIZE);
     53    assert_equals(target.getStartPositionOfChar(1).y, base + FONT_SIZE);
     54    assert_equals(target.getEndPositionOfChar(1).y, base + FONT_SIZE * 2);
     55    assert_equals(target.getStartPositionOfChar(2).y, base + FONT_SIZE * 2);
     56    assert_equals(target.getEndPositionOfChar(2).y, base + FONT_SIZE * 3);
     57  }, 'vertical-lr');
     58 
     59  test(() => {
     60    const target = $('#srl');
     61    const base = target.getStartPositionOfChar(0).y;
     62    assert_equals(target.getEndPositionOfChar(0).y, base + FONT_SIZE);
     63    assert_equals(target.getStartPositionOfChar(1).y, base + FONT_SIZE);
     64    assert_equals(target.getEndPositionOfChar(1).y, base + FONT_SIZE * 2);
     65    assert_equals(target.getStartPositionOfChar(2).y, base + FONT_SIZE * 2);
     66    assert_equals(target.getEndPositionOfChar(2).y, base + FONT_SIZE * 3);
     67  }, 'sideways-rl');
     68 
     69  test(() => {
     70    const target = $('#slr');
     71    const base = target.getStartPositionOfChar(0).y;
     72    assert_equals(target.getEndPositionOfChar(0).y, base - FONT_SIZE);
     73    assert_equals(target.getStartPositionOfChar(1).y, base - FONT_SIZE);
     74    assert_equals(target.getEndPositionOfChar(1).y, base - FONT_SIZE * 2);
     75    assert_equals(target.getStartPositionOfChar(2).y, base - FONT_SIZE * 2);
     76    assert_equals(target.getEndPositionOfChar(2).y, base - FONT_SIZE * 3);
     77  }, 'sideways-lr');
     78 
     79  done();
     80 });
     81 </script>