Skip to content

Commit b8eca81

Browse files
munet9guests
authored and
guests
committed
feat(browserTrigger): add support TouchEvent
To simulate Touch-enabled device in ngTouch test. ```browserTrigger(element, 'touchstart')``` generates TouchEvent not MouseEvent. Closes angular#4997
1 parent 043190f commit b8eca81

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/ngScenario/browserTrigger.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929

3030
eventData = eventData || {};
3131
var keys = eventData.keys;
32-
var x = eventData.x;
33-
var y = eventData.y;
32+
var x = eventData.x || 0;
33+
var y = eventData.y || 0;
3434

3535
var inputType = (element.type) ? element.type.toLowerCase() : null,
3636
nodeName = element.nodeName.toLowerCase();
@@ -120,10 +120,16 @@
120120
}
121121
}
122122
}
123+
else if(/touch/.test(eventType) && document.createTouch) {
124+
var touch, touchlist;
125+
evnt = document.createEvent('TouchEvent');
126+
touch = document.createTouch(window, element, 0, x, y, x, y);
127+
touchlist = document.createTouchList(touch);
128+
evnt.initTouchEvent(touchlist, touchlist, touchlist, eventType, window, x, y, x, y,
129+
pressed('ctrl'), pressed('alt'), pressed('shift'), pressed('meta'));
130+
}
123131
else {
124132
evnt = document.createEvent('MouseEvents');
125-
x = x || 0;
126-
y = y || 0;
127133
evnt.initMouseEvent(eventType, true, true, window, 0, x, y, x, y, pressed('ctrl'),
128134
pressed('alt'), pressed('shift'), pressed('meta'), 0, element);
129135
}

0 commit comments

Comments
 (0)