diff options
Diffstat (limited to 'test/functional/legacy/display_spec.lua')
-rw-r--r-- | test/functional/legacy/display_spec.lua | 73 |
1 files changed, 66 insertions, 7 deletions
diff --git a/test/functional/legacy/display_spec.lua b/test/functional/legacy/display_spec.lua index f1cd8d1aac..f59eac7674 100644 --- a/test/functional/legacy/display_spec.lua +++ b/test/functional/legacy/display_spec.lua @@ -196,17 +196,17 @@ describe('display', function() end) -- oldtest: Test_display_long_lastline() - it('display "lastline" shows correct text when end of wrapped line is deleted', function() + it('"lastline" shows correct text when end of wrapped line is deleted', function() local screen = Screen.new(35, 14) screen:attach() exec([[ - set display=lastline scrolloff=5 + set display=lastline smoothscroll scrolloff=0 call setline(1, [ - \'aaaaa'->repeat(100), + \'aaaaa'->repeat(500), \'bbbbb '->repeat(7) .. 'ccccc '->repeat(7) .. 'ddddd '->repeat(7) \]) ]]) - feed('482|') + feed('736|') screen:expect([[ <<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| @@ -219,10 +219,11 @@ describe('display', function() aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| - aaaaaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaa| - aaaaaaaaaa | + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| + ^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ]]) + -- The correct part of the last line is moved into view. feed('D') screen:expect([[ <<<aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| @@ -236,9 +237,67 @@ describe('display', function() aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| - aaaaaaaaaaaaaaaaaaaaaaaaa^a | + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^a| bbbbb bbbbb bbbbb bbbbb bbbbb bb@@@| | ]]) + -- "w_skipcol" does not change because the topline is still long enough + -- to maintain the current skipcol. + feed('g04l11gkD') + screen:expect([[ + <<<^a | + bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb| + bbbbb ccccc ccccc ccccc ccccc cccc| + c ccccc ccccc ddddd ddddd ddddd ddd| + dd ddddd ddddd ddddd | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + ~ | + | + ]]) + -- "w_skipcol" is reset to bring the entire topline into view because + -- the line length is now smaller than the current skipcol + marker. + feed('x') + screen:expect([[ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| + aa^a | + bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb| + bbbbb ccccc ccccc ccccc ccccc cccc| + c ccccc ccccc ddddd ddddd ddddd @@@| + | + ]]) + end) + + -- oldtest: Test_display_cursor_long_line() + it("correctly shows line that doesn't fit in the window", function() + local screen = Screen.new(75, 8) + screen:attach() + exec([[ + call setline(1, ['a', 'bbbbb '->repeat(100), 'c']) + norm $j + ]]) + screen:expect([[ + <<<bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb | + bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbb| + bb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb | + bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbb| + bb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb | + bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbb| + bb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb bbbbb^ | + | + ]]) end) end) |