# HG changeset patch # User Bram Moolenaar # Date 1621696505 -7200 # Node ID cac5f0bf737625723742d8b832b13a57c2b2f174 # Parent 256fdb5f72520659e0142e3f80ff80df426361ab patch 8.2.2877: insufficient tests for popup menu rightleft Commit: https://github.com/vim/vim/commit/1e615669c0f1f4125001b2c01c30b00d8c68035e Author: Yegappan Lakshmanan Date: Sat May 22 17:12:46 2021 +0200 patch 8.2.2877: insufficient tests for popup menu rightleft Problem: Insufficient tests for popup menu rightleft. Solution: Add tests. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/8235) diff --git a/src/testdir/dumps/Test_pum_rightleft_01.dump b/src/testdir/dumps/Test_pum_rightleft_01.dump new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_pum_rightleft_01.dump @@ -0,0 +1,8 @@ +|w+0&#ffffff0|v|u|t|s|r|q|p|o|n|m|l|k|j|i|h|g|f|e|d|c|b|a|z|y|x|w|v|u|t|s|r|q|p|o|n|m|l|k|j|i|h|g|f|e|d|c|b|a|z|y|x|w|v|u|t|s|r|q|p|o|n|m|l|k|j|i|h|g|f|e|d|c|b|a +| @45|z|y|x|w|v|u|t|s|r|q|p|o|n|m|l|k|j|i|h|g|f|e|d|c|b|a|z|y|x +| @71|m|i|v +| @67|y|r|o|t|c|i|v +| @66> |y|r|o|t|c|i|v +|w+0#0000001#ffd7ff255|v|u|t|s|r|q|p|o|n|m|l|k|j|i|h|g|f|e|d|c|b|a|z|y|x|w|v|u|t|s|r|q|p|o|n|m|l|k|j|i|h|g|f|e|d|c|b|a|z|y|x|w|v|u|t|s|r|q|p|o|n|m|l|k|j|i|h|g|f|e|d|c|b|a +| @71|m|i|v +| +0&#e0e0e08@67|y|r|o|t|c|i|v diff --git a/src/testdir/dumps/Test_pum_rightleft_02.dump b/src/testdir/dumps/Test_pum_rightleft_02.dump new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_pum_rightleft_02.dump @@ -0,0 +1,7 @@ +| +0&#ffffff0@63|o|w|t| @4|e|n|o +| @61|e@1|r|h|t| @4|e|n|o +| @70|r|u|o|f +| @60> |e@1|r|h|t| @4|e|n|o +| +0#4040ff13&@59| +0#0000001#ffd7ff255@6|o|w|t| @1|e|n|o +| +0#4040ff13#ffffff0@59| +0#0000001#e0e0e08@4|e@1|r|h|t| @1|e|n|o +| +0#4040ff13#ffffff0@73|~ diff --git a/src/testdir/dumps/Test_pum_scrollbar_01.dump b/src/testdir/dumps/Test_pum_scrollbar_01.dump new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_pum_scrollbar_01.dump @@ -0,0 +1,7 @@ +|o+0&#ffffff0|n|e| @71 +|t|w|o| @71 +|t|h|r|e@1| @69 +|o|n|e> @71 +|o+0#0000001#e0e0e08|n|e| @11| +0#0000000#0000001| +0#4040ff13#ffffff0@58 +|t+0#0000001#ffd7ff255|w|o| @11| +0#0000000#a8a8a8255| +0#4040ff13#ffffff0@58 +|~| @73 diff --git a/src/testdir/dumps/Test_pum_scrollbar_02.dump b/src/testdir/dumps/Test_pum_scrollbar_02.dump new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_pum_scrollbar_02.dump @@ -0,0 +1,7 @@ +| +0&#ffffff0@71|e|n|o +| @71|o|w|t +| @69|e@1|r|h|t +| @70> |e|n|o +| +0#4040ff13&@58| +0#0000000#0000001| +0#0000001#e0e0e08@11|e|n|o +| +0#4040ff13#ffffff0@58| +0#0000000#a8a8a8255| +0#0000001#ffd7ff255@11|o|w|t +| +0#4040ff13#ffffff0@73|~ diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim --- a/src/testdir/test_popup.vim +++ b/src/testdir/test_popup.vim @@ -1145,4 +1145,73 @@ func Test_pum_getpos() unlet g:pum_pos endfunc +" Test for the popup menu with the 'rightleft' option set +func Test_pum_rightleft() + CheckScreendump + let lines =<< trim END + abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz + vim + victory + END + call writefile(lines, 'Xtest1') + let buf = RunVimInTerminal('--cmd "set rightleft" Xtest1', {}) + call term_wait(buf) + call term_sendkeys(buf, "Go\") + call term_wait(buf) + call VerifyScreenDump(buf, 'Test_pum_rightleft_01', {'rows': 8}) + call term_sendkeys(buf, "\\") + call term_wait(buf) + redraw! + call assert_match('\s*miv', Screenline(5)) + + " Test for expanding tabs to spaces in the popup menu + let lines =<< trim END + one two + one three + four + END + call writefile(lines, 'Xtest2') + call term_sendkeys(buf, "\:e! Xtest2\") + call term_wait(buf) + call term_sendkeys(buf, "Goone\\") + call term_wait(buf) + redraw! + call VerifyScreenDump(buf, 'Test_pum_rightleft_02', {'rows': 7}) + call term_sendkeys(buf, "\") + call term_wait(buf) + redraw! + call assert_match('\s*eerht eno', Screenline(4)) + + call StopVimInTerminal(buf) + call delete('Xtest1') + call delete('Xtest2') +endfunc + +" Test for a popup menu with a scrollbar +func Test_pum_scrollbar() + CheckScreendump + let lines =<< trim END + one + two + three + END + call writefile(lines, 'Xtest1') + let buf = RunVimInTerminal('--cmd "set pumheight=2" Xtest1', {}) + call term_wait(buf) + call term_sendkeys(buf, "Go\\\") + call term_wait(buf) + call VerifyScreenDump(buf, 'Test_pum_scrollbar_01', {'rows': 7}) + call term_sendkeys(buf, "\\dd") + call term_wait(buf) + + call term_sendkeys(buf, ":set rightleft\") + call term_wait(buf) + call term_sendkeys(buf, "Go\\\") + call term_wait(buf) + call VerifyScreenDump(buf, 'Test_pum_scrollbar_02', {'rows': 7}) + + call StopVimInTerminal(buf) + call delete('Xtest1') +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2877, +/**/ 2876, /**/ 2875,