@@ -197,6 +197,49 @@ describe('Directive v-on', () => {
197
197
expect ( spy ) . toHaveBeenCalled ( )
198
198
} )
199
199
200
+ it ( 'should support mouse modifier' , ( ) => {
201
+ const left = 0
202
+ const middle = 1
203
+ const right = 2
204
+ const spyLeft = jasmine . createSpy ( )
205
+ const spyMiddle = jasmine . createSpy ( )
206
+ const spyRight = jasmine . createSpy ( )
207
+
208
+ vm = new Vue ( {
209
+ el,
210
+ template : `
211
+ <div>
212
+ <div ref="left" @mousedown.left="foo">left</div>
213
+ <div ref="right" @mousedown.right="foo1">right</div>
214
+ <div ref="middle" @mousedown.middle="foo2">right</div>
215
+ </div>
216
+ ` ,
217
+ methods : {
218
+ foo : spyLeft ,
219
+ foo1 : spyRight ,
220
+ foo2 : spyMiddle
221
+ }
222
+ } )
223
+
224
+ triggerEvent ( vm . $refs . left , 'mousedown' , e => { e . button = right } )
225
+ triggerEvent ( vm . $refs . left , 'mousedown' , e => { e . button = middle } )
226
+ expect ( spyLeft ) . not . toHaveBeenCalled ( )
227
+ triggerEvent ( vm . $refs . left , 'mousedown' , e => { e . button = left } )
228
+ expect ( spyLeft ) . toHaveBeenCalled ( )
229
+
230
+ triggerEvent ( vm . $refs . right , 'mousedown' , e => { e . button = left } )
231
+ triggerEvent ( vm . $refs . right , 'mousedown' , e => { e . button = middle } )
232
+ expect ( spyRight ) . not . toHaveBeenCalled ( )
233
+ triggerEvent ( vm . $refs . right , 'mousedown' , e => { e . button = right } )
234
+ expect ( spyRight ) . toHaveBeenCalled ( )
235
+
236
+ triggerEvent ( vm . $refs . middle , 'mousedown' , e => { e . button = left } )
237
+ triggerEvent ( vm . $refs . middle , 'mousedown' , e => { e . button = right } )
238
+ expect ( spyMiddle ) . not . toHaveBeenCalled ( )
239
+ triggerEvent ( vm . $refs . middle , 'mousedown' , e => { e . button = middle } )
240
+ expect ( spyMiddle ) . toHaveBeenCalled ( )
241
+ } )
242
+
200
243
it ( 'should support custom keyCode' , ( ) => {
201
244
Vue . config . keyCodes . test = 1
202
245
vm = new Vue ( {
0 commit comments