chromium/third_party/blink/web_tests/fast/forms/restore-selection-after-layout.html

<!DOCTYPE html>

<html>
<head>
  <script type="text/javascript" charset="utf-8">
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    function sendKey(element, key) {
        if (window.testRunner) {
            key = key.substr(0,1).toLowerCase() + key.substr(1); // lowercase 1st letter for eventSender
            eventSender.keyDown(key);
        } else {
            // Note that initKeyboardEvent is broken:
            // https://bugs.webkit.org/show_bug.cgi?id=16735
            var event = document.createEvent("KeyboardEvents");
            event.initKeyboardEvent("keydown", true, true, document.defaultView, key, 0,
                                    false, false, false, false, false);
            element.dispatchEvent(event);
        }
    }

    function changeStyle()
    {
      var testInput = document.getElementById('input');
      testInput.focus();

      sendKey(testInput, 'b');
      sendKey(testInput, 'e');
      sendKey(testInput, 'f');
      sendKey(testInput, 'o');
      sendKey(testInput, 'r');
      sendKey(testInput, 'e');

      // make a layout happen
      var containerDiv = document.getElementById('container')
      containerDiv.style.display = 'inline';
      
      window.setTimeout(function() {
        sendKey(testInput, 'a');
        sendKey(testInput, 'f');
        sendKey(testInput, 't');
        sendKey(testInput, 'e');
        sendKey(testInput, 'r');

        document.getElementById('result').innerText = testInput.value;
        if (window.testRunner)
            testRunner.notifyDone();
      }, 0);
    }
    
    window.addEventListener('load', changeStyle, false);
  </script>
</head>
<body>
  <p>This test only works in DRT. You should see 'beforeafter' in the text field.</p>
  <div id="container">
    <input id="input" type="text" value="">
  </div>

  <div id="result"></div>
</body>
</html>