Просмотр исходного кода

Explicitly reset s:-variables during test

Junegunn Choi 10 лет назад
Родитель
Сommit
2ed1f27aa2
3 измененных файлов с 27 добавлено и 0 удалено
  1. 3 0
      test/regressions.vader
  2. 14 0
      test/test.vader
  3. 10 0
      test/workflow.vader

+ 3 - 0
test/regressions.vader

@@ -34,6 +34,7 @@ Execute (#130 Proper cleanup of on-demand loading triggers):
   augroup END
 
   " Cleared on command
+  call ReloadPlug()
   call plug#begin('$TMPDIR/plugged')
   Plug 'junegunn/vim-emoji', { 'on':  ['EmojiCommand', 'EmojiCommand2', '<Plug>(EmojiMapping)'] }
   call plug#end()
@@ -50,6 +51,7 @@ Execute (#130 Proper cleanup of on-demand loading triggers):
   Assert empty(mapcheck('<Plug>(EmojiMapping)')), '<Plug>(EmojiMapping) defined'
 
   " Cleared on FileType
+  call ReloadPlug()
   call plug#begin('$TMPDIR/plugged')
   Plug 'junegunn/vim-emoji', { 'on': ['EmojiCommandExtra', '<Plug>(EmojiMappingExtra)'], 'for': ['emoji'] }
   call plug#end()
@@ -189,6 +191,7 @@ Execute (#145: Merging on-demand loading triggers - cmd):
 Execute (#145: Merging on-demand loading triggers - map):
   unlet! g:xxx g:yyy
 
+  call ReloadPlug()
   call plug#begin()
   Plug '$PLUG_FIXTURES/xxx', { 'on': '<Plug>(xxx)' }
   Plug '$PLUG_FIXTURES/yyy', { 'on': ['<Plug>(xxx)' ,'<Plug>(yyy)' ] }

+ 14 - 0
test/test.vader

@@ -39,6 +39,19 @@ Execute (Initialize test environment):
     endif
   endfunction
 
+  " Reload vim-plug to reset s:-variables
+  function! ReloadPlug()
+    let tmp = tempname()
+    try
+      call writefile(readfile(globpath(&rtp, 'autoload/plug.vim')), tmp)
+      unlet g:loaded_plug
+      execute 'source' tmp
+      let &rtp = g:basertp
+    finally
+      call delete(tmp)
+    endtry
+  endfunction
+
 Execute (Print Interpreter Version):
   redir => out
   if has('ruby')
@@ -66,6 +79,7 @@ Execute (Cleanup):
   silent! delf AssertExpect
   silent! delf PlugUpdated
   silent! delf EnsureLoaded
+  silent! delf ReloadPlug
   silent! delc AssertExpect
   silent! unmap /
   silent! unmap ?

+ 10 - 0
test/workflow.vader

@@ -354,6 +354,7 @@ Execute (Reuse Plug window in another tab):
 **********************************************************************
 
 Execute (Trying to execute on-demand commands when plugin is not installed):
+  call ReloadPlug()
   call plug#begin()
   Plug 'junegunn/vim-easy-align', { 'on': ['EasyAlign', 'LiveEasyAlign'] }
   call plug#end()
@@ -366,6 +367,7 @@ Execute (Trying to execute on-demand commands when plugin is not installed):
   Assert !exists(':LiveEasyAlign')
 
 Execute (New set of plugins):
+  call ReloadPlug()
   call plug#begin()
   Plug 'junegunn/vim-fnr'
   Plug 'junegunn/vim-pseudocl'
@@ -778,6 +780,7 @@ Before (Clear global vars):
   set rtp-=$PLUG_FIXTURES/xxx/after
 
 Execute (Immediate loading):
+  call ReloadPlug()
   call plug#begin()
   Plug '$PLUG_FIXTURES/xxx'
   call plug#end()
@@ -792,6 +795,7 @@ Execute (Immediate loading):
   endif
 
 Execute (Command-based on-demand loading):
+  call ReloadPlug()
   call plug#begin()
   Plug '$PLUG_FIXTURES/xxx', { 'on': 'XXX' }
   call plug#end()
@@ -805,6 +809,7 @@ Execute (Command-based on-demand loading):
   AssertEqual ['xxx/ftdetect', 'xxx/after/ftdetect', 'xxx/plugin', 'xxx/after/plugin', 'xxx/ftplugin', 'xxx/after/ftplugin', 'xxx/indent', 'xxx/after/indent', 'xxx/syntax', 'xxx/after/syntax'], g:xxx
 
 Execute (Filetype-based on-demand loading):
+  call ReloadPlug()
   call plug#begin()
   Plug '$PLUG_FIXTURES/xxx', { 'for': 'xxx' }
   call plug#end()
@@ -1006,6 +1011,7 @@ Execute (Plug directory with comma):
 **********************************************************************
 Execute (Strict load order):
   let g:total_order = []
+  call ReloadPlug()
   call plug#begin()
   Plug '$PLUG_FIXTURES/xxx'
   Plug '$PLUG_FIXTURES/yyy', { 'for': ['xxx'] }
@@ -1019,6 +1025,7 @@ Execute (Strict load order):
   let len = len(split(&rtp, ','))
 
   let g:total_order = []
+  call ReloadPlug()
   call plug#begin()
   Plug '$PLUG_FIXTURES/xxx', { 'for': ['xxx'] }
   Plug '$PLUG_FIXTURES/yyy'
@@ -1036,6 +1043,9 @@ Execute (Strict load order):
   AssertEqual len + 2, len(split(&rtp, ','))
 
   let g:total_order = []
+  call ReloadPlug()
+  set rtp^=manually-prepended
+  set rtp+=manually-appended
   call plug#begin()
   Plug '$PLUG_FIXTURES/xxx', { 'for': ['xxx'] }
   Plug '$PLUG_FIXTURES/yyy', { 'for': ['xxx'] }