fun! SetUp()
    " disable tag files
    exe ':set tags='

    " disable builtin variables
    let g:php_builtin_vars = {}
    let g:phpcomplete_search_tags_for_variables = 0
endf

fun! TestCase_complete_variables_from_current_file()
    call SetUp()

    let path =  expand('%:p:h')."/".'fixtures/CompleteVariable/local_variables.php'
    below 1new
    exe ":silent! edit ".path

    let res = phpcomplete#CompleteVariable('$find')

    " -> added for the variable detected as an object
    call VUAssertEquals([
                \ {'word': '$find_me', 'kind': 'v'},
                \ {'word': '$find_me2', 'kind': 'v'},
                \ {'word': '$find_me3', 'kind': 'v'},
                \ {'word': '$find_me4', 'kind': 'v'}
                \],
                \ res)
    silent! bw! %
endf

fun! TestCase_complete_variables_built_in_global_variable()
    call SetUp()

    " disable local variables from current file
    let path =  expand('%:p:h')."/".'fixtures/CompleteVariable/empty.php'
    below 1new
    exe ":silent! edit ".path

    " fill with test data '$this' is in the list to test that filtering
    " actually happens to the '$_' base
    let g:php_builtin_vars = {
                \ '$_GET':'',
                \ '$_POST':'',
                \ '$this':'',
                \ }

    let res = phpcomplete#CompleteVariable('$_')
    call VUAssertEquals([
                \ {'word': '$_GET', 'kind': 'v'},
                \ {'word': '$_POST', 'kind': 'v'}],
                \ res)
    silent! bw! %
endf

fun! TestCase_complete_variables_from_tags()
    call SetUp()

    " enable variable search in tags
    let g:phpcomplete_search_tags_for_variables = 1
    " set tags to a fixture
    exe ':set tags='.expand('%:p:h').'/'.'fixtures/CompleteVariable/tags'

    " disable local variables from current file
    let path =  expand('%:p:h')."/".'fixtures/CompleteVariable/empty.php'
    below 1new
    exe ":silent! edit ".path

    let res = phpcomplete#CompleteVariable('$find_')
    call VUAssertEquals([
                \ {'word': '$find_instance_in_tags', 'info': '$find_instance_in_tags class foo', 'menu': 'foo', 'kind': 'v'},
                \ {'word': '$find_variable_in_tags', 'kind': 'v'}],
                \ res)
    silent! bw! %
endf

" vim: foldmethod=marker:expandtab:ts=4:sts=4