Before:
  Save g:ale_set_loclist
  Save g:ale_set_quickfix
  Save g:ale_buffer_info
  Save g:ale_set_lists_synchronously

  let g:ale_buffer_info = {}
  let g:ale_set_loclist = 0
  let g:ale_set_quickfix = 0
  let g:ale_set_lists_synchronously = 1

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

After:
  Restore

  call setloclist(0, [])
  call setqflist([])

  call ale#test#RestoreDirectory()

Execute(The loclist titles should be set appropriately):
  silent noautocmd file foo

  let g:ale_set_loclist = 1

  call ale#list#SetLists(bufnr(''), [
  \ {'bufnr': bufnr(''), 'lnum': 5, 'col': 5, 'text': 'x', 'type': 'E'},
  \])

  AssertEqual [{
  \ 'lnum': 5,
  \ 'bufnr': bufnr(''),
  \ 'col': 5,
  \ 'text': 'x',
  \ 'valid': 1,
  \ 'vcol': 0,
  \ 'nr': 0,
  \ 'type': 'E',
  \ 'pattern': '',
  \}], ale#test#GetLoclistWithoutModule()

  if !has('nvim')
    AssertEqual
    \ {'title': ale#path#Simplify(getcwd() . '/foo')},
    \ getloclist(0, {'title': ''})
  endif

Execute(The quickfix titles should be set appropriately):
  silent noautocmd file foo

  let g:ale_set_quickfix = 1

  let g:ale_buffer_info[bufnr('')] = {
  \ 'loclist': [{'bufnr': bufnr(''), 'lnum': 5, 'col': 5, 'text': 'x', 'type': 'E'}],
  \}

  call ale#list#SetLists(bufnr(''), [
  \ {'bufnr': bufnr(''), 'lnum': 5, 'col': 5, 'text': 'x', 'type': 'E'},
  \])
  AssertEqual [{
  \ 'lnum': 5,
  \ 'bufnr': bufnr(''),
  \ 'col': 5,
  \ 'text': 'x',
  \ 'valid': 1,
  \ 'vcol': 0,
  \ 'nr': 0,
  \ 'type': 'E',
  \ 'pattern': '',
  \}], ale#test#GetQflistWithoutModule()

  if !has('nvim')
    AssertEqual
    \ {'title': ale#path#Simplify(getcwd() . '/foo')},
    \ getqflist({'title': ''})
  endif