| <!DOCTYPE html> |
| <html> |
| <head> |
| <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> |
| function clickOn(element) |
| { |
| return new Promise(function(resolve, reject) { |
| if (!window.eventSender) |
| reject(); |
| |
| var absoluteTop = 0; |
| var absoluteLeft = 0; |
| for (var parentNode = element; parentNode; parentNode = parentNode.offsetParent) { |
| absoluteLeft += parentNode.offsetLeft; |
| absoluteTop += parentNode.offsetTop; |
| } |
| |
| var x = absoluteLeft + element.offsetWidth / 2; |
| var y = absoluteTop + element.offsetHeight / 2; |
| var pointerActions = [{ |
| source: "mouse", |
| actions: [ |
| { name: "pointerMove", x: x, y: y }, |
| { name: "pointerDown", x: x, y: x }, |
| { name: "pointerUp" }, |
| { name: "pointerMove", x: 0, y: 0} |
| ] |
| }]; |
| chrome.gpuBenchmarking.pointerActionSequence(pointerActions, resolve); |
| }); |
| } |
| |
| notEditable = document.querySelector('#not-editable'); |
| editable = document.querySelector('#editable'); |
| |
| test(function() { |
| clickOn(notEditable).then(() => { |
| oldValue = notEditable.textContent; |
| eventSender.keyDown('a'); |
| assert_equals(notEditable.textContent, oldValue); |
| }); |
| }, "Can't edit inert contenteditable"); |
| |
| test(function() { |
| clickOn(editable).then(() => { |
| oldValue = editable.textContent; |
| eventSender.keyDown('a'); |
| assert_not_equals(editable.textContent, oldValue); |
| }); |
| }, "Can edit non-inert contenteditable"); |
| |
| </script> |
| </body> |
| </html> |