Before:
  Save g:ale_xml_xmllint_executable
  Save g:ale_xml_xmllint_indentsize
  Save g:ale_xml_xmllint_options

  let g:ale_xml_xmllint_executable = '/path/to/xmllint'
  let g:ale_xml_xmllint_indentsize = ''
  let g:ale_xml_xmllint_options = ''

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

After:
  Restore

Execute(The xmllint callback should return the correct default command with unpersisted buffer):
  new

  AssertEqual
  \ {
  \   'command': ale#Escape('/path/to/xmllint')
  \     . ' --format -'
  \ },
  \ ale#fixers#xmllint#Fix(bufnr(''))

Execute(The xmllint callback should return the correct default command):
  call ale#test#SetFilename('../test-files/xml/dummy.xml')

  AssertEqual
  \ {
  \   'command': ale#Escape('/path/to/xmllint')
  \     . ' --format -'
  \ },
  \ ale#fixers#xmllint#Fix(bufnr(''))

Execute(The xmllint callback should include the XMLLINT_INDENT variable):
  call ale#test#SetFilename('../test-files/xml/dummy.xml')
  let g:ale_xml_xmllint_indentsize = 2

  AssertEqual
  \ {
  \   'command': ale#Env('XMLLINT_INDENT', '  ')
  \     . ale#Escape('/path/to/xmllint')
  \     . ' --format -'
  \ },
  \ ale#fixers#xmllint#Fix(bufnr(''))

Execute(The xmllint callback should include additional options):
  call ale#test#SetFilename('../test-files/xml/dummy.xml')
  let g:ale_xml_xmllint_options = '--nonet --custom-opt 2'

  AssertEqual
  \ {
  \   'command': ale#Escape('/path/to/xmllint')
  \     . ' --format --nonet --custom-opt 2 -'
  \ },
  \ ale#fixers#xmllint#Fix(bufnr(''))
