# VimwikiGoto
#
# Note: I dont know why <Tab> is inserting a Tab.
#   Well better than to insert a Chair, but it should trigger completion
#   So I used C-L


Execute (VimwikiGoto buzz_bozz && Assert):
  VimwikiIndex 2
  VimwikiGoto buzz_bozz
  AssertEqual $HOME . '/testmarkdown/buzz_bozz.md', expand('%')

Execute (VimwikiGoto buzz bozz && Assert):
  VimwikiIndex 4
  VimwikiGoto buzz bozz
  AssertEqual $HOME . '/testwiki space/buzz bozz.wiki', expand('%')

Do (VimwikiGoto <CR> buzz_bozz && Assert):
  :VimwikiIndex 2\<CR>
  :VimwikiGoto\<CR>
  buzz_bozz\<CR>
  :AssertEqual $HOME . '/testmarkdown/buzz_bozz.md', expand('%')\<CR>

Do (VimwikiGoto + Completion(cmdline) && Assert):
  :VimwikiIndex 2\<CR>
  :VimwikiGoto buzz_bo\<C-l>\<CR>
  :AssertEqual $HOME . '/testmarkdown/buzz_bozz.md', expand('%')\<CR>

Do (VimwikiGoto <CR> buzz_bo + Completion(input()) && Assert):
  :VimwikiIndex 2\<CR>
  :VimwikiGoto\<CR>
  buzz_bo\<C-l>\<CR>
  :AssertEqual $HOME . '/testmarkdown/buzz_bozz.md', expand('%')\<CR>

Do (,wn buzz_bo + Completion(input()) && Assert):
  ,wn
  buzz_bo\<C-l>\<CR>
  :AssertEqual $HOME . '/testmarkdown/buzz_bozz.md', expand('%')\<CR>

Execute (:VimwikiGoto + Completion (API)):
  VimwikiIndex 2
  AssertEqual $HOME . '/testmarkdown/index.md', expand('%')
  let s_complete=string(vimwiki#base#get_globlinks_escaped())
  Assert -1 != stridx(s_complete, 'buzz_bozz')

Execute (Create dir1/dir2/test_goto_file.md):
  call system("mkdir $HOME/testmarkdown/dir1")
  call system("mkdir $HOME/testmarkdown/dir1/dir2")
  edit $HOME/testmarkdown/dir1/dir2/test_goto_file.md
  call WriteMe()

Execute (:VimwikiGoto + Completion in directory):
  " Return to base
  VimwikiIndex 2
  AssertEqual $HOME . '/testmarkdown/index.md', expand('%')

  " Complete without argment
  let s_complete1=string(vimwiki#base#get_globlinks_escaped())
  Assert -1 != stridx(s_complete1, 'test_goto_file')

  " Complete with file argument
  let s_complete2=string(vimwiki#base#get_globlinks_escaped('test_goto_file'))
  Assert -1 != stridx(s_complete2, 'test_goto_file')

  " Complete with start of file argument
  let s_complete3=string(vimwiki#base#get_globlinks_escaped('test_got'))
  Assert -1 != stridx(s_complete3, 'test_goto_file')

  " Complete with (nested) dir2 argument
  let s_complete4=string(vimwiki#base#get_globlinks_escaped('dir2'))
  Assert -1 != stridx(s_complete4, 'test_goto_file')

  " Complete with bad argument
  let l_complete5=vimwiki#base#get_globlinks_escaped('this_string_is_nowhere')
  let s_complete5=string(l_complete5)
  Assert -1 == stridx(s_complete5, 'test_goto_file')
  AssertEqual 0, len(l_complete5)

Execute (Clean):
  call DeleteFile("$HOME/testmarkdown/dir1/dir2/test_goto_file.md")
  call system("rm $HOME/testmarkdown/dir1")

# vim: sw=2 foldmethod=indent foldlevel=30 foldignore=
