]> granicus.if.org Git - vim/commitdiff
patch 8.0.0375: the "+ register is not tested v8.0.0375
authorBram Moolenaar <Bram@vim.org>
Sun, 26 Feb 2017 14:08:21 +0000 (15:08 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 26 Feb 2017 14:08:21 +0000 (15:08 +0100)
Problem:    The "+ register is not tested.
Solution:   Add a test using another Vim instance to change the "+ register.
            (Kazuki Kuriyama)

src/testdir/test_gui.vim
src/version.c

index d9430747de78a49e40659a09e0fb81138d414f0f..77e4f2e9a6cc169ee3b0560667006076f6e966d9 100644 (file)
@@ -72,6 +72,47 @@ func Test_getfontname_without_arg()
   endif
 endfunc
 
+func Test_quoteplus()
+  let skipped = ''
+
+  if !g:x11_based_gui
+    let skipped = g:not_supported . 'quoteplus'
+  else
+    let quoteplus_saved = @+
+
+    let test_call     = 'Can you hear me?'
+    let test_response = 'Yes, I can.'
+    let vim_exe = exepath(v:progpath)
+    let testee = 'VIMRUNTIME=' . $VIMRUNTIME . '; export VIMRUNTIME;'
+          \ . vim_exe . ' -f -g -u NONE -U NONE --noplugin -c ''%s'''
+    let cmd = 'call feedkeys("'
+          \ . '\"+p'
+          \ . ':s/' . test_call . '/' . test_response . '/\<CR>'
+          \ . '\"+yis'
+          \ . ':q!\<CR>", "tx")'
+    let run_vimtest = printf(testee, cmd)
+
+    " Set the quoteplus register to test_call, and another gvim will launched.
+    " Then, it first tries to paste the content of its own quotedplus register
+    " onto it.  Second, it tries to substitute test_responce for the pasted
+    " sentence.  If the sentence is identical to test_call, the substitution
+    " should succeed.  Third, it tries to yank the result of the substitution
+    " to its own quoteplus register, and last it quits.  When system()
+    " returns, the content of the quoteplus register should be identical to
+    " test_response if those quoteplus registers are synchronized properly
+    " with/through the X11 clipboard.
+    let @+ = test_call
+    call system(run_vimtest)
+    call assert_equal(test_response, @+)
+
+    let @+ = quoteplus_saved
+  endif
+
+  if !empty(skipped)
+    throw skipped
+  endif
+endfunc
+
 func Test_set_guifont()
   let skipped = ''
 
index b96daff1cbd20ceda8e39bf1cb1fe5ab9908c0b2..58ece754d1c734b265913347d0300b2f48aa0261 100644 (file)
@@ -764,6 +764,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    375,
 /**/
     374,
 /**/