1
1
( function ( ) {
2
+ var key = jQuery . simulate . keyCode ,
3
+ clickOptions = [ "ctrlKey" , "altKey" , "shiftKey" , "metaKey" ] ,
4
+ keyEvents = [ "keydown" , "keyup" , "keypress" ] ,
5
+ keyOptions = [ "ctrlKey" , "altKey" , "shiftKey" , "metaKey" ] ,
6
+ i = 0 ,
7
+ j = 0 ,
8
+ k = 0 ;
2
9
3
10
module ( "mouse events" ) ;
4
11
@@ -25,26 +32,98 @@ test( "click on radio triggers change", function() {
25
32
notEqual ( checked , firstRadio . prop ( "checked" ) , "radio state changed" ) ;
26
33
} ) ;
27
34
28
- var key = jQuery . simulate . keyCode ,
29
- keyEvents = [ "keydown" , "keyup" , "keypress" ] ,
30
- i = 0 ;
35
+ test ( "click" , function ( ) {
36
+ expect ( 6 ) ;
37
+ jQuery ( "<div></div>" ) . bind ( "click" , function ( event ) {
38
+ ok ( true , "click event fired" ) ;
39
+ equal ( event . button , 0 , "click event was fired with left mouse button" ) ;
40
+ equal ( event . ctrlKey , false , "click event was fired without control key" ) ;
41
+ equal ( event . metaKey , false , "click event was fired without meta key" ) ;
42
+ equal ( event . shiftKey , false , "click event was fired without shift key" ) ;
43
+ equal ( event . altKey , false , "click event was fired without alt key" ) ;
44
+ } ) . appendTo ( "#qunit-fixture" ) . simulate ( "click" ) ;
45
+ } ) ;
46
+
47
+ test ( "click with middle mouse button" , function ( ) {
48
+ expect ( 2 ) ;
49
+ jQuery ( "<div></div>" ) . bind ( "click" , function ( event ) {
50
+ ok ( true , "click event fired" ) ;
51
+ equal ( event . button , 1 , "click event was fired with middle mouse button" ) ;
52
+ } ) . appendTo ( "#qunit-fixture" ) . simulate ( "click" , {
53
+ button : 1
54
+ } ) ;
55
+ } ) ;
56
+
57
+ test ( "click with right mouse button" , function ( ) {
58
+ expect ( 2 ) ;
59
+ jQuery ( "<div></div>" ) . bind ( "click" , function ( event ) {
60
+ ok ( true , "click event fired" ) ;
61
+ equal ( event . button , 2 , "click event was fired with right mouse button" ) ;
62
+ } ) . appendTo ( "#qunit-fixture" ) . simulate ( "click" , {
63
+ button : 2
64
+ } ) ;
65
+ } ) ;
66
+
67
+ function testClickEvent ( clickOption ) {
68
+ var options = { } ;
69
+ options [ clickOption ] = true ;
70
+
71
+ test ( "click with " + clickOption , function ( ) {
72
+ expect ( 2 ) ;
73
+ jQuery ( "<div></div>" ) . bind ( "click" , function ( event ) {
74
+ ok ( true , "click event fired" ) ;
75
+ equal ( event [ clickOption ] , true , "click event was fired with " + clickOption ) ;
76
+ } ) . appendTo ( "#qunit-fixture" ) . simulate ( "click" , options ) ;
77
+ } ) ;
78
+ }
79
+
80
+ for ( i ; i < clickOptions . length ; i ++ ) {
81
+ testClickEvent ( clickOptions [ i ] ) ;
82
+ }
31
83
32
84
module ( "key events" ) ;
33
85
34
86
function testKeyEvent ( keyEvent ) {
35
87
test ( keyEvent , function ( ) {
36
- expect ( 2 ) ;
88
+ expect ( 2 + keyOptions . length ) ;
37
89
jQuery ( "<div></div>" ) . bind ( keyEvent , function ( event ) {
90
+ var i = 0 ;
91
+
38
92
ok ( true , keyEvent + " event fired" ) ;
39
93
equal ( event . keyCode , key . PAGE_UP , keyEvent + " event has correct keyCode" ) ;
94
+
95
+ for ( i ; i < keyOptions . length ; i ++ ) {
96
+ equal ( event [ keyOptions [ i ] ] , false , keyEvent + " event fired without " + keyOptions [ i ] ) ;
97
+ }
40
98
} ) . appendTo ( "#qunit-fixture" ) . simulate ( keyEvent , {
41
99
keyCode : key . PAGE_UP
42
100
} ) ;
43
101
} ) ;
44
102
}
45
103
46
- for ( ; i < keyEvents . length ; i ++ ) {
47
- testKeyEvent ( keyEvents [ i ] ) ;
104
+ function testKeyEventOption ( keyEvent , keyOption ) {
105
+ test ( keyEvent + " with " + keyOption , function ( ) {
106
+ var options = {
107
+ keyCode : key . PAGE_UP
108
+ } ;
109
+ options [ keyOption ] = true ;
110
+
111
+ expect ( 3 ) ;
112
+ jQuery ( "<div></div>" ) . bind ( keyEvent , function ( event ) {
113
+ ok ( true , keyEvent + " event fired" ) ;
114
+ equal ( event . keyCode , key . PAGE_UP , keyEvent + " event has correct keyCode" ) ;
115
+ equal ( event [ keyOption ] , true , keyEvent + " event fired with " + keyOption ) ;
116
+ } ) . appendTo ( "#qunit-fixture" ) . simulate ( keyEvent , options ) ;
117
+ } ) ;
118
+ }
119
+
120
+ for ( j ; j < keyEvents . length ; j ++ ) {
121
+ k = 0 ;
122
+ testKeyEvent ( keyEvents [ j ] ) ;
123
+
124
+ for ( k ; k < keyOptions . length ; k ++ ) {
125
+ testKeyEventOption ( keyEvents [ j ] , keyOptions [ k ] ) ;
126
+ }
48
127
}
49
128
50
129
module ( "complex events" ) ;
@@ -98,4 +177,4 @@ asyncTest( "drag moves option", function() {
98
177
} ) ;
99
178
} ) ;
100
179
101
- } ) ( ) ;
180
+ } ) ( ) ;
0 commit comments