Mercurial > vim
comparison src/testdir/test_netbeans.vim @ 22788:c8a4ad051d23 v8.2.1942
patch 8.2.1942: insufficient test coverage for the Netbeans interface
Commit: https://github.com/vim/vim/commit/dbfa795d8b66c99ee758b132d6043871b9061563
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Nov 2 20:04:22 2020 +0100
patch 8.2.1942: insufficient test coverage for the Netbeans interface
Problem: Insufficient test coverage for the Netbeans interface.
Solution: Add more tests. Fix an uncovered bug. (Yegappan Lakshmanan,
closes #7240)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 02 Nov 2020 20:15:04 +0100 |
parents | 9fba6d987d32 |
children | 670c69ac1bfb |
comparison
equal
deleted
inserted
replaced
22787:7a3efd11b35d | 22788:c8a4ad051d23 |
---|---|
301 let l = ReadXnetbeans() | 301 let l = ReadXnetbeans() |
302 call assert_equal(['send: 2:getText/56', | 302 call assert_equal(['send: 2:getText/56', |
303 \ '56 "foo bar1\nfoo bar2\nfoo bar3\n"'], l[-2:]) | 303 \ '56 "foo bar1\nfoo bar2\nfoo bar3\n"'], l[-2:]) |
304 let g:last += 4 | 304 let g:last += 4 |
305 | 305 |
306 " setDot test | 306 " setDot test with lnum/col |
307 call cursor(1, 1) | |
307 call appendbufline(cmdbufnr, '$', 'setDot_Test') | 308 call appendbufline(cmdbufnr, '$', 'setDot_Test') |
308 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | 309 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') |
309 let l = ReadXnetbeans() | 310 let l = ReadXnetbeans() |
310 call assert_equal('send: 2:setDot!57 3/6', l[-1]) | 311 call assert_equal('send: 2:setDot!57 3/6', l[-1]) |
312 call assert_equal([0, 3, 7, 0], getpos('.')) | |
313 let g:last += 3 | |
314 | |
315 " setDot test with an offset | |
316 call cursor(1, 1) | |
317 call appendbufline(cmdbufnr, '$', 'setDot2_Test') | |
318 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | |
319 let l = ReadXnetbeans() | |
320 call assert_equal('send: 2:setDot!57 9', l[-1]) | |
321 call assert_equal([0, 2, 1, 0], getpos('.')) | |
311 let g:last += 3 | 322 let g:last += 3 |
312 | 323 |
313 " startDocumentListen test | 324 " startDocumentListen test |
314 call appendbufline(cmdbufnr, '$', 'startDocumentListen_Test') | 325 call appendbufline(cmdbufnr, '$', 'startDocumentListen_Test') |
315 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | 326 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') |
325 let l = ReadXnetbeans() | 336 let l = ReadXnetbeans() |
326 call assert_match('2:insert=\d\+ 18 "blue sky"', l[-3]) | 337 call assert_match('2:insert=\d\+ 18 "blue sky"', l[-3]) |
327 call assert_match('2:insert=\d\+ 26 "\\n"', l[-2]) | 338 call assert_match('2:insert=\d\+ 26 "\\n"', l[-2]) |
328 call assert_match('2:remove=\d\+ 0 9', l[-1]) | 339 call assert_match('2:remove=\d\+ 0 9', l[-1]) |
329 let g:last += 3 | 340 let g:last += 3 |
341 | |
342 " Change case using the ~ command with 'whichwrap' containing '~' | |
343 set whichwrap+=~ | |
344 normal 2G$~ | |
345 set whichwrap& | |
346 call WaitFor('len(ReadXnetbeans()) >= (g:last + 2)') | |
347 let l = ReadXnetbeans() | |
348 call assert_match('2:remove=\d\+ 16 1', l[-4]) | |
349 call assert_match('2:insert=\d\+ 16 "Y"', l[-3]) | |
350 call assert_match('2:remove=\d\+ 18 0', l[-2]) | |
351 call assert_match('2:insert=\d\+ 18 ""', l[-1]) | |
352 let g:last += 4 | |
353 | |
354 " Test for replacing spaces with a tab character using 'softtabstop' and | |
355 " 'noexpandtab' | |
356 setlocal softtabstop=4 | |
357 setlocal noexpandtab | |
358 exe "normal I\<Tab>\<Tab>" | |
359 setlocal expandtab& | |
360 setlocal softtabstop& | |
361 call WaitFor('len(ReadXnetbeans()) >= (g:last + 18)') | |
362 let l = ReadXnetbeans() | |
363 call assert_match('2:insert=\d\+ 18 " foo bar3"', l[-3]) | |
364 call assert_match('2:remove=\d\+ 26 8', l[-2]) | |
365 call assert_match('2:insert=\d\+ 26 "\t"', l[-1]) | |
366 let g:last += 18 | |
330 | 367 |
331 " stopDocumentListen test | 368 " stopDocumentListen test |
332 call appendbufline(cmdbufnr, '$', 'stopDocumentListen_Test') | 369 call appendbufline(cmdbufnr, '$', 'stopDocumentListen_Test') |
333 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | 370 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') |
334 let l = ReadXnetbeans() | 371 let l = ReadXnetbeans() |
489 call assert_fails('normal 2GAbaz', 'E463:') | 526 call assert_fails('normal 2GAbaz', 'E463:') |
490 call assert_fails('normal dd', 'E463:') | 527 call assert_fails('normal dd', 'E463:') |
491 call assert_equal([{'name': '1', 'texthl': 'NB_s1', 'text': '=>'}, | 528 call assert_equal([{'name': '1', 'texthl': 'NB_s1', 'text': '=>'}, |
492 \ {'name': '10000', 'linehl': 'NBGuarded'}], | 529 \ {'name': '10000', 'linehl': 'NBGuarded'}], |
493 \ sign_getdefined()) | 530 \ sign_getdefined()) |
494 call assert_equal([{'lnum': 2, 'id': 1000000, 'name': '10000', | 531 let s = sign_getplaced()[0].signs[0] |
495 \ 'priority': 10, 'group': ''}], sign_getplaced()[0].signs) | 532 call assert_equal(2, s.lnum) |
533 call assert_equal('10000', s.name) | |
496 let g:last += 3 | 534 let g:last += 3 |
497 | 535 |
498 " setModified test | 536 " setModified test |
499 call appendbufline(cmdbufnr, '$', 'setModified_Test') | 537 call appendbufline(cmdbufnr, '$', 'setModified_Test') |
500 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | 538 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') |
501 let l = ReadXnetbeans() | 539 let l = ReadXnetbeans() |
502 call assert_equal('send: 3:setModified!77 T', l[-1]) | 540 call assert_equal('send: 3:setModified!77 T', l[-1]) |
541 sleep 1m | |
503 call assert_equal(1, &modified) | 542 call assert_equal(1, &modified) |
543 let g:last += 3 | |
544 | |
545 " clear setModified test | |
546 call appendbufline(cmdbufnr, '$', 'setModifiedClear_Test') | |
547 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | |
548 let l = ReadXnetbeans() | |
549 call assert_equal('send: 3:setModified!77 F', l[-1]) | |
550 sleep 1m | |
551 call assert_equal(0, &modified) | |
504 let g:last += 3 | 552 let g:last += 3 |
505 | 553 |
506 " insertDone test | 554 " insertDone test |
507 let v:statusmsg = '' | 555 let v:statusmsg = '' |
508 call appendbufline(cmdbufnr, '$', 'insertDone_Test') | 556 call appendbufline(cmdbufnr, '$', 'insertDone_Test') |
584 | 632 |
585 " setReadonly test | 633 " setReadonly test |
586 call appendbufline(cmdbufnr, '$', 'setReadOnly_Test') | 634 call appendbufline(cmdbufnr, '$', 'setReadOnly_Test') |
587 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | 635 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') |
588 let l = ReadXnetbeans() | 636 let l = ReadXnetbeans() |
589 call assert_equal('send: 3:setReadOnly!87', l[-1]) | 637 call assert_equal('send: 3:setReadOnly!87 T', l[-1]) |
638 sleep 1m | |
639 call assert_equal(1, &readonly) | |
640 let g:last += 3 | |
641 | |
642 " clear setReadonly test | |
643 call appendbufline(cmdbufnr, '$', 'setReadOnlyClear_Test') | |
644 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | |
645 let l = ReadXnetbeans() | |
646 call assert_equal('send: 3:setReadOnly!88 F', l[-1]) | |
647 sleep 1m | |
648 call assert_equal(0, &readonly) | |
649 let g:last += 3 | |
650 | |
651 " save test | |
652 call setbufvar(bufnr('Xfile4'), '&modified', 1) | |
653 call appendbufline(cmdbufnr, '$', 'save_Test') | |
654 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | |
655 let l = ReadXnetbeans() | |
656 call assert_equal('send: 3:save!89', l[-1]) | |
657 sleep 1m | |
658 call assert_true(filereadable('Xfile4')) | |
590 let g:last += 3 | 659 let g:last += 3 |
591 | 660 |
592 " close test. Don't use buffer 10 after this | 661 " close test. Don't use buffer 10 after this |
593 call appendbufline(cmdbufnr, '$', 'close_Test') | 662 call appendbufline(cmdbufnr, '$', 'close_Test') |
594 call WaitFor('len(ReadXnetbeans()) >= (g:last + 4)') | 663 call WaitFor('len(ReadXnetbeans()) >= (g:last + 4)') |
595 let l = ReadXnetbeans() | 664 let l = ReadXnetbeans() |
596 call assert_equal('send: 3:close!88', l[-2]) | 665 call assert_equal('send: 3:close!90', l[-2]) |
597 call assert_equal('3:killed=88', l[-1]) | 666 call assert_equal('3:killed=90', l[-1]) |
598 call assert_equal(1, winnr('$')) | 667 call assert_equal(1, winnr('$')) |
599 let g:last += 4 | 668 let g:last += 4 |
600 | 669 |
601 " specialKeys test | 670 " specialKeys test |
602 call appendbufline(cmdbufnr, '$', 'specialKeys_Test') | 671 call appendbufline(cmdbufnr, '$', 'specialKeys_Test') |
603 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | 672 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') |
604 let l = ReadXnetbeans() | 673 let l = ReadXnetbeans() |
605 call assert_equal('send: 0:specialKeys!89 "F12 F13"', l[-1]) | 674 call assert_equal('send: 0:specialKeys!91 "F12 F13 C-F13"', l[-1]) |
606 sleep 1m | 675 sleep 1m |
607 call assert_equal(':nbkey F12<CR>', maparg('<F12>', 'n')) | 676 call assert_equal(':nbkey F12<CR>', maparg('<F12>', 'n')) |
608 call assert_equal(':nbkey F13<CR>', maparg('<F13>', 'n')) | 677 call assert_equal(':nbkey F13<CR>', maparg('<F13>', 'n')) |
678 call assert_equal(':nbkey C-F13<CR>', maparg('<C-F13>', 'n')) | |
609 let g:last += 3 | 679 let g:last += 3 |
610 | 680 |
611 " Open a buffer not monitored by netbeans | 681 " Open a buffer not monitored by netbeans |
612 enew | only! | 682 enew | only! |
613 nbkey "\<C-F3>" | 683 nbkey "\<C-F3>" |
624 call assert_fails('1write!', 'E657:') | 694 call assert_fails('1write!', 'E657:') |
625 write | 695 write |
626 call WaitFor('len(ReadXnetbeans()) >= (g:last + 10)') | 696 call WaitFor('len(ReadXnetbeans()) >= (g:last + 10)') |
627 let g:last += 10 | 697 let g:last += 10 |
628 | 698 |
699 if has('mouse') | |
700 " Test for mouse button release | |
701 let save_mouse = &mouse | |
702 set mouse=a | |
703 call feedkeys("\<LeftMouse>\<LeftRelease>", 'xt') | |
704 let &mouse = save_mouse | |
705 call WaitFor('len(ReadXnetbeans()) >= (g:last + 2)') | |
706 let l = ReadXnetbeans() | |
707 call assert_equal('4:newDotAndMark=93 0 0', l[-2]) | |
708 call assert_equal('4:buttonRelease=93 0 1 -1', l[-1]) | |
709 let g:last += 2 | |
710 endif | |
711 | |
712 " Test for startAtomic | |
713 call appendbufline(cmdbufnr, '$', 'startAtomic_Test') | |
714 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | |
715 let l = ReadXnetbeans() | |
716 call assert_equal('send: 0:startAtomic!94', l[-1]) | |
717 let g:last += 3 | |
718 | |
719 " Test for endAtomic | |
720 call appendbufline(cmdbufnr, '$', 'endAtomic_Test') | |
721 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | |
722 let l = ReadXnetbeans() | |
723 call assert_equal('send: 0:endAtomic!95', l[-1]) | |
724 let g:last += 3 | |
725 | |
726 " Test for invoking a netbeans key binding | |
727 let special_keys = [ | |
728 \ ["\<F1>", 'F1'], ["\<S-F1>", 'S-F1'], | |
729 \ ["\<F2>", 'F2'], ["\<S-F2>", 'S-F2'], | |
730 \ ["\<F3>", 'F3'], ["\<S-F3>", 'S-F3'], | |
731 \ ["\<F4>", 'F4'], ["\<S-F4>", 'S-F4'], | |
732 \ ["\<F5>", 'F5'], ["\<S-F5>", 'S-F5'], | |
733 \ ["\<F6>", 'F6'], ["\<S-F6>", 'S-F6'], | |
734 \ ["\<F7>", 'F7'], ["\<S-F7>", 'S-F7'], | |
735 \ ["\<F8>", 'F8'], ["\<S-F8>", 'S-F8'], | |
736 \ ["\<F9>", 'F9'], ["\<S-F9>", 'S-F9'], | |
737 \ ["\<F11>", 'F11'], ["\<S-F11>", 'S-F11'], | |
738 \ ["\<F12>", 'F12'], ["\<S-F12>", 'S-F12'], ['!', '!'] | |
739 \ ] | |
740 for [key, name] in special_keys | |
741 call feedkeys("\<F21>" .. key, 'xt') | |
742 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | |
743 let l = ReadXnetbeans() | |
744 call assert_match('4:keyCommand=\d\+ "' .. name .. '"', l[-2]) | |
745 call assert_match('4:keyAtPos=\d\+ "' .. name .. '" 0 1/0', l[-1]) | |
746 let g:last += 3 | |
747 endfor | |
748 call feedkeys("\<F21>\<C-S-M-F9>", 'xt') | |
749 call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') | |
750 let l = ReadXnetbeans() | |
751 call assert_match('4:keyCommand=\d\+ "CSM-F9"', l[-2]) | |
752 call assert_match('4:keyAtPos=\d\+ "CSM-F9" 0 1/0', l[-1]) | |
753 let g:last += 3 | |
754 | |
755 if has('signs') && has('mouse') | |
756 sign define S1 linehl=Search text==> | |
757 sign define S2 linehl=ErrorMsg text=!! | |
758 sign place 10 line=1 name=S1 | |
759 sign place 20 line=1 name=S2 | |
760 | |
761 let save_mouse = &mouse | |
762 set mouse=a | |
763 call assert_equal('S2', sign_getplaced()[0].signs[0].name) | |
764 call test_setmouse(1, 1) | |
765 call feedkeys("\<LeftMouse>\<LeftRelease>", 'xt') | |
766 call assert_equal('S1', sign_getplaced()[0].signs[0].name) | |
767 call test_setmouse(1, 1) | |
768 call feedkeys("\<LeftMouse>\<LeftRelease>", 'xt') | |
769 call assert_equal('S2', sign_getplaced()[0].signs[0].name) | |
770 let &mouse = save_mouse | |
771 | |
772 sign unplace 10 | |
773 sign unplace 20 | |
774 sign undefine S1 | |
775 sign undefine S2 | |
776 endif | |
777 | |
778 " define a large number of annotations | |
779 call appendbufline(cmdbufnr, '$', 'AnnoScale_Test') | |
780 call WaitFor('len(ReadXnetbeans()) >= (g:last + 26)') | |
781 let l = ReadXnetbeans() | |
782 call assert_equal('2:defineAnnoType!60 25 "s25" "x" "=>" blue none', l[-1]) | |
783 sleep 1m | |
784 call assert_true(len(sign_getdefined()) >= 25) | |
785 let g:last += 26 | |
786 | |
629 " detach | 787 " detach |
630 call appendbufline(cmdbufnr, '$', 'detach_Test') | 788 call appendbufline(cmdbufnr, '$', 'detach_Test') |
631 call WaitFor('len(ReadXnetbeans()) >= (g:last + 8)') | 789 call WaitFor('len(ReadXnetbeans()) >= (g:last + 8)') |
632 call WaitForAssert({-> assert_equal('0:disconnect=93', ReadXnetbeans()[-1])}) | 790 call WaitForAssert({-> assert_equal('0:disconnect=97', ReadXnetbeans()[-1])}) |
633 | 791 |
634 " the connection was closed | 792 " the connection was closed |
635 call assert_false(has("netbeans_enabled")) | 793 call assert_false(has("netbeans_enabled")) |
794 | |
795 " Remove all the signs | |
796 call sign_unplace('*') | |
797 call sign_undefine() | |
636 | 798 |
637 call delete("Xnetbeans") | 799 call delete("Xnetbeans") |
638 call delete('Xfile1') | 800 call delete('Xfile1') |
639 call delete('Xfile3') | 801 call delete('Xfile3') |
802 call delete('Xfile4') | |
640 endfunc | 803 endfunc |
641 | 804 |
642 func Test_nb_basic() | 805 func Test_nb_basic() |
643 call ch_log('Test_nb_basic') | 806 call ch_log('Test_nb_basic') |
644 call s:run_server('Nb_basic') | 807 call s:run_server('Nb_basic') |