1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 05:30:07 +08:00
SpaceVim/bundle/phpcomplete.vim-vim7/tests/GetClassLocation_test.vim

81 lines
2.5 KiB
VimL

fun! SetUp()
" disable builtin information
let g:php_builtin_classnames = {}
let g:php_builtin_classes = {}
let g:php_builtin_interfaces = {}
let g:php_builtin_interfacenames = {}
" disable tag files
exe ':set tags='
endf
fun! TestCase_return_VIMPHP_BUILTINOBJECT_when_classname_in_builtin_classes()
call SetUp()
let g:php_builtin_classnames = {'datetime': ''}
let g:php_builtin_classes = {
\'datetime':{}
\}
let res = phpcomplete#GetClassLocation('DateTime', '')
call VUAssertEquals('VIMPHP_BUILTINOBJECT', res)
let res = phpcomplete#GetClassLocation('DateTime', '\')
call VUAssertEquals('VIMPHP_BUILTINOBJECT', res)
endf
fun! TestCase_return_current_file_path_when_classname_found_in_previous_lines_of_current_buffer()
call SetUp()
let path = expand('%:p:h').'/'.'fixtures/GetClassLocation/foo.class.php'
below 1new
exe ":silent! edit ".path
exe ':6'
let res = phpcomplete#GetClassLocation('Foo', '')
call VUAssertEquals(path, res)
exe ':14'
let res = phpcomplete#GetClassLocation('Foo2', '')
call VUAssertEquals(path, res)
exe ':21'
let res = phpcomplete#GetClassLocation('Foo3', '')
call VUAssertEquals(path, res)
silent! bw! %
endf
fun! TestCase_return_class_location_from_tags()
call SetUp()
let tags_path = expand('%:p:h').'/'.'fixtures/GetClassLocation/tags'
let old_style_tags_path = expand('%:p:h').'/'.'fixtures/GetClassLocation/old_style_tags'
let path = expand('%:p:h').'/'.'fixtures/GetClassLocation/empty.php'
exe ':set tags='.tags_path
below 1new
exe ":silent! edit ".path
exe ':3'
let res = phpcomplete#GetClassLocation('Foo', '')
call VUAssertEquals('fixtures/GetClassLocation/foo.class.php', res)
let res = phpcomplete#GetClassLocation('FooInterface', '')
call VUAssertEquals('fixtures/GetClassLocation/foo.class.php', res)
let res = phpcomplete#GetClassLocation('FooTrait', '')
call VUAssertEquals('fixtures/GetClassLocation/foo.class.php', res)
" when there are no namespaces to match for the classes from the tags file
" should return the first class's location where the name matches
exe ':set tags='.old_style_tags_path
let res = phpcomplete#GetClassLocation('Foo', '')
call VUAssertEquals('fixtures/GetClassLocation/foo.class.php', res)
let res = phpcomplete#GetClassLocation('FooInterface', '')
call VUAssertEquals('fixtures/GetClassLocation/foo.class.php', res)
silent! bw! %
endf
" vim: foldmethod=marker:expandtab:ts=4:sts=4