diff options
Diffstat (limited to 'test/functional/terminal/mouse_spec.lua')
-rw-r--r-- | test/functional/terminal/mouse_spec.lua | 139 |
1 files changed, 64 insertions, 75 deletions
diff --git a/test/functional/terminal/mouse_spec.lua b/test/functional/terminal/mouse_spec.lua index a86615184d..263a5ce79d 100644 --- a/test/functional/terminal/mouse_spec.lua +++ b/test/functional/terminal/mouse_spec.lua @@ -1,6 +1,6 @@ local helpers = require('test.functional.helpers')(after_each) local thelpers = require('test.functional.terminal.helpers') -local clear = helpers.clear +local clear, eq, eval = helpers.clear, helpers.eq, helpers.eval local feed, nvim = helpers.feed, helpers.nvim local feed_data = thelpers.feed_data @@ -27,7 +27,7 @@ describe('terminal mouse', function() line29 | line30 | {1: } | - -- TERMINAL -- | + {3:-- TERMINAL --} | ]]) end) @@ -36,31 +36,17 @@ describe('terminal mouse', function() end) describe('when the terminal has focus', function() - it('will exit focus when scrolled', function() - feed('<MouseDown><0,0>') - screen:expect([[ - line23 | - line24 | - line25 | - line26 | - line27 | - ^line28 | - | - ]]) + it('will exit focus on mouse-scroll', function() + eq('t', eval('mode()')) + feed('<ScrollWheelUp><0,0>') + eq('n', eval('mode()')) end) - it('will exit focus after <C-\\>, then scrolled', function() + it('will exit focus on <C-\\> + mouse-scroll', function() + eq('t', eval('mode()')) feed('<C-\\>') - feed('<MouseDown><0,0>') - screen:expect([[ - line23 | - line24 | - line25 | - line26 | - line27 | - ^line28 | - | - ]]) + feed('<ScrollWheelUp><0,0>') + eq('n', eval('mode()')) end) describe('with mouse events enabled by the program', function() @@ -74,11 +60,12 @@ describe('terminal mouse', function() line30 | mouse enabled | {1: } | - -- TERMINAL -- | + {3:-- TERMINAL --} | ]]) end) it('will forward mouse clicks to the program', function() + if helpers.pending_win32(pending) then return end feed('<LeftMouse><1,2>') screen:expect([[ line27 | @@ -87,12 +74,13 @@ describe('terminal mouse', function() line30 | mouse enabled | "#{1: } | - -- TERMINAL -- | + {3:-- TERMINAL --} | ]]) end) it('will forward mouse scroll to the program', function() - feed('<MouseDown><0,0>') + if helpers.pending_win32(pending) then return end + feed('<ScrollWheelUp><0,0>') screen:expect([[ line27 | line28 | @@ -100,98 +88,99 @@ describe('terminal mouse', function() line30 | mouse enabled | `!!{1: } | - -- TERMINAL -- | + {3:-- TERMINAL --} | ]]) end) end) describe('with a split window and other buffer', function() + if helpers.pending_win32(pending) then return end before_each(function() feed('<c-\\><c-n>:vsp<cr>') screen:expect([[ - line28 |line28 | - line29 |line29 | - line30 |line30 | - rows: 5, cols: 25 |rows: 5, cols: 25 | - {2:^ } |{2: } | + line28 │line28 | + line29 │line29 | + line30 │line30 | + rows: 5, cols: 25 │rows: 5, cols: 25 | + {2:^ } │{2: } | ========== ========== | - | + :vsp | ]]) feed(':enew | set number<cr>') screen:expect([[ - 1 ^ |line28 | - ~ |line29 | - ~ |line30 | - ~ |rows: 5, cols: 25 | - ~ |{2: } | + {7: 1 }^ │line28 | + {4:~ }│line29 | + {4:~ }│line30 | + {4:~ }│rows: 5, cols: 25 | + {4:~ }│{2: } | ========== ========== | :enew | set number | ]]) feed('30iline\n<esc>') screen:expect([[ - 27 line |line28 | - 28 line |line29 | - 29 line |line30 | - 30 line |rows: 5, cols: 25 | - 31 ^ |{2: } | + {7: 27 }line │line28 | + {7: 28 }line │line29 | + {7: 29 }line │line30 | + {7: 30 }line │rows: 5, cols: 25 | + {7: 31 }^ │{2: } | ========== ========== | | ]]) feed('<c-w>li') screen:expect([[ - 27 line |line29 | - 28 line |line30 | - 29 line |rows: 5, cols: 25 | - 30 line |rows: 5, cols: 24 | - 31 |{1: } | + {7: 27 }line │line28 | + {7: 28 }line │line29 | + {7: 29 }line │line30 | + {7: 30 }line │rows: 5, cols: 25 | + {7: 31 } │{1: } | ========== ========== | - -- TERMINAL -- | + {3:-- TERMINAL --} | ]]) -- enabling mouse won't affect interaction with other windows thelpers.enable_mouse() thelpers.feed_data('mouse enabled\n') screen:expect([[ - 27 line |line30 | - 28 line |rows: 5, cols: 25 | - 29 line |rows: 5, cols: 24 | - 30 line |mouse enabled | - 31 |{1: } | + {7: 27 }line │line29 | + {7: 28 }line │line30 | + {7: 29 }line │rows: 5, cols: 25 | + {7: 30 }line │mouse enabled | + {7: 31 } │{1: } | ========== ========== | - -- TERMINAL -- | + {3:-- TERMINAL --} | ]]) end) it('wont lose focus if another window is scrolled', function() - feed('<MouseDown><0,0><MouseDown><0,0>') + feed('<ScrollWheelUp><0,0><ScrollWheelUp><0,0>') screen:expect([[ - 21 line |line30 | - 22 line |rows: 5, cols: 25 | - 23 line |rows: 5, cols: 24 | - 24 line |mouse enabled | - 25 line |{1: } | + {7: 21 }line │line29 | + {7: 22 }line │line30 | + {7: 23 }line │rows: 5, cols: 25 | + {7: 24 }line │mouse enabled | + {7: 25 }line │{1: } | ========== ========== | - -- TERMINAL -- | + {3:-- TERMINAL --} | ]]) - feed('<S-MouseUp><0,0>') + feed('<S-ScrollWheelDown><0,0>') screen:expect([[ - 26 line |line30 | - 27 line |rows: 5, cols: 25 | - 28 line |rows: 5, cols: 24 | - 29 line |mouse enabled | - 30 line |{1: } | + {7: 26 }line │line29 | + {7: 27 }line │line30 | + {7: 28 }line │rows: 5, cols: 25 | + {7: 29 }line │mouse enabled | + {7: 30 }line │{1: } | ========== ========== | - -- TERMINAL -- | + {3:-- TERMINAL --} | ]]) end) it('will lose focus if another window is clicked', function() feed('<LeftMouse><5,1>') screen:expect([[ - 27 line |line30 | - 28 l^ine |rows: 5, cols: 25 | - 29 line |rows: 5, cols: 24 | - 30 line |mouse enabled | - 31 |{2: } | + {7: 27 }line │line29 | + {7: 28 }l^ine │line30 | + {7: 29 }line │rows: 5, cols: 25 | + {7: 30 }line │mouse enabled | + {7: 31 } │{2: } | ========== ========== | | ]]) |