summaryrefslogtreecommitdiff
path: root/uvim/src/testdir/test_paste.vim
diff options
context:
space:
mode:
authorMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-03 22:21:25 +0300
committerMehmet Samet Duman <yongdohyun@projecttick.org>2026-04-04 00:23:03 +0300
commit2eae5db069dc171f74cd863487655f6a88e5384d (patch)
tree2d9d05e09978a2a44acbfbb8d651f240df3ca052 /uvim/src/testdir/test_paste.vim
parent473d922faed49241a5d29d9e37dc4819cd512006 (diff)
downloadProject-Tick-2eae5db069dc171f74cd863487655f6a88e5384d.tar.gz
Project-Tick-2eae5db069dc171f74cd863487655f6a88e5384d.zip
NOISSUE rebrand vim to MNV's not Vim
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'uvim/src/testdir/test_paste.vim')
-rw-r--r--uvim/src/testdir/test_paste.vim334
1 files changed, 0 insertions, 334 deletions
diff --git a/uvim/src/testdir/test_paste.vim b/uvim/src/testdir/test_paste.vim
deleted file mode 100644
index bd87e3be7e..0000000000
--- a/uvim/src/testdir/test_paste.vim
+++ /dev/null
@@ -1,334 +0,0 @@
-" Tests for bracketed paste and other forms of pasting.
-
-" Bracketed paste only works with "xterm". Not in GUI or Windows console.
-CheckNotMSWindows
-CheckNotGui
-
-set term=xterm
-
-func Test_paste_normal_mode()
- new
- " In first column text is inserted
- call setline(1, ['a', 'b', 'c'])
- call cursor(2, 1)
- call feedkeys("\<Esc>[200~foo\<CR>bar\<Esc>[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("\<Esc>[200~foo\<CR>bar\<Esc>[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("\<Esc>[200~foo\<CR>bar\<Esc>[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\<Esc>[200~foo\<CR>bar\<Esc>[201~ done\<Esc>", '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\<Esc>[200~foo\<CR> bar bar bar\<Esc>[201~\<Esc>", '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()
- CheckFeature clipboard_working
-
- let @+ = "nasty\<Esc>:!ls\<CR>command"
- new
- exe "normal i\<C-R>+\<Esc>"
- call assert_equal("nasty\<Esc>:!ls\<CR>command", getline(1))
- bwipe!
-endfunc
-
-" bracketed paste in command line
-func Test_paste_cmdline()
- call feedkeys(":a\<Esc>[200~foo\<CR>bar\<Esc>[201~b\<Home>\"\<CR>", 'xt')
- call assert_equal("\"afoo\<CR>barb", getreg(':'))
-endfunc
-
-" bracketed paste in Ex-mode
-func Test_paste_ex_mode()
- unlet! foo
- call feedkeys("Qlet foo=\"\<Esc>[200~foo\<CR>bar\<Esc>[201~\"\<CR>vi\<CR>", 'xt')
- call assert_equal("foo\rbar", foo)
-
- " pasting more than 40 bytes
- exe "norm Q\<PasteStart>s/.*/0000000000000000000000000000000000000000000000000000000000000000/\<C-C>"
-endfunc
-
-func Test_paste_onechar()
- new
- let @f='abc'
- call feedkeys("i\<C-R>\<Esc>[200~foo\<CR>bar\<Esc>[201~", 'xt')
- call assert_equal("abc", getline(1))
- close!
-endfunc
-
-func Test_paste_visual_mode()
- new
- call setline(1, 'here are some words')
- call feedkeys("0fsve\<Esc>[200~more\<Esc>[201~", 'xt')
- call assert_equal('here are more words', getline(1))
- call assert_equal('some', getreg('-'))
- normal! u
- call assert_equal('here are some words', getline(1))
- exe "normal! \<C-R>"
- call assert_equal('here are more words', getline(1))
-
- " include last char in the line
- call feedkeys("0fwve\<Esc>[200~noises\<Esc>[201~", 'xt')
- call assert_equal('here are more noises', getline(1))
- call assert_equal('words', getreg('-'))
- normal! u
- call assert_equal('here are more words', getline(1))
- exe "normal! \<C-R>"
- call assert_equal('here are more noises', getline(1))
-
- " exclude last char in the line
- call setline(1, 'some words!')
- call feedkeys("0fwve\<Esc>[200~noises\<Esc>[201~", 'xt')
- call assert_equal('some noises!', getline(1))
- call assert_equal('words', getreg('-'))
- normal! u
- call assert_equal('some words!', getline(1))
- exe "normal! \<C-R>"
- call assert_equal('some noises!', getline(1))
-
- " multi-line selection
- call setline(1, ['some words', 'and more'])
- call feedkeys("0fwvj0fd\<Esc>[200~letters\<Esc>[201~", 'xt')
- call assert_equal('some letters more', getline(1))
- call assert_equal("words\nand", getreg('1'))
- normal! u
- call assert_equal(['some words', 'and more'], getline(1, 2))
- exe "normal! \<C-R>"
- call assert_equal('some letters more', getline(1))
-
- " linewise non-last line, cursor at start of line
- call setline(1, ['some words', 'and more'])
- call feedkeys("0V\<Esc>[200~letters\<Esc>[201~", 'xt')
- call assert_equal('lettersand more', getline(1))
- call assert_equal("some words\n", getreg('1'))
- normal! u
- call assert_equal(['some words', 'and more'], getline(1, 2))
- exe "normal! \<C-R>"
- call assert_equal('lettersand more', getline(1))
-
- " linewise non-last line, cursor in the middle of line
- call setline(1, ['some words', 'and more'])
- call feedkeys("0fwV\<Esc>[200~letters\<Esc>[201~", 'xt')
- call assert_equal('lettersand more', getline(1))
- call assert_equal("some words\n", getreg('1'))
- normal! u
- call assert_equal(['some words', 'and more'], getline(1, 2))
- exe "normal! \<C-R>"
- call assert_equal('lettersand more', getline(1))
-
- " linewise last line
- call setline(1, ['some words', 'and more'])
- call feedkeys("j0V\<Esc>[200~letters\<Esc>[201~", 'xt')
- call assert_equal(['some words', 'letters'], getline(1, 2))
- call assert_equal("and more\n", getreg('1'))
- normal! u
- call assert_equal(['some words', 'and more'], getline(1, 2))
- exe "normal! \<C-R>"
- call assert_equal(['some words', 'letters'], getline(1, 2))
-
- bwipe!
-endfunc
-
-func CheckCopyPaste()
- call setline(1, ['copy this', ''])
- normal 1G0"*y$
- normal j"*p
- call assert_equal('copy this', getline(2))
-endfunc
-
-func Test_xrestore()
- CheckFeature xterm_clipboard
- let g:test_is_flaky = 1
-
- let display = $DISPLAY
- new
- call CheckCopyPaste()
-
- xrestore
- call CheckCopyPaste()
-
- exe "xrestore " .. display
- call CheckCopyPaste()
-
- bwipe!
-endfunc
-
-" 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
-
-func Test_pastetoggle_timeout_no_typed_after_mapped()
- CheckRunVimInTerminal
-
- let lines =<< trim END
- set pastetoggle=abc
- set ttimeoutlen=10000
- imap d a
- END
- call writefile(lines, 'Xpastetoggle_no_typed_after_mapped.vim', 'D')
- let buf = RunVimInTerminal('-S Xpastetoggle_no_typed_after_mapped.vim', #{rows: 8})
- call TermWait(buf)
- call term_sendkeys(buf, ":call feedkeys('id', 't')\<CR>")
- call term_wait(buf, 200)
- call term_sendkeys(buf, 'bc')
- " 'ttimeoutlen' should NOT apply
- call WaitForAssert({-> assert_match('^-- INSERT --', term_getline(buf, 8))})
-
- call StopVimInTerminal(buf)
-endfunc
-
-func Test_pastetoggle_timeout_typed_after_mapped()
- CheckRunVimInTerminal
-
- let lines =<< trim END
- set pastetoggle=abc
- set ttimeoutlen=10000
- imap d a
- END
- call writefile(lines, 'Xpastetoggle_typed_after_mapped.vim', 'D')
- let buf = RunVimInTerminal('-S Xpastetoggle_typed_after_mapped.vim', #{rows: 8})
- call TermWait(buf)
- call term_sendkeys(buf, ":call feedkeys('idb', 't')\<CR>")
- call term_wait(buf, 200)
- call term_sendkeys(buf, 'c')
- " 'ttimeoutlen' should apply
- call WaitForAssert({-> assert_match('^-- INSERT (paste) --', term_getline(buf, 8))})
-
- call StopVimInTerminal(buf)
-endfunc
-
-func Test_pastetoggle_timeout_typed_after_noremap()
- CheckRunVimInTerminal
-
- let lines =<< trim END
- set pastetoggle=abc
- set ttimeoutlen=10000
- inoremap d a
- END
- call writefile(lines, 'Xpastetoggle_typed_after_noremap.vim', 'D')
- let buf = RunVimInTerminal('-S Xpastetoggle_typed_after_noremap.vim', #{rows: 8})
- call TermWait(buf)
- call term_sendkeys(buf, ":call feedkeys('idb', 't')\<CR>")
- call term_wait(buf, 200)
- call term_sendkeys(buf, 'c')
- " 'ttimeoutlen' should apply
- call WaitForAssert({-> assert_match('^-- INSERT (paste) --', term_getline(buf, 8))})
-
- call StopVimInTerminal(buf)
-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