@@ -212,6 +212,49 @@ describe('Directive v-on', () => {
212
212
expect ( spy ) . toHaveBeenCalled ( )
213
213
} )
214
214
215
+ it ( 'should support mouse modifier' , ( ) => {
216
+ const left = 0
217
+ const middle = 1
218
+ const right = 2
219
+ const spyLeft = jasmine . createSpy ( )
220
+ const spyMiddle = jasmine . createSpy ( )
221
+ const spyRight = jasmine . createSpy ( )
222
+
223
+ vm = new Vue ( {
224
+ el,
225
+ template : `
226
+ <div>
227
+ <div ref="left" @mousedown.left="foo">left</div>
228
+ <div ref="right" @mousedown.right="foo1">right</div>
229
+ <div ref="middle" @mousedown.middle="foo2">right</div>
230
+ </div>
231
+ ` ,
232
+ methods : {
233
+ foo : spyLeft ,
234
+ foo1 : spyRight ,
235
+ foo2 : spyMiddle
236
+ }
237
+ } )
238
+
239
+ triggerEvent ( vm . $refs . left , 'mousedown' , e => { e . button = right } )
240
+ triggerEvent ( vm . $refs . left , 'mousedown' , e => { e . button = middle } )
241
+ expect ( spyLeft ) . not . toHaveBeenCalled ( )
242
+ triggerEvent ( vm . $refs . left , 'mousedown' , e => { e . button = left } )
243
+ expect ( spyLeft ) . toHaveBeenCalled ( )
244
+
245
+ triggerEvent ( vm . $refs . right , 'mousedown' , e => { e . button = left } )
246
+ triggerEvent ( vm . $refs . right , 'mousedown' , e => { e . button = middle } )
247
+ expect ( spyRight ) . not . toHaveBeenCalled ( )
248
+ triggerEvent ( vm . $refs . right , 'mousedown' , e => { e . button = right } )
249
+ expect ( spyRight ) . toHaveBeenCalled ( )
250
+
251
+ triggerEvent ( vm . $refs . middle , 'mousedown' , e => { e . button = left } )
252
+ triggerEvent ( vm . $refs . middle , 'mousedown' , e => { e . button = right } )
253
+ expect ( spyMiddle ) . not . toHaveBeenCalled ( )
254
+ triggerEvent ( vm . $refs . middle , 'mousedown' , e => { e . button = middle } )
255
+ expect ( spyMiddle ) . toHaveBeenCalled ( )
256
+ } )
257
+
215
258
it ( 'should support custom keyCode' , ( ) => {
216
259
Vue . config . keyCodes . test = 1
217
260
vm = new Vue ( {
0 commit comments