From 8baab3c8d7a6f22888bd581cd5c6098fd2e4b5a8 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 6 May 2024 04:44:24 +0200 Subject: Adding upstream version 2:8.1.0875. Signed-off-by: Daniel Baumann --- src/testdir/test_paste.vim | 112 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 src/testdir/test_paste.vim (limited to 'src/testdir/test_paste.vim') diff --git a/src/testdir/test_paste.vim b/src/testdir/test_paste.vim new file mode 100644 index 0000000..65f300c --- /dev/null +++ b/src/testdir/test_paste.vim @@ -0,0 +1,112 @@ +" Tests for bracketed paste and other forms of pasting. + +" Bracketed paste only works with "xterm". Not in GUI. +if has('gui_running') + finish +endif +set term=xterm + +source shared.vim + +func Test_paste_normal_mode() + new + " In first column text is inserted + call setline(1, ['a', 'b', 'c']) + call cursor(2, 1) + call feedkeys("\[200~foo\bar\[201~", 'xt') + call assert_equal('foo', getline(2)) + call assert_equal('barb', getline(3)) + call assert_equal('c', getline(4)) + + " When repeating text is appended + normal . + call assert_equal('barfoo', getline(3)) + call assert_equal('barb', getline(4)) + call assert_equal('c', getline(5)) + bwipe! + + " In second column text is appended + call setline(1, ['a', 'bbb', 'c']) + call cursor(2, 2) + call feedkeys("\[200~foo\bar\[201~", 'xt') + call assert_equal('bbfoo', getline(2)) + call assert_equal('barb', getline(3)) + call assert_equal('c', getline(4)) + + " In last column text is appended + call setline(1, ['a', 'bbb', 'c']) + call cursor(2, 3) + call feedkeys("\[200~foo\bar\[201~", 'xt') + call assert_equal('bbbfoo', getline(2)) + call assert_equal('bar', getline(3)) + call assert_equal('c', getline(4)) +endfunc + +func Test_paste_insert_mode() + new + call setline(1, ['a', 'b', 'c']) + 2 + call feedkeys("i\[200~foo\bar\[201~ done\", 'xt') + call assert_equal('foo', getline(2)) + call assert_equal('bar doneb', getline(3)) + call assert_equal('c', getline(4)) + + normal . + call assert_equal('bar donfoo', getline(3)) + call assert_equal('bar doneeb', getline(4)) + call assert_equal('c', getline(5)) + + set ai et tw=10 + call setline(1, ['a', ' b', 'c']) + 2 + call feedkeys("A\[200~foo\ bar bar bar\[201~\", 'xt') + call assert_equal(' bfoo', getline(2)) + call assert_equal(' bar bar bar', getline(3)) + call assert_equal('c', getline(4)) + + set ai& et& tw=0 + bwipe! +endfunc + +func Test_paste_clipboard() + if !WorkingClipboard() + return + endif + let @+ = "nasty\:!ls\command" + new + exe "normal i\+\" + call assert_equal("nasty\:!ls\command", getline(1)) + bwipe! +endfunc + +func Test_paste_cmdline() + call feedkeys(":a\[200~foo\bar\[201~b\\"\", 'xt') + call assert_equal("\"afoo\barb", getreg(':')) +endfunc + +func Test_paste_visual_mode() + new + call setline(1, 'here are some words') + call feedkeys("0fsve\[200~more\[201~", 'xt') + call assert_equal('here are more words', getline(1)) + call assert_equal('some', getreg('-')) + + " include last char in the line + call feedkeys("0fwve\[200~noises\[201~", 'xt') + call assert_equal('here are more noises', getline(1)) + call assert_equal('words', getreg('-')) + + " exclude last char in the line + call setline(1, 'some words!') + call feedkeys("0fwve\[200~noises\[201~", 'xt') + call assert_equal('some noises!', getline(1)) + call assert_equal('words', getreg('-')) + + " multi-line selection + call setline(1, ['some words', 'and more']) + call feedkeys("0fwvj0fd\[200~letters\[201~", 'xt') + call assert_equal('some letters more', getline(1)) + call assert_equal("words\nand", getreg('1')) + + bwipe! +endfunc -- cgit v1.2.3