diff options
| author | b-r-o-c-k <brockmammen@gmail.com> | 2018-04-14 14:17:51 -0500 | 
|---|---|---|
| committer | b-r-o-c-k <brockmammen@gmail.com> | 2018-04-14 14:17:51 -0500 | 
| commit | ad999eaa775d7d4b0cacedb30c6ea3a0ee699a6f (patch) | |
| tree | 92de2079e80f5f289dd87a54af123cb7d90c3058 /test/functional/ui/input_spec.lua | |
| parent | 78bc52ea5397c092d01cd08296fe1dc85d998329 (diff) | |
| parent | ef4feab0e75be19c5f41d70a001db980b72090f5 (diff) | |
| download | rneovim-ad999eaa775d7d4b0cacedb30c6ea3a0ee699a6f.tar.gz rneovim-ad999eaa775d7d4b0cacedb30c6ea3a0ee699a6f.tar.bz2 rneovim-ad999eaa775d7d4b0cacedb30c6ea3a0ee699a6f.zip  | |
Merge branch 'master' into s-dash-stdin
Diffstat (limited to 'test/functional/ui/input_spec.lua')
| -rw-r--r-- | test/functional/ui/input_spec.lua | 102 | 
1 files changed, 98 insertions, 4 deletions
diff --git a/test/functional/ui/input_spec.lua b/test/functional/ui/input_spec.lua index 29d974b709..3dd9a2506e 100644 --- a/test/functional/ui/input_spec.lua +++ b/test/functional/ui/input_spec.lua @@ -1,11 +1,11 @@  local helpers = require('test.functional.helpers')(after_each)  local clear, feed_command, nvim = helpers.clear, helpers.feed_command, helpers.nvim -local feed, next_message, eq = helpers.feed, helpers.next_message, helpers.eq +local feed, next_msg, eq = helpers.feed, helpers.next_msg, helpers.eq +local command = helpers.command  local expect = helpers.expect +local write_file = helpers.write_file  local Screen = require('test.functional.ui.screen') -if helpers.pending_win32(pending) then return end -  describe('mappings', function()    local cid @@ -17,7 +17,7 @@ describe('mappings', function()    local check_mapping = function(mapping, expected)      feed(mapping) -    eq({'notification', 'mapped', {expected}}, next_message()) +    eq({'notification', 'mapped', {expected}}, next_msg())    end    before_each(function() @@ -126,3 +126,97 @@ describe('input utf sequences that contain CSI/K_SPECIAL', function()      expect('…')    end)  end) + +describe('input non-printable chars', function() +  after_each(function() +    os.remove('Xtest-overwrite') +  end) + +  it("doesn't crash when echoing them back", function() +    write_file("Xtest-overwrite", [[foobar]]) +    clear() +    local screen = Screen.new(60,8) +    screen:set_default_attr_ids({ +      [1] = {bold = true, foreground = Screen.colors.Blue1}, +      [2] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red}, +      [3] = {bold = true, foreground = Screen.colors.SeaGreen4} +    }) +    screen:attach() +    command("set display-=msgsep") + +    feed_command("e Xtest-overwrite") +    screen:expect([[ +      ^foobar                                                      | +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      "Xtest-overwrite" [noeol] 1L, 6C                            | +    ]]) + +    -- The timestamp is in second resolution, wait two seconds to be sure. +    screen:sleep(2000) +    write_file("Xtest-overwrite", [[smurf]]) +    feed_command("w") +    screen:expect([[ +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      "Xtest-overwrite"                                           | +      {2:WARNING: The file has been changed since reading it!!!}      | +      {3:Do you really want to write to it (y/n)?}^                    | +    ]]) + +    feed("u") +    screen:expect([[ +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      "Xtest-overwrite"                                           | +      {2:WARNING: The file has been changed since reading it!!!}      | +      {3:Do you really want to write to it (y/n)?}u                   | +      {3:Do you really want to write to it (y/n)?}^                    | +    ]]) + +    feed("\005") +    screen:expect([[ +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      "Xtest-overwrite"                                           | +      {2:WARNING: The file has been changed since reading it!!!}      | +      {3:Do you really want to write to it (y/n)?}u                   | +      {3:Do you really want to write to it (y/n)?}                    | +      {3:Do you really want to write to it (y/n)?}^                    | +    ]]) + +    feed("n") +    screen:expect([[ +      {1:~                                                           }| +      {1:~                                                           }| +      "Xtest-overwrite"                                           | +      {2:WARNING: The file has been changed since reading it!!!}      | +      {3:Do you really want to write to it (y/n)?}u                   | +      {3:Do you really want to write to it (y/n)?}                    | +      {3:Do you really want to write to it (y/n)?}n                   | +      {3:Press ENTER or type command to continue}^                     | +    ]]) + +    feed("<cr>") +    screen:expect([[ +      ^foobar                                                      | +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +      {1:~                                                           }| +                                                                  | +    ]]) +  end) +end)  | 
