diff options
Diffstat (limited to 'test/functional/ui/multigrid_spec.lua')
-rw-r--r-- | test/functional/ui/multigrid_spec.lua | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/test/functional/ui/multigrid_spec.lua b/test/functional/ui/multigrid_spec.lua index d643a77be7..2e66068037 100644 --- a/test/functional/ui/multigrid_spec.lua +++ b/test/functional/ui/multigrid_spec.lua @@ -3631,6 +3631,221 @@ describe('ext_multigrid', function() }} end) + it('scroll_delta is approximated reasonably when scrolling many lines #24234', function() + command('setlocal number nowrap') + command('edit test/functional/fixtures/bigfile.txt') + screen:expect{grid=[[ + ## grid 1 + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + {11:test/functional/fixtures/bigfile.txt }| + [3:-----------------------------------------------------]| + ## grid 2 + {19: 1 }^0000;<control>;Cc;0;BN;;;;;N;NULL;;;; | + {19: 2 }0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;| + {19: 3 }0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;; | + {19: 4 }0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;; | + {19: 5 }0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSIO| + {19: 6 }0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;; | + {19: 7 }0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; | + {19: 8 }0007;<control>;Cc;0;BN;;;;;N;BELL;;;; | + {19: 9 }0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;; | + {19: 10 }0009;<control>;Cc;0;S;;;;;N;CHARACTER TABULATIO| + {19: 11 }000A;<control>;Cc;0;B;;;;;N;LINE FEED (LF);;;; | + {19: 12 }000B;<control>;Cc;0;S;;;;;N;LINE TABULATION;;;;| + ## grid 3 + | + ]], win_viewport={ + [2] = {win = {id = 1000}, topline = 0, botline = 13, curline = 0, curcol = 0, linecount = 30592, sum_scroll_delta = 0}; + }} + feed('G') + screen:expect{grid=[[ + ## grid 1 + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + {11:test/functional/fixtures/bigfile.txt }| + [3:-----------------------------------------------------]| + ## grid 2 + {19:30581 }E01E8;VARIATION SELECTOR-249;Mn;0;NSM;;;;;N;;;;| + {19:30582 }E01E9;VARIATION SELECTOR-250;Mn;0;NSM;;;;;N;;;;| + {19:30583 }E01EA;VARIATION SELECTOR-251;Mn;0;NSM;;;;;N;;;;| + {19:30584 }E01EB;VARIATION SELECTOR-252;Mn;0;NSM;;;;;N;;;;| + {19:30585 }E01EC;VARIATION SELECTOR-253;Mn;0;NSM;;;;;N;;;;| + {19:30586 }E01ED;VARIATION SELECTOR-254;Mn;0;NSM;;;;;N;;;;| + {19:30587 }E01EE;VARIATION SELECTOR-255;Mn;0;NSM;;;;;N;;;;| + {19:30588 }E01EF;VARIATION SELECTOR-256;Mn;0;NSM;;;;;N;;;;| + {19:30589 }F0000;<Plane 15 Private Use, First>;Co;0;L;;;;;| + {19:30590 }FFFFD;<Plane 15 Private Use, Last>;Co;0;L;;;;;N| + {19:30591 }100000;<Plane 16 Private Use, First>;Co;0;L;;;;| + {19:30592 }^10FFFD;<Plane 16 Private Use, Last>;Co;0;L;;;;;| + ## grid 3 + | + ]], win_viewport={ + [2] = {win = {id = 1000}, topline = 30580, botline = 30592, curline = 30591, curcol = 0, linecount = 30592, sum_scroll_delta = 30580}; + }} + feed('gg') + screen:expect{grid=[[ + ## grid 1 + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + {11:test/functional/fixtures/bigfile.txt }| + [3:-----------------------------------------------------]| + ## grid 2 + {19: 1 }^0000;<control>;Cc;0;BN;;;;;N;NULL;;;; | + {19: 2 }0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;| + {19: 3 }0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;; | + {19: 4 }0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;; | + {19: 5 }0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSIO| + {19: 6 }0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;; | + {19: 7 }0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; | + {19: 8 }0007;<control>;Cc;0;BN;;;;;N;BELL;;;; | + {19: 9 }0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;; | + {19: 10 }0009;<control>;Cc;0;S;;;;;N;CHARACTER TABULATIO| + {19: 11 }000A;<control>;Cc;0;B;;;;;N;LINE FEED (LF);;;; | + {19: 12 }000B;<control>;Cc;0;S;;;;;N;LINE TABULATION;;;;| + ## grid 3 + | + ]], win_viewport={ + [2] = {win = {id = 1000}, topline = 0, botline = 13, curline = 0, curcol = 0, linecount = 30592, sum_scroll_delta = 0}; + }} + command('setlocal wrap') + screen:expect{grid=[[ + ## grid 1 + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + {11:test/functional/fixtures/bigfile.txt }| + [3:-----------------------------------------------------]| + ## grid 2 + {19: 1 }^0000;<control>;Cc;0;BN;;;;;N;NULL;;;; | + {19: 2 }0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;| + {19: };; | + {19: 3 }0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;; | + {19: 4 }0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;; | + {19: 5 }0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSIO| + {19: }N;;;; | + {19: 6 }0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;; | + {19: 7 }0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; | + {19: 8 }0007;<control>;Cc;0;BN;;;;;N;BELL;;;; | + {19: 9 }0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;; | + {19: 10 }0009;<control>;Cc;0;S;;;;;N;CHARACTER TABULA{1:@@@}| + ## grid 3 + | + ]], win_viewport={ + [2] = {win = {id = 1000}, topline = 0, botline = 10, curline = 0, curcol = 0, linecount = 30592, sum_scroll_delta = 0}; + }} + feed('G') + screen:expect{grid=[[ + ## grid 1 + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + {11:test/functional/fixtures/bigfile.txt }| + [3:-----------------------------------------------------]| + ## grid 2 + {19:30587 }E01EE;VARIATION SELECTOR-255;Mn;0;NSM;;;;;N;;;;| + {19: }; | + {19:30588 }E01EF;VARIATION SELECTOR-256;Mn;0;NSM;;;;;N;;;;| + {19: }; | + {19:30589 }F0000;<Plane 15 Private Use, First>;Co;0;L;;;;;| + {19: }N;;;;; | + {19:30590 }FFFFD;<Plane 15 Private Use, Last>;Co;0;L;;;;;N| + {19: };;;;; | + {19:30591 }100000;<Plane 16 Private Use, First>;Co;0;L;;;;| + {19: };N;;;;; | + {19:30592 }^10FFFD;<Plane 16 Private Use, Last>;Co;0;L;;;;;| + {19: }N;;;;; | + ## grid 3 + | + ]], win_viewport={ + [2] = {win = {id = 1000}, topline = 30586, botline = 30592, curline = 30591, curcol = 0, linecount = 30592, sum_scroll_delta = 30588}; + }} + command('autocmd CursorMoved * ++once call line("w$")') -- FIXME: this should not be needed + feed('gg') + screen:expect{grid=[[ + ## grid 1 + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + [2:-----------------------------------------------------]| + {11:test/functional/fixtures/bigfile.txt }| + [3:-----------------------------------------------------]| + ## grid 2 + {19: 1 }^0000;<control>;Cc;0;BN;;;;;N;NULL;;;; | + {19: 2 }0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;| + {19: };; | + {19: 3 }0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;; | + {19: 4 }0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;; | + {19: 5 }0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSIO| + {19: }N;;;; | + {19: 6 }0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;; | + {19: 7 }0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; | + {19: 8 }0007;<control>;Cc;0;BN;;;;;N;BELL;;;; | + {19: 9 }0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;; | + {19: 10 }0009;<control>;Cc;0;S;;;;;N;CHARACTER TABULA{1:@@@}| + ## grid 3 + | + ]], win_viewport={ + [2] = {win = {id = 1000}, topline = 0, botline = 10, curline = 0, curcol = 0, linecount = 30592, sum_scroll_delta = 0}; + }} + end) + it('does not crash when dragging mouse across grid boundary', function() screen:try_resize(48, 8) screen:expect{grid=[[ |