@@ -16,18 +16,8 @@ htmlSuite('Events', function() {
16
16
return ;
17
17
}
18
18
19
- test ( 'TouchEvent' , function ( ) {
20
- var e = document . createEvent ( 'TouchEvent' ) ;
21
- assert . instanceOf ( e , TouchEvent ) ;
22
- assert . instanceOf ( e , UIEvent ) ;
23
- assert . instanceOf ( e , Event ) ;
24
- } ) ;
25
-
26
- test ( 'Touch' , function ( ) {
27
- // There is no way to create a native Touch object so we use a mock impl.
28
-
29
- var target = document . createElement ( 'div' ) ;
30
- var impl = {
19
+ function createMockTouch ( nativeTarget ) {
20
+ return {
31
21
clientX : 1 ,
32
22
clientY : 2 ,
33
23
screenX : 3 ,
@@ -39,8 +29,22 @@ htmlSuite('Events', function() {
39
29
webkitRadiusY : 9 ,
40
30
webkitRotationAngle : 10 ,
41
31
webkitForce : 11 ,
42
- target : unwrap ( target )
32
+ target : nativeTarget
43
33
} ;
34
+ }
35
+
36
+ test ( 'TouchEvent' , function ( ) {
37
+ var e = document . createEvent ( 'TouchEvent' ) ;
38
+ assert . instanceOf ( e , TouchEvent ) ;
39
+ assert . instanceOf ( e , UIEvent ) ;
40
+ assert . instanceOf ( e , Event ) ;
41
+ } ) ;
42
+
43
+ test ( 'Touch' , function ( ) {
44
+ // There is no way to create a native Touch object so we use a mock impl.
45
+
46
+ var target = document . createElement ( 'div' ) ;
47
+ var impl = createMockTouch ( unwrap ( target ) ) ;
44
48
var touch = new Touch ( impl ) ;
45
49
46
50
assert . equal ( touch . clientX , 1 ) ;
@@ -57,4 +61,53 @@ htmlSuite('Events', function() {
57
61
assert . equal ( touch . target , target ) ;
58
62
} ) ;
59
63
64
+ test ( 'TouchList' , function ( ) {
65
+
66
+ function createMockTouchList ( elements ) {
67
+ var arr = [ ] ;
68
+ for ( var i = 0 ; i < elements . length ; i ++ ) {
69
+ arr [ i ] = createMockTouch ( unwrap ( elements [ i ] ) ) ;
70
+ }
71
+ return arr ;
72
+ }
73
+
74
+ var a = document . createElement ( 'a' ) ;
75
+ var b = document . createElement ( 'b' ) ;
76
+ var c = document . createElement ( 'c' ) ;
77
+ var d = document . createElement ( 'd' ) ;
78
+ var e = document . createElement ( 'e' ) ;
79
+ var f = document . createElement ( 'f' ) ;
80
+
81
+ var mockEvent = {
82
+ __proto__ : unwrap ( document . createEvent ( 'TouchEvent' ) ) . __proto__ ,
83
+ touches : createMockTouchList ( [ a ] ) ,
84
+ targetTouches : createMockTouchList ( [ b , c ] ) ,
85
+ changedTouches : createMockTouchList ( [ d , e , f ] )
86
+ } ;
87
+
88
+ var event = wrap ( mockEvent ) ;
89
+
90
+ assert . instanceOf ( event . touches , TouchList ) ;
91
+ assert . instanceOf ( event . targetTouches , TouchList ) ;
92
+ assert . instanceOf ( event . changedTouches , TouchList ) ;
93
+
94
+ assert . equal ( event . touches . length , 1 ) ;
95
+ assert . equal ( event . targetTouches . length , 2 ) ;
96
+ assert . equal ( event . changedTouches . length , 3 ) ;
97
+
98
+ assert . instanceOf ( event . touches [ 0 ] , Touch ) ;
99
+ assert . instanceOf ( event . targetTouches [ 0 ] , Touch ) ;
100
+ assert . instanceOf ( event . targetTouches [ 1 ] , Touch ) ;
101
+ assert . instanceOf ( event . changedTouches [ 0 ] , Touch ) ;
102
+ assert . instanceOf ( event . changedTouches [ 1 ] , Touch ) ;
103
+ assert . instanceOf ( event . changedTouches [ 2 ] , Touch ) ;
104
+
105
+ assert . equal ( event . touches [ 0 ] . target , a ) ;
106
+ assert . equal ( event . targetTouches [ 0 ] . target , b ) ;
107
+ assert . equal ( event . targetTouches [ 1 ] . target , c ) ;
108
+ assert . equal ( event . changedTouches [ 0 ] . target , d ) ;
109
+ assert . equal ( event . changedTouches [ 1 ] . target , e ) ;
110
+ assert . equal ( event . changedTouches [ 2 ] . target , f ) ;
111
+ } ) ;
112
+
60
113
} ) ;
0 commit comments