Chromium Code Reviews| Index: LayoutTests/editing/selection/readonly-disabled-hittest.html | 
| diff --git a/LayoutTests/editing/selection/readonly-disabled-hittest.html b/LayoutTests/editing/selection/readonly-disabled-hittest.html | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..645346766aa90d01c59afe60b5e497ffa4ec163f | 
| --- /dev/null | 
| +++ b/LayoutTests/editing/selection/readonly-disabled-hittest.html | 
| @@ -0,0 +1,180 @@ | 
| +<!DOCTYPE html> | 
| +<html> | 
| +<body onload="test();"> | 
| +<input id="normalText" type="text" value="Normal input"> | 
| +<br> | 
| +<input id="readOnlyText" type="text" value="Readonly input" readonly> | 
| +<br> | 
| +<input id="disabledText" type="text" value="Disabled input" disabled> | 
| +<br> | 
| +<input id="readOnlyDisabledText" size="26" type="text" value="Readonly and Disabled input" readonly disabled> | 
| +<br> | 
| +<textarea id="normalTextArea" value="true" >Normal textarea</textarea> | 
| +<br> | 
| +<textarea id="readOnlyTextArea" value="true" readonly>Readonly textarea</textarea> | 
| +<br> | 
| +<textarea id="disabledTextArea" value="true" disabled>Disabled textarea</textarea> | 
| +<br> | 
| +<div id="contentEditableDiv" contenteditable="true">Content Editable DIV</div> | 
| +<br> | 
| +<div id="result"></div> | 
| +<br> | 
| +<script> | 
| +function test() { | 
| + if (window.testRunner) | 
| + testRunner.dumpAsText(); | 
| + | 
| + // Normal Text | 
| + var normalText = document.getElementById("normalText"); | 
| + var x = normalText.offsetParent.offsetLeft + normalText.offsetLeft + 4; | 
| + var y = normalText.offsetParent.offsetTop + normalText.offsetTop + normalText.offsetHeight / 2; | 
| + | 
| + if (!window.eventSender) | 
| + return; | 
| + | 
| + eventSender.mouseMoveTo(x, y); | 
| + var items = eventSender.contextClick(); | 
| + if (items.length > 0) { | 
| 
 
yosin_UTC9
2014/06/03 05:52:35
Why do we need to check result of eventSender.cont
 
 | 
| + child = document.createTextNode("Normal input SUCCESS"); | 
| + document.getElementById("result").appendChild(child); | 
| + } else { | 
| + child = document.createTextNode("Normal input FAILURE"); | 
| + document.getElementById("result").appendChild(child); | 
| + } | 
| + child = document.createElement("br"); | 
| + document.getElementById("result").appendChild(child); | 
| + | 
| + // ReadOnly Text | 
| + var readOnlyText = document.getElementById("readOnlyText"); | 
| + var x = readOnlyText.offsetParent.offsetLeft + readOnlyText.offsetLeft + 4; | 
| + var y = readOnlyText.offsetParent.offsetTop + readOnlyText.offsetTop + readOnlyText.offsetHeight / 2; | 
| + if (!window.eventSender) | 
| 
 
yosin_UTC9
2014/06/03 05:52:35
nit: We don't need to check |window.eventSender| a
 
 | 
| + return; | 
| + | 
| + eventSender.mouseMoveTo(x, y); | 
| + var items = eventSender.contextClick(); | 
| + if (items.length > 0) { | 
| + child = document.createTextNode("Readonly input FAILURE"); | 
| + document.getElementById("result").appendChild(child); | 
| + } else { | 
| + child = document.createTextNode("Readonly input SUCCESS"); | 
| + document.getElementById("result").appendChild(child); | 
| + } | 
| + child = document.createElement("br"); | 
| + document.getElementById("result").appendChild(child); | 
| + | 
| + // Disabled Text | 
| + var disabledText = document.getElementById("disabledText"); | 
| + var x = disabledText.offsetParent.offsetLeft + disabledText.offsetLeft + 4; | 
| + var y = disabledText.offsetParent.offsetTop + disabledText.offsetTop + disabledText.offsetHeight / 2; | 
| + eventSender.mouseMoveTo(x, y); | 
| + var items = eventSender.contextClick(); | 
| + if (items.length > 0) { | 
| + child = document.createTextNode("Disabled input FAILURE"); | 
| + document.getElementById("result").appendChild(child); | 
| + } else { | 
| + child = document.createTextNode("Disabled input SUCCESS"); | 
| + document.getElementById("result").appendChild(child); | 
| + } | 
| + child = document.createElement("br"); | 
| + document.getElementById("result").appendChild(child); | 
| + | 
| + // ReadOnly and Disabled Text | 
| + var readOnlyDisabledText = document.getElementById("readOnlyDisabledText"); | 
| + var x = readOnlyDisabledText.offsetParent.offsetLeft + readOnlyDisabledText.offsetLeft + 4; | 
| + var y = readOnlyDisabledText.offsetParent.offsetTop + readOnlyDisabledText.offsetTop + readOnlyDisabledText.offsetHeight / 2; | 
| + if (!window.eventSender) | 
| + return; | 
| + | 
| + eventSender.mouseMoveTo(x, y); | 
| + var items = eventSender.contextClick(); | 
| + if (items.length > 0) { | 
| + child = document.createTextNode("Readonly and Disabled input FAILURE"); | 
| + document.getElementById("result").appendChild(child); | 
| + } else { | 
| + child = document.createTextNode("Readonly and Disabled input SUCCESS"); | 
| + document.getElementById("result").appendChild(child); | 
| + } | 
| + child = document.createElement("br"); | 
| + document.getElementById("result").appendChild(child); | 
| + | 
| + // Normal TextArea | 
| + var normalTextArea = document.getElementById("normalTextArea"); | 
| + var x = normalTextArea.offsetParent.offsetLeft + normalTextArea.offsetLeft + 4; | 
| + var y = normalTextArea.offsetParent.offsetTop + normalTextArea.offsetTop + normalTextArea.offsetHeight / 2; | 
| + if (!window.eventSender) | 
| + return; | 
| + | 
| + eventSender.mouseMoveTo(x, y); | 
| + var items = eventSender.contextClick(); | 
| + if (items.length > 0) { | 
| + child = document.createTextNode("Normal textarea SUCCESS"); | 
| + document.getElementById("result").appendChild(child); | 
| + } else { | 
| + child = document.createTextNode("Normal textarea FAILURE"); | 
| + document.getElementById("result").appendChild(child); | 
| + } | 
| + child = document.createElement("br"); | 
| + document.getElementById("result").appendChild(child); | 
| + | 
| + // ReadOnly TextArea | 
| + var readOnlyTextArea = document.getElementById("readOnlyTextArea"); | 
| + var x = readOnlyTextArea.offsetParent.offsetLeft + readOnlyTextArea.offsetLeft + 4; | 
| + var y = readOnlyTextArea.offsetParent.offsetTop + readOnlyTextArea.offsetTop + readOnlyTextArea.offsetHeight / 2; | 
| + if (!window.eventSender) | 
| + return; | 
| + | 
| + eventSender.mouseMoveTo(x, y); | 
| + var items = eventSender.contextClick(); | 
| + if (items.length > 0) { | 
| + child = document.createTextNode("Readonly textarea FAILURE"); | 
| + document.getElementById("result").appendChild(child); | 
| + } else { | 
| + child = document.createTextNode("Readonly textarea SUCCESS"); | 
| + document.getElementById("result").appendChild(child); | 
| + } | 
| + child = document.createElement("br"); | 
| + document.getElementById("result").appendChild(child); | 
| + | 
| + // Disabled TextArea | 
| + var disabledTextArea = document.getElementById("disabledTextArea"); | 
| + var x = disabledTextArea.offsetParent.offsetLeft + disabledTextArea.offsetLeft + 4; | 
| + var y = disabledTextArea.offsetParent.offsetTop + disabledTextArea.offsetTop + disabledTextArea.offsetHeight / 2; | 
| + if (!window.eventSender) | 
| + return; | 
| + | 
| + eventSender.mouseMoveTo(x, y); | 
| + var items = eventSender.contextClick(); | 
| + if (items.length > 0) { | 
| + child = document.createTextNode("Disabled textarea FAILURE"); | 
| + document.getElementById("result").appendChild(child); | 
| + } else { | 
| + child = document.createTextNode("Disabled textarea SUCCESS"); | 
| + document.getElementById("result").appendChild(child); | 
| + } | 
| + child = document.createElement("br"); | 
| + document.getElementById("result").appendChild(child); | 
| + | 
| + // ContentEditable Div | 
| + var contentEditableDiv = document.getElementById("contentEditableDiv"); | 
| + var x = contentEditableDiv.offsetParent.offsetLeft + contentEditableDiv.offsetLeft + 4; | 
| + var y = contentEditableDiv.offsetParent.offsetTop + contentEditableDiv.offsetTop + contentEditableDiv.offsetHeight / 2; | 
| + if (!window.eventSender) | 
| + return; | 
| + | 
| + eventSender.mouseMoveTo(x, y); | 
| + var items = eventSender.contextClick(); | 
| + if (items.length > 0) { | 
| + child = document.createTextNode("Content Editable DIV SUCCESS"); | 
| + document.getElementById("result").appendChild(child); | 
| + } else { | 
| + child = document.createTextNode("Content Editable DIV FAILURE"); | 
| + document.getElementById("result").appendChild(child); | 
| + } | 
| + child = document.createElement("br"); | 
| + document.getElementById("result").appendChild(child); | 
| +} | 
| +</script> | 
| +</body> | 
| +</html> | 
| + |