diff options
Diffstat (limited to 'test/functional/legacy/ex_mode_spec.lua')
-rw-r--r-- | test/functional/legacy/ex_mode_spec.lua | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/test/functional/legacy/ex_mode_spec.lua b/test/functional/legacy/ex_mode_spec.lua index 244b6bf00f..98f113bbd0 100644 --- a/test/functional/legacy/ex_mode_spec.lua +++ b/test/functional/legacy/ex_mode_spec.lua @@ -1,4 +1,5 @@ local helpers = require('test.functional.helpers')(after_each) +local Screen = require('test.functional.ui.screen') local clear = helpers.clear local command = helpers.command local eq = helpers.eq @@ -39,4 +40,86 @@ describe('Ex mode', function() test_ex_edit('\tm<C-T>n', '\tm<C-T>n') command('set wildchar&') end) + + it('substitute confirmation prompt', function() + command('set noincsearch nohlsearch inccommand=') + local screen = Screen.new(60, 6) + screen:set_default_attr_ids({ + [0] = {bold = true, reverse = true}, -- MsgSeparator + [1] = {foreground = Screen.colors.Brown}, -- LineNr + [2] = {bold = true, foreground = Screen.colors.Blue}, -- NonText + }) + screen:attach() + command([[call setline(1, ['foo foo', 'foo foo', 'foo foo'])]]) + command([[set number]]) + feed('gQ') + screen:expect([[ + {1: 1 }foo foo | + {1: 2 }foo foo | + {1: 3 }foo foo | + {0: }| + Entering Ex mode. Type "visual" to go to Normal mode. | + :^ | + ]]) + + feed('%s/foo/bar/gc<CR>') + screen:expect([[ + {1: 1 }foo foo | + {0: }| + Entering Ex mode. Type "visual" to go to Normal mode. | + :%s/foo/bar/gc | + {1: 1 }foo foo | + ^^^^ | + ]]) + feed('N<CR>') + screen:expect([[ + Entering Ex mode. Type "visual" to go to Normal mode. | + :%s/foo/bar/gc | + {1: 1 }foo foo | + ^^^N | + {1: 1 }foo foo | + ^^^^ | + ]]) + feed('n<CR>') + screen:expect([[ + {1: 1 }foo foo | + ^^^N | + {1: 1 }foo foo | + ^^^n | + {1: 1 }foo foo | + ^^^^ | + ]]) + feed('y<CR>') + + feed('q<CR>') + screen:expect([[ + {1: 1 }foo foo | + ^^^y | + {1: 2 }foo foo | + ^^^q | + {1: 2 }foo foo | + :^ | + ]]) + + -- Pressing enter in ex mode should print the current line + feed('<CR>') + screen:expect([[ + ^^^y | + {1: 2 }foo foo | + ^^^q | + {1: 2 }foo foo | + {1: 3 }foo foo | + :^ | + ]]) + + feed(':vi<CR>') + screen:expect([[ + {1: 1 }foo bar | + {1: 2 }foo foo | + {1: 3 }^foo foo | + {2:~ }| + {2:~ }| + | + ]]) + end) end) |