diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2022-09-22 11:17:41 +0800 |
|---|---|---|
| committer | zeertzjq <zeertzjq@outlook.com> | 2022-09-22 12:40:26 +0800 |
| commit | 88099c11223398b2e7eb96eaa9385d24046db994 (patch) | |
| tree | c678c51f11158ed47d24817f1b1b6dbfabcf2aa1 /src/nvim/testdir/test_paste.vim | |
| parent | dd2b7586f36ab10232d9024ddf2dfb436518269e (diff) | |
| download | rneovim-88099c11223398b2e7eb96eaa9385d24046db994.tar.gz rneovim-88099c11223398b2e7eb96eaa9385d24046db994.tar.bz2 rneovim-88099c11223398b2e7eb96eaa9385d24046db994.zip | |
vim-patch:8.2.2994: various code is not fully tested
Problem: Various code is not fully tested.
Solution: Add a few more tests. (Yegappan Lakshmanan, closes vim/vim#8378)
https://github.com/vim/vim/commit/2d6d718dde7163c971d37b8f4f1ed8f2d25de130
Nvim does not support encoding=latin1 or compatible mode.
The two paste tests are applicable.
Diffstat (limited to 'src/nvim/testdir/test_paste.vim')
| -rw-r--r-- | src/nvim/testdir/test_paste.vim | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_paste.vim b/src/nvim/testdir/test_paste.vim new file mode 100644 index 0000000000..dad3c2c6a0 --- /dev/null +++ b/src/nvim/testdir/test_paste.vim @@ -0,0 +1,76 @@ + +" Test for 'pastetoggle' +func Test_pastetoggle() + new + set pastetoggle=<F4> + set nopaste + call feedkeys("iHello\<F4>", 'xt') + call assert_true(&paste) + call feedkeys("i\<F4>", 'xt') + call assert_false(&paste) + call assert_equal('Hello', getline(1)) + " command-line completion for 'pastetoggle' value + call feedkeys(":set pastetoggle=\<Tab>\<C-B>\"\<CR>", 'xt') + call assert_equal('"set pastetoggle=<F4>', @:) + set pastetoggle& + bwipe! +endfunc + +" Test for restoring option values when 'paste' is disabled +func Test_paste_opt_restore() + set autoindent expandtab ruler showmatch + if has('rightleft') + set revins hkmap + endif + set smarttab softtabstop=3 textwidth=27 wrapmargin=12 + if has('vartabs') + set varsofttabstop=10,20 + endif + + " enabling 'paste' should reset the above options + set paste + call assert_false(&autoindent) + call assert_false(&expandtab) + if has('rightleft') + call assert_false(&revins) + call assert_false(&hkmap) + endif + call assert_false(&ruler) + call assert_false(&showmatch) + call assert_false(&smarttab) + call assert_equal(0, &softtabstop) + call assert_equal(0, &textwidth) + call assert_equal(0, &wrapmargin) + if has('vartabs') + call assert_equal('', &varsofttabstop) + endif + + " disabling 'paste' should restore the option values + set nopaste + call assert_true(&autoindent) + call assert_true(&expandtab) + if has('rightleft') + call assert_true(&revins) + call assert_true(&hkmap) + endif + call assert_true(&ruler) + call assert_true(&showmatch) + call assert_true(&smarttab) + call assert_equal(3, &softtabstop) + call assert_equal(27, &textwidth) + call assert_equal(12, &wrapmargin) + if has('vartabs') + call assert_equal('10,20', &varsofttabstop) + endif + + set autoindent& expandtab& ruler& showmatch& + if has('rightleft') + set revins& hkmap& + endif + set smarttab& softtabstop& textwidth& wrapmargin& + if has('vartabs') + set varsofttabstop& + endif +endfunc + +" vim: shiftwidth=2 sts=2 expandtab |