<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>inert nodes are uneditable</title>
    <link rel="author" title="Alice Boxhall" href="aboxhall@chromium.org">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>
<body>
<span inert id="not-editable" contenteditable>I'm not editable.</span>
<span id="editable" contenteditable>I'm editable.</span>
<script>
var notEditable = document.querySelector('#not-editable');
var editable = document.querySelector('#editable');

promise_test(async () => {
    notEditable.focus();
    var oldValue = notEditable.textContent;
    assert_equals(oldValue, "I'm not editable.");
    try {
      test_driver.keyDown('a');
      assert_equals(notEditable.textContent, oldValue);
    } catch (e) {
      // TODO(crbug.com/828858): Remove this check once bug is resolved.
      assert_true(false, "send_keys not implemented yet");
    }
}, "Can't edit inert contenteditable");

test(() => {
    editable.focus();
    var oldValue = editable.textContent;
    assert_equals(oldValue, "I'm editable.");
    try {
      test_driver.keyDown('a');
      assert_not_equals(editable.textContent, oldValue);
    } catch (e) {
      // TODO(crbug.com/828858): Remove this check once bug is resolved.
      assert_true(false, "send_keys not implemented yet");
    }
}, "Can edit non-inert contenteditable");

</script>
</body>
</html>
