comparison src/testdir/test_mswin_event.vim @ 31674:edbadc330871 v9.0.1169

patch 9.0.1169: some key+modifier tests fail on some AppVeyor images Commit: https://github.com/vim/vim/commit/566f76e6566ccc418b25d51f454d2cc509ca7f8a Author: Christopher Plewright <chris@createng.com> Date: Tue Jan 10 13:43:04 2023 +0000 patch 9.0.1169: some key+modifier tests fail on some AppVeyor images Problem: Some key+modifier tests fail on some AppVeyor images. Solution: Adjust the tests for key movements and fix the revealed bugs. (Christopher Plewright, closes #11798)
author Bram Moolenaar <Bram@vim.org>
date Tue, 10 Jan 2023 14:45:07 +0100
parents 238f424acc6c
children dbec60b8c253
comparison
equal deleted inserted replaced
31673:7ae148439320 31674:edbadc330871
153 \ 'DELETE' : 0x2E, 153 \ 'DELETE' : 0x2E,
154 \ 'BACK' : 0x08, 154 \ 'BACK' : 0x08,
155 \ 'ESCAPE' : 0x1B 155 \ 'ESCAPE' : 0x1B
156 \ } 156 \ }
157 157
158 let s:vim_MOD_MASK_SHIFT = 0x02 158 let s:MOD_MASK_SHIFT = 0x02
159 let s:vim_MOD_MASK_CTRL = 0x04 159 let s:MOD_MASK_CTRL = 0x04
160 let s:vim_MOD_MASK_ALT = 0x08 160 let s:MOD_MASK_ALT = 0x08
161 161
162 let s:vim_key_modifiers = [ 162 let s:vim_key_modifiers = [
163 \ ["", 0, []], 163 \ ["", 0, []],
164 \ ["S-", 2, [s:VK.SHIFT]], 164 \ ["S-", 2, [s:VK.LSHIFT]],
165 \ ["C-", 4, [s:VK.CONTROL]], 165 \ ["C-", 4, [s:VK.LCONTROL]],
166 \ ["C-S-", 6, [s:VK.CONTROL, s:VK.SHIFT]], 166 \ ["C-S-", 6, [s:VK.LCONTROL, s:VK.LSHIFT]],
167 \ ["A-", 8, [s:VK.MENU]], 167 \ ["A-", 8, [s:VK.LMENU]],
168 \ ["A-S-", 10, [s:VK.MENU, s:VK.SHIFT]], 168 \ ["A-S-", 10, [s:VK.LMENU, s:VK.LSHIFT]],
169 \ ["A-C-", 12, [s:VK.MENU, s:VK.CONTROL]], 169 \ ["A-C-", 12, [s:VK.LMENU, s:VK.LCONTROL]],
170 \ ["A-C-S-", 14, [s:VK.MENU, s:VK.CONTROL, s:VK.SHIFT]], 170 \ ["A-C-S-", 14, [s:VK.LMENU, s:VK.LCONTROL, s:VK.LSHIFT]],
171 \] 171 \]
172 172
173 " Assuming Standard US PC Keyboard layout 173 " Assuming Standard US PC Keyboard layout
174 let s:test_ascii_key_chars = [ 174 let s:test_ascii_key_chars = [
175 \ [[s:VK.SPACE], ' '], 175 \ [[s:VK.SPACE], ' '],
338 \ [[s:VK.ALT, s:VK.KEY_Y], 'ù'], 338 \ [[s:VK.ALT, s:VK.KEY_Y], 'ù'],
339 \ [[s:VK.ALT, s:VK.KEY_Z], 'ú'], 339 \ [[s:VK.ALT, s:VK.KEY_Z], 'ú'],
340 \ ] 340 \ ]
341 341
342 func s:LoopTestKeyArray(arr) 342 func s:LoopTestKeyArray(arr)
343 " flush out anything in the typeahead buffer 343 " flush out the typeahead buffer
344 while getchar(0) 344 while getchar(0)
345 endwhile 345 endwhile
346 346
347 for [kcodes, kstr] in a:arr 347 for [kcodes, kstr] in a:arr
348 " Send as a sequence of key presses. 348 " Send as a sequence of key presses.
362 " Send as a single key press with a modifers mask. 362 " Send as a single key press with a modifers mask.
363 let modifiers = 0 363 let modifiers = 0
364 let key = kcodes[0] 364 let key = kcodes[0]
365 for key in kcodes 365 for key in kcodes
366 if index([s:VK.SHIFT, s:VK.LSHIFT, s:VK.RSHIFT], key) >= 0 366 if index([s:VK.SHIFT, s:VK.LSHIFT, s:VK.RSHIFT], key) >= 0
367 let modifiers = modifiers + s:vim_MOD_MASK_SHIFT 367 let modifiers = modifiers + s:MOD_MASK_SHIFT
368 endif 368 endif
369 if index([s:VK.CONTROL, s:VK.LCONTROL, s:VK.RCONTROL], key) >= 0 369 if index([s:VK.CONTROL, s:VK.LCONTROL, s:VK.RCONTROL], key) >= 0
370 let modifiers = modifiers + s:vim_MOD_MASK_CTRL 370 let modifiers = modifiers + s:MOD_MASK_CTRL
371 endif 371 endif
372 if index([s:VK.ALT, s:VK.LALT, s:VK.RALT], key) >= 0 372 if index([s:VK.ALT, s:VK.LALT, s:VK.RALT], key) >= 0
373 let modifiers = modifiers + s:vim_MOD_MASK_ALT 373 let modifiers = modifiers + s:MOD_MASK_ALT
374 endif 374 endif
375 endfor 375 endfor
376 call SendKeyWithModifiers(key, modifiers) 376 call SendKeyWithModifiers(key, modifiers)
377 let ch = getcharstr(0) 377 let ch = getcharstr(0)
378 " need to deal a bit differently with the non-printable ascii chars < 0x20 378 " need to deal a bit differently with the non-printable ascii chars < 0x20
385 " the mod_mask is zero when no modifiers are used 385 " the mod_mask is zero when no modifiers are used
386 " and when the virtual termcap maps the character 386 " and when the virtual termcap maps the character
387 call assert_equal(0, mod_mask, $"key = {kstr}") 387 call assert_equal(0, mod_mask, $"key = {kstr}")
388 endfor 388 endfor
389 389
390 " flush out anything in the typeahead buffer 390 " flush out the typeahead buffer
391 while getchar(0) 391 while getchar(0)
392 endwhile 392 endwhile
393 393
394 endfunc 394 endfunc
395 395
396 " Test MS-Windows key events 396 " Test MS-Windows key events
397 func Test_mswin_key_event() 397 func Test_mswin_event_character_keys()
398 CheckMSWindows 398 CheckMSWindows
399 new 399 new
400 400
401 call s:LoopTestKeyArray(s:test_ascii_key_chars) 401 call s:LoopTestKeyArray(s:test_ascii_key_chars)
402 402
420 for modkey in [s:VK.ALT, s:VK.LALT, s:VK.RALT] 420 for modkey in [s:VK.ALT, s:VK.LALT, s:VK.RALT]
421 for kc in range(48, 57) 421 for kc in range(48, 57)
422 call SendKeyGroup([modkey, kc]) 422 call SendKeyGroup([modkey, kc])
423 let ch = getchar(0) 423 let ch = getchar(0)
424 call assert_equal(kc+128, ch) 424 call assert_equal(kc+128, ch)
425 call SendKeyWithModifiers(kc, s:vim_MOD_MASK_ALT) 425 call SendKeyWithModifiers(kc, s:MOD_MASK_ALT)
426 let ch = getchar(0) 426 let ch = getchar(0)
427 call assert_equal(kc+128, ch) 427 call assert_equal(kc+128, ch)
428 endfor 428 endfor
429 endfor 429 endfor
430 430
449 for modkey in [s:VK.SHIFT, s:VK.LSHIFT, s:VK.RSHIFT] 449 for modkey in [s:VK.SHIFT, s:VK.LSHIFT, s:VK.RSHIFT]
450 for kc in range(65, 90) 450 for kc in range(65, 90)
451 call SendKeyGroup([modkey, kc]) 451 call SendKeyGroup([modkey, kc])
452 let ch = getcharstr(0) 452 let ch = getcharstr(0)
453 call assert_equal(nr2char(kc), ch) 453 call assert_equal(nr2char(kc), ch)
454 call SendKeyWithModifiers(kc, s:vim_MOD_MASK_SHIFT) 454 call SendKeyWithModifiers(kc, s:MOD_MASK_SHIFT)
455 let ch = getcharstr(0) 455 let ch = getcharstr(0)
456 call assert_equal(nr2char(kc), ch) 456 call assert_equal(nr2char(kc), ch)
457 endfor 457 endfor
458 endfor 458 endfor
459 459
462 for modkey in [s:VK.CONTROL, s:VK.LCONTROL, s:VK.RCONTROL] 462 for modkey in [s:VK.CONTROL, s:VK.LCONTROL, s:VK.RCONTROL]
463 for kc in range(65, 90) 463 for kc in range(65, 90)
464 call SendKeyGroup([modkey, kc]) 464 call SendKeyGroup([modkey, kc])
465 let ch = getcharstr(0) 465 let ch = getcharstr(0)
466 call assert_equal(nr2char(kc - 64), ch) 466 call assert_equal(nr2char(kc - 64), ch)
467 call SendKeyWithModifiers(kc, s:vim_MOD_MASK_CTRL) 467 call SendKeyWithModifiers(kc, s:MOD_MASK_CTRL)
468 let ch = getcharstr(0) 468 let ch = getcharstr(0)
469 call assert_equal(nr2char(kc - 64), ch) 469 call assert_equal(nr2char(kc - 64), ch)
470 endfor 470 endfor
471 endfor 471 endfor
472 472
478 for modkey in [s:VK.ALT, s:VK.LALT, s:VK.RALT] 478 for modkey in [s:VK.ALT, s:VK.LALT, s:VK.RALT]
479 for kc in range(65, 90) 479 for kc in range(65, 90)
480 call SendKeyGroup([modkey, kc]) 480 call SendKeyGroup([modkey, kc])
481 let ch = getchar(0) 481 let ch = getchar(0)
482 call assert_equal(kc+160, ch) 482 call assert_equal(kc+160, ch)
483 call SendKeyWithModifiers(kc, s:vim_MOD_MASK_ALT) 483 call SendKeyWithModifiers(kc, s:MOD_MASK_ALT)
484 let ch = getchar(0) 484 let ch = getchar(0)
485 call assert_equal(kc+160, ch) 485 call assert_equal(kc+160, ch)
486 endfor 486 endfor
487 endfor 487 endfor
488 endif 488 endif
489 489
490 endfun
491
490 " Test for Function Keys 'F1' to 'F12' 492 " Test for Function Keys 'F1' to 'F12'
491 " VK codes 112(0x70) - 123(0x7B) 493 " VK codes 112(0x70) - 123(0x7B)
492 " Also with ALL permutatios of modifiers; Shift, Ctrl & Alt 494 " Also with ALL permutatios of modifiers; Shift, Ctrl & Alt
493 " NOTE: Windows intercepts some of these keys in the GUI 495 func Test_mswin_event_function_keys()
494 if !has("gui_running") 496
495 for [mod_str, vim_mod_mask, mod_keycodes] in s:vim_key_modifiers 497 if has('gui_running')
496 for n in range(1, 12) 498 let g:test_is_flaky = 1
497 let kstr = $"{mod_str}F{n}" 499 endif
500
501 " NOTE: Windows intercepts these combinations in the GUI
502 let gui_nogo = ["A-F1", "A-F2", "A-F3", "A-F4", "A-S-F4", "A-C-S-F4",
503 \ "A-F5", "A-F6", "A-F7", "A-F8", "A-C-F8", "A-F9",
504 \ "A-F10", "A-F11" , "A-C-F11", "A-C-F12"]
505
506 " flush out the typeahead buffer
507 while getchar(0)
508 endwhile
509
510 for [mod_str, vim_mod_mask, mod_keycodes] in s:vim_key_modifiers
511 for n in range(1, 12)
512 let expected_mod_mask = vim_mod_mask
513 let kstr = $"{mod_str}F{n}"
514 if !has('gui_running') || (has('gui_running') && n != 10
515 \ && index(gui_nogo, kstr) == -1)
498 let keycode = eval('"\<' .. kstr .. '>"') 516 let keycode = eval('"\<' .. kstr .. '>"')
499 " flush out anything in the typeahead buffer 517 " flush out the typeahead buffer
500 while getchar(0) 518 while getchar(0)
501 endwhile 519 endwhile
502 " call SendKeyGroup(mod_keycodes + [111+n])
503 call SendKeyWithModifiers(111+n, vim_mod_mask) 520 call SendKeyWithModifiers(111+n, vim_mod_mask)
504 let ch = getcharstr(0) 521 let ch = getcharstr(0)
505 let mod_mask = getcharmod() 522 let mod_mask = getcharmod()
506 call assert_equal(keycode, $"{ch}", $"key = {kstr}") 523 call assert_equal(keycode, $"{ch}", $"key = {kstr}")
507 " workaround for the virtual termcap maps changing the character instead 524 " workaround for the virtual termcap maps changing the character
508 " of sending Shift 525 "instead of sending Shift
509 for mod_key in mod_keycodes 526 for mod_key in mod_keycodes
510 if index([s:VK.SHIFT, s:VK.LSHIFT, s:VK.RSHIFT], mod_key) >= 0 527 if index([s:VK.SHIFT, s:VK.LSHIFT, s:VK.RSHIFT], mod_key) >= 0
511 let mod_mask = mod_mask + s:vim_MOD_MASK_SHIFT 528 let expected_mod_mask -= s:MOD_MASK_SHIFT
529 break
512 endif 530 endif
513 endfor 531 endfor
514 call assert_equal(vim_mod_mask, mod_mask, $"mod = {vim_mod_mask} for key = {kstr}") 532 call assert_equal(expected_mod_mask, mod_mask, $"mod = {expected_mod_mask} for key = {kstr}")
515 endfor 533 endif
516 endfor 534 endfor
517 endif 535 endfor
518 536 endfunc
519 " Test for the various Ctrl and Shift key combinations. 537
520 let keytests = [ 538 func ExtractModifiers(mod_keycodes)
521 \ [[s:VK.SHIFT, s:VK.PRIOR], "S-Pageup", 2], 539 let has_shift = 0
522 \ [[s:VK.LSHIFT, s:VK.PRIOR], "S-Pageup", 2], 540 let has_ctrl = 0
523 \ [[s:VK.RSHIFT, s:VK.PRIOR], "S-Pageup", 2], 541 let has_alt = 0
524 \ [[s:VK.CONTROL, s:VK.PRIOR], "C-Pageup", 4], 542 for mod_key in a:mod_keycodes
525 \ [[s:VK.LCONTROL, s:VK.PRIOR], "C-Pageup", 4], 543 if index([s:VK.SHIFT, s:VK.LSHIFT, s:VK.RSHIFT], mod_key) >= 0
526 \ [[s:VK.RCONTROL, s:VK.PRIOR], "C-Pageup", 4], 544 let has_shift = 1
527 \ [[s:VK.CONTROL, s:VK.SHIFT, s:VK.PRIOR], "C-S-Pageup", 6], 545 endif
528 \ [[s:VK.SHIFT, s:VK.NEXT], "S-PageDown", 2], 546 if index([s:VK.CONTROL, s:VK.LCONTROL, s:VK.RCONTROL], mod_key) >= 0
529 \ [[s:VK.LSHIFT, s:VK.NEXT], "S-PageDown", 2], 547 let has_ctrl = 1
530 \ [[s:VK.RSHIFT, s:VK.NEXT], "S-PageDown", 2], 548 endif
531 \ [[s:VK.CONTROL, s:VK.NEXT], "C-PageDown", 4], 549 if index([s:VK.MENU, s:VK.LMENU, s:VK.RMENU], mod_key) >= 0
532 \ [[s:VK.LCONTROL, s:VK.NEXT], "C-PageDown", 4], 550 let has_alt = 1
533 \ [[s:VK.RCONTROL, s:VK.NEXT], "C-PageDown", 4], 551 endif
534 \ [[s:VK.CONTROL, s:VK.SHIFT, s:VK.NEXT], "C-S-PageDown", 6], 552 endfor
535 \ [[s:VK.SHIFT, s:VK.END], "S-End", 0], 553 return [has_shift, has_ctrl, has_alt]
536 \ [[s:VK.CONTROL, s:VK.END], "C-End", 0], 554 endfunc
537 \ [[s:VK.CONTROL, s:VK.SHIFT, s:VK.END], "C-S-End", 4], 555
538 \ [[s:VK.SHIFT, s:VK.HOME], "S-Home", 0], 556 " Test for Movement Keys;
539 \ [[s:VK.CONTROL, s:VK.HOME], "C-Home", 0], 557 " VK_PRIOR 0x21, VK_NEXT 0x22,
540 \ [[s:VK.CONTROL, s:VK.SHIFT, s:VK.HOME], "C-S-Home", 4], 558 " VK_END 0x23, VK_HOME 0x24,
541 \ [[s:VK.SHIFT, s:VK.LEFT], "S-Left", 0], 559 " VK_LEFT 0x25, VK_UP 0x26,
542 \ [[s:VK.CONTROL, s:VK.LEFT], "C-Left", 0], 560 " VK_RIGHT 0x27, VK_DOWN 0x28
543 \ [[s:VK.CONTROL, s:VK.SHIFT, s:VK.LEFT], "C-S-Left", 4], 561 " With ALL permutations of modifiers; none, Shift, Ctrl & Alt
544 \ [[s:VK.SHIFT, s:VK.UP], "S-Up", 0], 562 func Test_mswin_event_movement_keys()
545 \ [[s:VK.CONTROL, s:VK.UP], "C-Up", 4], 563
546 \ [[s:VK.CONTROL, s:VK.SHIFT, s:VK.UP], "C-S-Up", 4], 564 if has('gui_running')
547 \ [[s:VK.SHIFT, s:VK.RIGHT], "S-Right", 0], 565 let g:test_is_flaky = 1
548 \ [[s:VK.CONTROL, s:VK.RIGHT], "C-Right", 0], 566 endif
549 \ [[s:VK.CONTROL, s:VK.SHIFT, s:VK.RIGHT], "C-S-Right", 4], 567
550 \ [[s:VK.SHIFT, s:VK.DOWN], "S-Down", 0], 568 let movement_keys = [
551 \ [[s:VK.CONTROL, s:VK.DOWN], "C-Down", 4], 569 \ [s:VK.PRIOR, "PageUp"],
552 \ [[s:VK.CONTROL, s:VK.SHIFT, s:VK.DOWN], "C-S-Down", 4], 570 \ [s:VK.NEXT, "PageDown"],
553 \ [[s:VK.CONTROL, s:VK.KEY_0], "C-0", 4], 571 \ [s:VK.END, "End"],
554 \ [[s:VK.CONTROL, s:VK.KEY_1], "C-1", 4], 572 \ [s:VK.HOME, "Home"],
555 \ [[s:VK.CONTROL, s:VK.KEY_2], "C-@", 0], 573 \ [s:VK.LEFT, "Left"],
556 \ [[s:VK.CONTROL, s:VK.KEY_3], "C-3", 4], 574 \ [s:VK.UP, "Up"],
557 \ [[s:VK.CONTROL, s:VK.KEY_4], "C-4", 4], 575 \ [s:VK.RIGHT, "Right"],
558 \ [[s:VK.CONTROL, s:VK.KEY_5], "C-5", 4], 576 \ [s:VK.DOWN, "Down"],
559 \ [[s:VK.CONTROL, s:VK.KEY_6], "C-^", 0],
560 \ [[s:VK.CONTROL, s:VK.KEY_7], "C-7", 4],
561 \ [[s:VK.CONTROL, s:VK.KEY_8], "C-8", 4],
562 \ [[s:VK.CONTROL, s:VK.KEY_9], "C-9", 4],
563 \ [[s:VK.CONTROL, s:VK.NUMPAD0], "C-0", 4],
564 \ [[s:VK.CONTROL, s:VK.NUMPAD1], "C-1", 4],
565 \ [[s:VK.CONTROL, s:VK.NUMPAD2], "C-2", 4],
566 \ [[s:VK.CONTROL, s:VK.NUMPAD3], "C-3", 4],
567 \ [[s:VK.CONTROL, s:VK.NUMPAD4], "C-4", 4],
568 \ [[s:VK.CONTROL, s:VK.NUMPAD5], "C-5", 4],
569 \ [[s:VK.CONTROL, s:VK.NUMPAD6], "C-6", 4],
570 \ [[s:VK.CONTROL, s:VK.NUMPAD7], "C-7", 4],
571 \ [[s:VK.CONTROL, s:VK.NUMPAD8], "C-8", 4],
572 \ [[s:VK.CONTROL, s:VK.NUMPAD9], "C-9", 4],
573 \ [[s:VK.CONTROL, s:VK.MULTIPLY], "C-*", 4],
574 \ [[s:VK.CONTROL, s:VK.ADD], "C-+", 4],
575 \ [[s:VK.CONTROL, s:VK.SUBTRACT], "C--", 4],
576 \ [[s:VK.CONTROL, s:VK.OEM_MINUS], "C-_", 0]
577 \ ] 577 \ ]
578 578
579 for [kcodes, kstr, kmod] in keytests 579 " flush out the typeahead buffer
580 call SendKeyGroup(kcodes) 580 while getchar(0)
581 let ch = getcharstr(0) 581 endwhile
582 let mod = getcharmod() 582
583 let keycode = eval('"\<' .. kstr .. '>"') 583 for [mod_str, vim_mod_mask, mod_keycodes] in s:vim_key_modifiers
584 call assert_equal(keycode, ch, $"key = {kstr}") 584 for [kcode, kname] in movement_keys
585 call assert_equal(kmod, mod, $"mod = {kmod} key = {kstr}") 585 let exp_mod_mask = vim_mod_mask
586 let kstr = $"{mod_str}{kname}"
587 let chstr_eval = eval('"\<' .. kstr .. '>"')
588
589 " flush out the typeahead buffer
590 while getchar(0)
591 endwhile
592 execute 'call feedkeys("\<' .. kstr .. '>")'
593 let chstr_fk = getcharstr(0)
594 call assert_equal(chstr_eval, chstr_fk, $"feedkeys = <{kstr}>")
595
596 " flush out the typeahead buffer
597 while getchar(0)
598 endwhile
599 call SendKey(kcode)
600 let chstr_alone = getcharstr(0)
601 let chstr_alone_end = chstr_alone[len(chstr_alone)-2:len(chstr_alone)-1]
602
603 " flush out the typeahead buffer
604 while getchar(0)
605 endwhile
606 call SendKeyGroup(mod_keycodes + [kcode])
607 let chstr_mswin = getcharstr(0)
608 let chstr_mswin_end = chstr_mswin[len(chstr_mswin)-2:len(chstr_mswin)-1]
609 let mod_mask = getcharmod()
610
611 " The virtual termcap maps may** change the character and either;
612 " - remove the Shift modifier, or
613 " - remove the Ctrl modifier if the Shift modifier was not removed.
614 let [has_shift, has_ctrl, has_alt] = ExtractModifiers(mod_keycodes)
615 if chstr_alone_end != chstr_mswin_end
616 if has_shift != 0
617 let exp_mod_mask -= s:MOD_MASK_SHIFT
618 elseif has_ctrl != 0
619 let exp_mod_mask -= s:MOD_MASK_CTRL
620 endif
621 endif
622 " **Note: The appveyor Windows GUI test environments, from VS2017 on,
623 " consistently intercepts the Shift modifier WITHOUT changing the
624 " MOVEMENT character. This issue does not happen in any github actions
625 " CI Windows test environments. Attempted to reproduce this manually
626 " on Windows versions; 7, 8.1, 10, 11, Server 2019 and Server 2022, but
627 " the issue did not occur on any of those environments.
628 " Below is a workaround for the issue.
629 if has('gui_running') && has_shift != 0
630 if exp_mod_mask != mod_mask && chstr_eval != chstr_mswin
631 let kstr_sub = substitute(kstr, "S-", "", "")
632 let chstr_eval = eval('"\<' .. kstr_sub .. '>"')
633 if exp_mod_mask - s:MOD_MASK_SHIFT == mod_mask
634 let exp_mod_mask -= s:MOD_MASK_SHIFT
635 elseif has_ctrl != 0 && exp_mod_mask - s:MOD_MASK_CTRL == mod_mask
636 let exp_mod_mask -= s:MOD_MASK_CTRL
637 endif
638 endif
639 endif
640 call assert_equal(chstr_eval, chstr_mswin, $"key = {kstr}")
641 call assert_equal(exp_mod_mask, mod_mask, $"mod_mask for key = {kstr}")
642 endfor
586 endfor 643 endfor
587 644
588 bw! 645 bw!
589 endfunc 646 endfunc
590 647
626 imapclear 683 imapclear
627 bw! 684 bw!
628 endfunc 685 endfunc
629 686
630 " Test MS-Windows mouse events 687 " Test MS-Windows mouse events
631 func Test_mswin_mouse_event() 688 func Test_mswin_event_mouse()
632 CheckMSWindows 689 CheckMSWindows
633 new 690 new
634 691
635 set mousemodel=extend 692 set mousemodel=extend
636 call test_override('no_query_mouse', 1) 693 call test_override('no_query_mouse', 1)
938 call assert_fails("call test_mswin_event('key', {'keycode': 0x41})", 'E417:') 995 call assert_fails("call test_mswin_event('key', {'keycode': 0x41})", 'E417:')
939 call assert_fails("call test_mswin_event('key', {'event': 'keydown'})", 'E1291:') 996 call assert_fails("call test_mswin_event('key', {'event': 'keydown'})", 'E1291:')
940 997
941 call assert_fails("sandbox call test_mswin_event('key', {'event': 'keydown', 'keycode': 61 })", 'E48:') 998 call assert_fails("sandbox call test_mswin_event('key', {'event': 'keydown', 'keycode': 61 })", 'E48:')
942 999
943 " flush out anything in the typeahead buffer 1000 " flush out the typeahead buffer
944 while getchar(0) 1001 while getchar(0)
945 endwhile 1002 endwhile
946 endfunc 1003 endfunc
947 1004
948 1005