2010-08-02 Martin Robinson <mrobinson@igalia.com>
[WebKit-https.git] / LayoutTests / fast / events / special-key-events-in-input-text.html
1 <html><head></head>
2 <body>
3 <p>This test verifies that the correct sequence of keyboard events is generated for a keypress for certain special keys. To test manually, press keys and compare results to other browsers.</p>
4 <input type="text"></input>
5 <div id="log"></div>
6
7 <script>
8 function log(msg) {
9    document.getElementById("log").innerHTML+= msg + "<br>";
10 }
11
12 function logEvent(e) {
13    var target = e.target;
14    var type = e.type;
15
16    var info = target.tagName + " - " + type + ' - ';
17    if (type == "textInput") {
18      info += e.data;
19    } else if (type == "keydown" || type == "keypress" || type == "keyup") {
20      info += [e.ctrlKey, e.altKey, e.shiftKey, e.metaKey] +
21          ' - ' + e.keyIdentifier +
22          ' - ' + e.keyCode +
23          ' - ' + e.charCode;
24    }
25    info += '. Value: "' + target.value + '".';
26    log(info);
27 }
28
29 log("target - type - " + ["ctrlKey", "altKey", "shiftKey", "metaKey"]
30        + ' - ' + "keyIdentifier"
31        + ' - ' + "keyCode"
32        + ' - ' + "charCode");
33
34 var input = document.getElementsByTagName("input")[0];
35 input.addEventListener('textInput', logEvent, false);
36 input.addEventListener('keypress', logEvent, false);
37 input.addEventListener('keydown', logEvent, false);
38 input.addEventListener('keyup', logEvent, false);
39 input.focus();
40
41 if (window.layoutTestController) {
42    layoutTestController.dumpAsText();
43    log("<br>Ampersand:");
44    eventSender.keyDown("7", ["shiftKey"]);
45    log("<br>Backspace:");
46    eventSender.keyDown("\x08", []);
47    log("<br>Percent:");
48    eventSender.keyDown("5", ["shiftKey"]);
49    log("<br>Backspace:");
50    eventSender.keyDown("\x08", []);
51    log("<br>Left parenthesis:");
52    eventSender.keyDown("9", ["shiftKey"]);
53    log("<br>Backspace:");
54    eventSender.keyDown("\x08", []);
55    log("<br>Right parenthesis:");
56    eventSender.keyDown("0", ["shiftKey"]);
57    log("<br>Backspace:");
58    eventSender.keyDown("\x08", []);
59    log("<br>Print screen:");
60    eventSender.keyDown("printScreen", []);
61   }
62 </script>
63 </body></html>