# VimwikiRenameFile # Related to link, file navigation # Many commands are made with Do: They block with Execute # Create directories I remove at end {{{1 ########################################## Execute (Mkdir dir1 dir2 dir11 dir12): call system("mkdir $HOME/testmarkdown/dir1") call system("mkdir $HOME/testmarkdown/dir1/dir11") call system("mkdir $HOME/testmarkdown/dir1/dir12") call system("mkdir $HOME/testmarkdown/dir2") # Test Transdirectory and argument {{{1 # New feature #926 # Create smaller unit {{{2 # we stick all along with these 3 files, # Follow them ! Execute (Create 3 files): edit $HOME/testmarkdown/Test-Rename-zzz.md call WriteMe() edit $HOME/testmarkdown/dir1/dir11/Test-Rename.md call WriteMe() edit $HOME/testmarkdown/Test-Rename-Completion.md call WriteMe() Do (Testing Old buffer has been wiped out {{{2): :edit $HOME/testmarkdown/Test-Rename-Completion.md\ :Log 'Get current Buffer'\ :let buf_old = bufnr('%')\ :Log 'Is this wiki 2'\ :AssertEqual 1, vimwiki#vars#get_bufferlocal('wiki_nr')\ :Log 'Delete for loosers'\ :call DeleteFile('$HOME/testmarkdown/Test-Rename-new1.md')\ :Log 'Rewrite ...'\ :call WriteMe()\ :Log 'Rename 1'\ :VimwikiRenameFile Test-Rename-new1\ :Log 'Assert 1'\ :AssertEqual 'Test-Rename-new1', expand('%:t:r')\ :Log 'Rename 2'\ :VimwikiRenameFile Test-Rename-Completion\ :Log 'Assert 2'\ :AssertEqual expand('%'), $HOME . '/testmarkdown/Test-Rename-Completion.md'\ Do (Testing Completion {{{2): # Rename and test (zzz) :VimwikiRenameFile Test-Rename-z\1\ :AssertEqual $HOME . '/testmarkdown/Test-Rename-zzz1.md', expand('%')\\ # Restore old name :call WriteMe()\ :VimwikiRenameFile Test-Rename-zzz\ Do (Testing transforward {{{2): :Log 'Forward: root -> dir1/dir11 {{{3'\ # Create dir1/dir11/Test-Rename and link to it :edit $HOME/testmarkdown/Test-Rename-Completion.md\ ggdG idir1/dir11/Test-Rename.md\ \\ :VimwikiRenameFile ../Test-Rename-2\ :AssertEqual expand('%'), $HOME . '/testmarkdown/dir1/Test-Rename-2.md'\\ # See what happend in root :call WriteMe()\ :edit $HOME/testmarkdown/Test-Rename-Completion.md\ :AssertEqual getline(1), '[dir1 dir11 Test Rename](dir1/Test-Rename-2.md)'\ :Log 'Backward dir1/dir11 -> root {{{3'\ # See what happend in dir1/dir11 # I am in root so pressing Enter sends me to dir1/dir11 \ # Write forward path dd i../Test-Rename-Completion\ # Convert it to link 0\\ # Now in root :AssertEqual expand('%'), $HOME . '/testmarkdown/Test-Rename-Completion.md'\ :VimwikiRenameFile dir1/Test-Rename-Completion-2\ :AssertEqual expand('%'), $HOME . '/testmarkdown/dir1/Test-Rename-Completion-2.md'\ Execute (Delete smaller unit changed {{{2): call DeleteFile('$HOME/testmarkdown/Test-Rename-new1.md') call DeleteFile('$HOME/testmarkdown/Test-Rename-zzz.md') call DeleteFile('$HOME/testmarkdown/dir1/Test-Rename-Completion_2.md') call DeleteFile('$HOME/testmarkdown/dir1/Test-Rename-2.md') # VimwikiRename Test same directory {{{1 # Old big conf, from bad unit test design # Changing file in a single dir # Feel free to modify but as long as it works # I delay the cleaning #################################### Given vimwiki (Void): Execute (Create Test-Rename -> dir1/dir11/in_dir11.md and dir1/dir12/in_dir12.md and dir2/in_dir2.md): edit $HOME/testmarkdown/Test-Rename.md AssertEqual $HOME . '/testmarkdown/Test-Rename.md', expand('%') AssertEqual 'markdown', vimwiki#vars#get_wikilocal('syntax') AssertEqual 1, vimwiki#vars#get_bufferlocal('wiki_nr') call append(0, ['# Test Rename', 'in_root.md', 'dir1/dir11/in_dir11.md', 'dir1/dir12/in_dir12.md', 'dir2/in_dir2.md']) call WriteMe() Do (Create in_root): :Log 'Open Test-Rename.md'\ :edit $HOME/testmarkdown/Test-Rename.md\ :AssertEqual $HOME . '/testmarkdown/Test-Rename.md', expand('%')\\ :Log 'Delete last line (easyer latter checks without trailing spaces)'\ Gdd :Log 'Open in_root.md'\ gg j\ j\ j\ j\ ggj0y$ :AssertEqual '[in_root](in_root.md)', @"\ 0\ :AssertEqual $HOME . '/testmarkdown/in_root.md', expand('%')\ :Log 'Add link in_root.md -> dir1/dir11/in_dir11'\ ggi# Title in root\\ idir1/dir11/in_dir11\ :call WriteMe()\ :AssertEqual $HOME . '/testmarkdown/in_root.md', expand('%')\ :Log 'Open in_dir11.md: creating dirs'\ ggj"ay$ :AssertEqual 'reg dir1/dir11/in_dir11', 'reg ' . @a\ 0\\ :AssertEqual 'file ' . $HOME . '/testmarkdown/dir1/dir11/in_dir11.md', 'file ' . expand('%')\ :Log 'One backspace for fun'\ \ :AssertEqual 'file ' . $HOME . '/testmarkdown/in_root.md', 'file ' . expand('%')\ Do (Create dir_11 -> dir_11): :edit $HOME/testmarkdown/dir1/dir11/in_dir11_fix.md\ :Log 'Add link in_dir11_fix.md -> in_dir11'\ ggi# Title in dir11 fix\\ iin_dir11\ :call WriteMe()\ :Log 'Open in_dir11.md: creating dirs'\ ggj"ay$ :AssertEqual 'reg in_dir11', 'reg ' . @a\ 0\\ y\ :AssertEqual 'file ' . $HOME . '/testmarkdown/dir1/dir11/in_dir11.md', 'file ' . expand('%')\ :Log 'One backspace for fun'\ \ :AssertEqual 'file ' . $HOME . '/testmarkdown/dir1/dir11/in_dir11_fix.md', 'file ' . expand('%')\ Execute (Fill in_dir11 content): edit $HOME/testmarkdown/dir1/dir11/in_dir11.md call append(0, ['# Title in_dir11', '[dir2 link](../../dir2/in_dir2.md)']) call WriteMe() # Rename local {{{1 ################### Do (RenameLink in_dir11 -> in_dir11_new): :edit $HOME/testmarkdown/dir1/dir11/in_dir11.md\ :AssertEqual 'file ' . $HOME . '/testmarkdown/dir1/dir11/in_dir11.md', 'file ' . expand('%')\ :AssertEqual 1, vimwiki#vars#get_bufferlocal('wiki_nr')\ :Log 'Rename'\ :call WriteMe()\ :VimwikiRenameFile\ y\ in_dir11_new\ :call WriteMe()\ :Log 'Append filename'\ :call append('$', [expand('%')])\ Expect(With new filename at the end): # Title in_dir11 [dir2 link](../../dir2/in_dir2.md) /home/vimtest/testmarkdown/dir1/dir11/in_dir11_new.md Execute (edit in_dir11_fix): edit $HOME/testmarkdown/dir1/dir11/in_dir11_fix.md Expect(Link to in_dir11_new): # Title in dir11 fix [in_dir11](in_dir11_new) Execute (edit Test-Rename.md): edit $HOME/testmarkdown/Test-Rename.md Expect (Link to in_dir11_new): # Test Rename [in_root](in_root.md) [dir1 dir11 in_dir11](dir1/dir11/in_dir11_new.md) [dir1 dir12 in_dir12](dir1/dir12/in_dir12.md) [dir2 in_dir2](dir2/in_dir2.md) Do (in_dir2 -> in_dir2_new): :edit $HOME/testmarkdown/dir2/in_dir2.md\ :Log 'Append filename'\ :call append('$', [expand('%')])\ :Log 'Rename'\ :call WriteMe()\ :VimwikiRenameFile\ y\ in_dir2_new\ :call WriteMe()\ :Log 'Append filename'\ :call append('$', [expand('%')])\ Expect (old and new filenames): /home/vimtest/testmarkdown/dir2/in_dir2.md /home/vimtest/testmarkdown/dir2/in_dir2_new.md Execute (edit Test-Rename.md): edit $HOME/testmarkdown/Test-Rename.md Expect (Link to in_dir11_new): # Test Rename [in_root](in_root.md) [dir1 dir11 in_dir11](dir1/dir11/in_dir11_new.md) [dir1 dir12 in_dir12](dir1/dir12/in_dir12.md) [dir2 in_dir2](dir2/in_dir2_new.md) Execute (edit in_dir11.md): edit $HOME/testmarkdown/dir1/dir11/in_dir11_new.md Expect (Link to in_dir2_new): # Title in_dir11 [dir2 link](../../dir2/in_dir2_new.md) /home/vimtest/testmarkdown/dir1/dir11/in_dir11_new.md Execute (Clean dir1 and dir2): Log "End: Clean" call DeleteHiddenBuffers() call system('rm $HOME/testmarkdown/Test-Rename.md') call system('rm $HOME/testmarkdown/in_root.md') call system('rm -r $HOME/testmarkdown/dir1') call system('rm -r $HOME/testmarkdown/dir2') # vim: sw=2 foldmethod=marker foldlevel=30 foldignore=#