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> |
+ |