~ubuntu-branches/ubuntu/raring/qtwebkit-source/raring-proposed

« back to all changes in this revision

Viewing changes to ManualTests/arrow-key-events.html

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2013-02-18 14:24:18 UTC
  • Revision ID: package-import@ubuntu.com-20130218142418-eon0jmjg3nj438uy
Tags: upstream-2.3
Import upstream version 2.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<body>
 
2
<p>Test for <a href="http://bugs.webkit.org/show_bug.cgi?id=3387">bug 3387</a>:
 
3
Redundant keydown, keypress, keyup events sent for arrow keys.</p>
 
4
 
 
5
<p>Try pressing arrow keys, PgUp/PgDown/Home/End, Esc, or function keys. 
 
6
The test passes if the box below doesn't turn red.<p>
 
7
 
 
8
<div id="result" style="width:100px; height:100px; background-color:blue;"></div>
 
9
 
 
10
<script>
 
11
 
 
12
    var console_messages = document.createElement("ol");
 
13
    document.body.appendChild(console_messages);
 
14
    
 
15
    window.onkeydown = registerWindow;
 
16
    window.onkeypress = registerWindow;
 
17
    window.onkeyup = registerWindow;
 
18
 
 
19
    document.onkeydown = registerDocument;
 
20
    document.onkeypress = registerDocument;
 
21
    document.onkeyup = registerDocument;
 
22
 
 
23
    document.body.onkeydown = registerBody;
 
24
    document.body.onkeypress = registerBody;
 
25
    document.body.onkeyup = registerBody;
 
26
 
 
27
    document.documentElement.onkeydown = registerDocumentElement;
 
28
    document.documentElement.onkeypress = registerDocumentElement;
 
29
    document.documentElement.onkeyup = registerDocumentElement;
 
30
 
 
31
    var bodyKeyDownCount = 0;
 
32
    var documentElementKeyDownCount = 0;
 
33
    var windowKeyDownCount = 0;
 
34
    var documentKeyDownCount = 0;
 
35
 
 
36
    function log(message)
 
37
    {
 
38
        var item = document.createElement("li");
 
39
        item.appendChild(document.createTextNode(message));
 
40
        item.style.fontSize = '8px';
 
41
        console_messages.appendChild(item);
 
42
    }
 
43
 
 
44
    function registerBody(e)
 
45
    {
 
46
        if ((e.type == "keydown" && ++bodyKeyDownCount != 1)
 
47
                || (e.type == "keyup" && --bodyKeyDownCount != 0))
 
48
            document.getElementById("result").style.backgroundColor = "red";
 
49
 
 
50
        if (!e)
 
51
            e = window.event;
 
52
        log("body: " + e.type);
 
53
        return true;
 
54
    }
 
55
 
 
56
    function registerDocumentElement(e)
 
57
    {
 
58
        if ((e.type == "keydown" && ++documentElementKeyDownCount != 1)
 
59
                || (e.type == "keyup" && --documentElementKeyDownCount != 0))
 
60
            document.getElementById("result").style.backgroundColor = "red";
 
61
 
 
62
        if (!e)
 
63
            e = window.event;
 
64
        log(" documentElement: " + e.type);
 
65
        return true;
 
66
    }
 
67
 
 
68
    function registerDocument(e)
 
69
    {
 
70
        if ((e.type == "keydown" && ++documentKeyDownCount != 1)
 
71
                || (e.type == "keyup" && --documentKeyDownCount != 0))
 
72
            document.getElementById("result").style.backgroundColor = "red";
 
73
 
 
74
        if (!e)
 
75
            e = window.event;
 
76
        log("  document: " + e.type);
 
77
        return true;
 
78
    }
 
79
 
 
80
    function registerWindow(e)
 
81
    {
 
82
        if ((e.type == "keydown" && ++windowKeyDownCount != 1)
 
83
                || (e.type == "keyup" && --windowKeyDownCount != 0))
 
84
            document.getElementById("result").style.backgroundColor = "red";
 
85
 
 
86
        if (!e)
 
87
            e = window.event;
 
88
        log("   window: " + e.type);
 
89
        return true;
 
90
    }
 
91
 
 
92
</script>
 
93
</body>