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')