Index: content/test/data/android/input/input_forms.html |
diff --git a/content/test/data/android/input/input_forms.html b/content/test/data/android/input/input_forms.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6e1c35147391812b4c242a5985b09aed3fb1c505 |
--- /dev/null |
+++ b/content/test/data/android/input/input_forms.html |
@@ -0,0 +1,86 @@ |
+<html> |
+ <head> |
+ <meta name="viewport" content="width=device-width" /> |
+ </head> |
+ <body> |
+ <form action="about:blank"> |
+ <input id="input_text" type="text" /> |
+ <br/> |
+ </form> |
+ <form> |
+ <br/> |
+ <input id="input_radio" type="radio" style="width:50px;height:50px" /> |
+ <br/> |
+ <textarea id="textarea" rows="4" cols="20"></textarea> |
+ <br/> |
+ <textarea id="textarea2" rows="4" cols="20" autocomplete="off"></textarea> |
+ <br/> |
+ <input id="input_number1" type="number" /><br/> |
+ <input id="input_number2" type="number" /><br/> |
+ <span id="plain_text">This is Plain Text One</span> |
+ </form> |
+ |
+ <!-- We may trigger different sets of events for CONTENTEDITABLE and INPUT / TEXTAREA --> |
+ <div id="contenteditable_event" contenteditable><b>ab</b>cd<i>ef<b>gh</b></i></div> |
+ |
+ <script> |
+var log = ""; |
+var mutationObserver = new MutationObserver(function(mutations) { |
+ mutations.forEach(function(mutation) { |
+ addEventLog(mutation.type, mutation.detail); |
+ }); |
+}) |
+ |
+var mutationConfig = { attributes: false, childList: false, chracterData: true }; |
+ |
+function addEventLog(type, detail) { |
+ if (log.length > 0) { |
+ log += ','; |
+ } |
+ if (detail == null) { |
+ log += type; |
+ } else { |
+ log += type + '(' + detail + ')'; |
+ } |
+} |
+ |
+function getEventLogs() { |
+ return log; |
+} |
+ |
+function addEventListener(element, event_name) { |
+ element.addEventListener(event_name, function (e) { addEventLog(event_name, e.data); }); |
+} |
+ |
+function addKeyEventListener(element, event_name) { |
+ element.addEventListener(event_name, function (e) { addEventLog(event_name, e.keyCode); }); |
+} |
+ |
+function addSelectionEventListener(element, event_name) { |
+ // Note that listeners added to the element are not effective for now. |
+ document.addEventListener(event_name, function (e) { addEventLog(event_name, e.data); }); |
+} |
+ |
+function registerListenersAndObserver(element) { |
+ addKeyEventListener(element, "keydown"); |
+ addKeyEventListener(element, "keypress"); |
+ addKeyEventListener(element, "keyup"); |
+ addEventListener(element, "compositionstart"); |
+ addEventListener(element, "compositionupdate"); |
+ addEventListener(element, "compositionend"); |
+ addEventListener(element, "beforeedit"); |
+ addEventListener(element, "edit"); |
+ addEventListener(element, "select"); |
+ addEventListener(element, "change"); |
+ addEventListener(element, "input"); |
+ addSelectionEventListener(element, "selectionchange"); |
+ mutationObserver.observe(element, mutationConfig); |
+} |
+ |
+var contenteditableEvent = document.getElementById("contenteditable_event"); |
+ |
+registerListenersAndObserver(contenteditableEvent); |
+ </script> |
+ |
+ </body> |
+</html> |