aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/screen_basic_spec.lua
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2016-11-25 11:33:57 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2016-11-25 11:37:23 +0100
commit4b95bb582d9ea95455c5fab93ef31ea497957fb3 (patch)
treec715a6bb973e15d679ffd0870068ca721859fd62 /test/functional/ui/screen_basic_spec.lua
parent42736d6a2a1fe97b462b6fcef11a7ae655287975 (diff)
downloadrneovim-4b95bb582d9ea95455c5fab93ef31ea497957fb3.tar.gz
rneovim-4b95bb582d9ea95455c5fab93ef31ea497957fb3.tar.bz2
rneovim-4b95bb582d9ea95455c5fab93ef31ea497957fb3.zip
ui: add tests for ui_mode_change
Also fix snapshot_util() to work even if default_attr_ids is not a proper lua array.
Diffstat (limited to 'test/functional/ui/screen_basic_spec.lua')
-rw-r--r--test/functional/ui/screen_basic_spec.lua67
1 files changed, 67 insertions, 0 deletions
diff --git a/test/functional/ui/screen_basic_spec.lua b/test/functional/ui/screen_basic_spec.lua
index 2b44b92336..593b6dd763 100644
--- a/test/functional/ui/screen_basic_spec.lua
+++ b/test/functional/ui/screen_basic_spec.lua
@@ -3,6 +3,7 @@ local Screen = require('test.functional.ui.screen')
local spawn, set_session, clear = helpers.spawn, helpers.set_session, helpers.clear
local feed, execute = helpers.feed, helpers.execute
local insert = helpers.insert
+local eq = helpers.eq
if helpers.pending_win32(pending) then return end
@@ -576,4 +577,70 @@ describe('Screen', function()
]])
end)
end)
+
+ describe('mode change', function()
+ before_each(function()
+ screen:try_resize(25, 5)
+ end)
+
+ it('works in normal mode', function()
+ screen:expect([[
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]],nil,nil,function ()
+ eq("normal", screen.mode)
+ end)
+ end)
+
+ it('works in insert mode', function()
+ feed('i')
+ screen:expect([[
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {2:-- INSERT --} |
+ ]],nil,nil,function ()
+ eq("insert", screen.mode)
+ end)
+
+ feed('word<esc>')
+ screen:expect([[
+ wor^d |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]], nil, nil, function ()
+ eq("normal", screen.mode)
+ end)
+ end)
+
+ it('works in replace mode', function()
+ feed('R')
+ screen:expect([[
+ ^ |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ {2:-- REPLACE --} |
+ ]], nil, nil, function ()
+ eq("replace", screen.mode)
+ end)
+
+ feed('word<esc>')
+ screen:expect([[
+ wor^d |
+ {0:~ }|
+ {0:~ }|
+ {0:~ }|
+ |
+ ]], nil, nil, function ()
+ eq("normal", screen.mode)
+ end)
+ end)
+ end)
end)