chromium/third_party/blink/web_tests/editing/selection/mixed-editability-1.html

<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../assert_selection.js"></script>
<script>
function doubleClick(selection) {
  resetMouse();
  const target = selection.document.getElementById('target');
  eventSender.mouseMoveTo(
      selection.computeLeft(target) + target.offsetWidth / 2,
      selection.computeTop(target) + target.offsetHeight / 2);
  eventSender.mouseDown();
  eventSender.mouseUp();
  eventSender.mouseDown();
  eventSender.mouseUp();
}

function resetMouse() {
  if (!window.eventSender)
    throw 'This test requires eventSender';
  eventSender.mouseMoveTo(0, 0);
  eventSender.mouseDown();
  eventSender.mouseUp();
}

selection_test(
  [
    '<div contenteditable>',
      '<span contenteditable="false" id="target">AB</span>bd',
    '</div>',
  ],
  selection => doubleClick(selection),
  [
    '<div contenteditable>',
      '<span contenteditable="false" id="target">^AB|</span>bd',
    '</div>',
  ],
  'Select word should not cross editing boundaries.');
</script>