chromium/third_party/blink/web_tests/external/wpt/css/css-pseudo/textpath-selection-011.html

<!DOCTYPE html>

  <meta charset="UTF-8">

  <title>CSS Test: active selection of text following a path (complex)</title>

  <link rel="author" title="GĂ©rard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
  <link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-selectors">
  <link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-styling">
  <link rel="help" href="https://www.w3.org/TR/fill-stroke-3/#fill-shorthand">
  <link rel="help" href="https://www.w3.org/TR/fill-stroke-3/#stroke-shorthand">
  <link rel="match" href="textpath-selection-011-ref.html">

  <meta content="svg" name="flags">
  <meta content="This test checks that an SVG application with a text following a text path can be selected and then be styled." name="assert">

  <style>
  ::selection
    {
      background-color: transparent;
      /*
      color suppresses UA default background-color,
      but fill and stroke do not, so set explicitly
      */
      fill: green;
      /*
      fill is the shorthand form for fill-color,
      fill-image, fill-origin, fill-position, fill-size
      and fill-repeat
      https://www.w3.org/TR/fill-stroke-3/#fill-shorthand
      */
      stroke: yellow;
      /*
      stroke is the shorthand form for stroke-color,
      stroke-image, stroke-origin, stroke-position,
      stroke-size, and stroke-repeat
      https://www.w3.org/TR/fill-stroke-3/#stroke-shorthand
      */
      stroke-width: 2px;
    }
  </style>

  <p>Test passes if the glyphs of "Curvy text sample" are green with a yellow outline.

  <div>

    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="550" height="300">

    <path id="pathToApply"
        d="M 100 200
           C 100 100 200 0 500 200"  fill="none" />

    <text fill="red" style="font-size: 48px;"><textPath xlink:href="#pathToApply" id="test">Curvy text sample</textPath></text>

    </svg>

  </div>

  <script>
  var targetRange = document.createRange();
  /* We first create an empty range */

  targetRange.setStart(document.getElementById("test").childNodes[0], 0);
  /*
  Then we set the start boundary of the range inside textPath#test to
  the 1st character, which is "C"
  */

  targetRange.setEnd(document.getElementById("test").childNodes[0], 17);
  /* And we set the end boundary of the range inside textPath#test
  right after the 18th character which is "e" */

   window.getSelection().addRange(targetRange);
  /* Finally, we now select such range of content */
  </script>