Before:
  Save g:ale_php_phpcs_executable
  Save g:ale_php_phpcs_use_global

  let g:ale_php_phpcs_executable = 'phpcs_test'
  let g:ale_php_phpcs_use_global = 0

  call ale#test#SetDirectory('/testplugin/test')

  runtime ale_linters/php/phpcs.vim

After:
  Restore

  call ale#test#RestoreDirectory()
  call ale#linter#Reset()

Execute(project with phpcs should use local by default):
  call ale#test#SetFilename('phpcs-test-files/project-with-phpcs/foo/test.php')

  AssertEqual
  \ g:dir . '/phpcs-test-files/project-with-phpcs/vendor/bin/phpcs',
  \ ale_linters#php#phpcs#GetExecutable(bufnr(''))

Execute(use-global should override local detection):
  let g:ale_php_phpcs_use_global = 1

  call ale#test#SetFilename('phpcs-test-files/project-with-phpcs/foo/test.php')

  AssertEqual
  \ 'phpcs_test',
  \ ale_linters#php#phpcs#GetExecutable(bufnr(''))

Execute(project without phpcs should use global):
  call ale#test#SetFilename('phpcs-test-files/project-without-phpcs/foo/test.php')

  AssertEqual
  \ 'phpcs_test',
  \ ale_linters#php#phpcs#GetExecutable(bufnr(''))