xref: /vim-8.2.3635/src/testdir/test_paste.vim (revision 9e817c8a)
1" Tests for bracketed paste.
2
3" Bracketed paste only works with "xterm".  Not in GUI.
4if has('gui_running')
5  finish
6endif
7set term=xterm
8
9func Test_paste_normal_mode()
10  new
11  call setline(1, ['a', 'b', 'c'])
12  2
13  call feedkeys("\<Esc>[200~foo\<CR>bar\<Esc>[201~", 'xt')
14  call assert_equal('bfoo', getline(2))
15  call assert_equal('bar', getline(3))
16  call assert_equal('c', getline(4))
17
18  normal .
19  call assert_equal('barfoo', getline(3))
20  call assert_equal('bar', getline(4))
21  call assert_equal('c', getline(5))
22  bwipe!
23endfunc
24
25func Test_paste_insert_mode()
26  new
27  call setline(1, ['a', 'b', 'c'])
28  2
29  call feedkeys("i\<Esc>[200~foo\<CR>bar\<Esc>[201~ done\<Esc>", 'xt')
30  call assert_equal('foo', getline(2))
31  call assert_equal('bar doneb', getline(3))
32  call assert_equal('c', getline(4))
33
34  normal .
35  call assert_equal('bar donfoo', getline(3))
36  call assert_equal('bar doneeb', getline(4))
37  call assert_equal('c', getline(5))
38
39  set ai et tw=10
40  call setline(1, ['a', '    b', 'c'])
41  2
42  call feedkeys("A\<Esc>[200~foo\<CR> bar bar bar\<Esc>[201~\<Esc>", 'xt')
43  call assert_equal('    bfoo', getline(2))
44  call assert_equal(' bar bar bar', getline(3))
45  call assert_equal('c', getline(4))
46
47  set ai& et& tw=0
48  bwipe!
49endfunc
50
51func Test_paste_cmdline()
52  call feedkeys(":a\<Esc>[200~foo\<CR>bar\<Esc>[201~b\<Home>\"\<CR>", 'xt')
53  call assert_equal("\"afoo\<CR>barb", getreg(':'))
54endfunc
55