This repository has been archived on 2024-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
ale/test/test_writefile_function.vader

118 lines
2.7 KiB
Text
Raw Normal View History

Before:
call ale#test#SetDirectory('/testplugin/test')
2019-05-20 18:27:47 +00:00
let g:new_line_test_file = tempname()
After:
noautocmd :e! ++ff=unix
setlocal buftype=nofile
2019-05-20 18:27:47 +00:00
if filereadable(g:new_line_test_file)
call delete(g:new_line_test_file)
endif
2019-05-20 18:27:47 +00:00
unlet! g:new_line_test_file
call ale#test#RestoreDirectory()
Given(A file with Windows line ending characters):
first
second
third
Execute(Carriage returns should be included for ale#util#Writefile):
2019-05-20 18:27:47 +00:00
call ale#test#SetFilename(g:new_line_test_file)
setlocal buftype=
noautocmd :w
noautocmd :e! ++ff=dos
2019-05-20 18:27:47 +00:00
call ale#util#Writefile(bufnr(''), getline(1, '$'), g:new_line_test_file)
AssertEqual
\ ["first\r", "second\r", "third\r", ''],
2019-05-20 18:27:47 +00:00
\ readfile(g:new_line_test_file, 'b')
Given(A file with extra carriage returns):
first
second
third
fourth
Execute(Carriage returns should be de-depulicated):
2019-05-20 18:27:47 +00:00
call ale#test#SetFilename(g:new_line_test_file)
setlocal buftype=
noautocmd :w
noautocmd :e! ++ff=dos
2019-05-20 18:27:47 +00:00
call ale#util#Writefile(bufnr(''), getline(1, '$'), g:new_line_test_file)
AssertEqual
\ ["first\r", "second\r", "third\r", "fourth\r", ''],
2019-05-20 18:27:47 +00:00
\ readfile(g:new_line_test_file, 'b')
Given(A file with Unix line ending characters):
first
second
third
Execute(Unix file lines should be written as normal):
2019-05-20 18:27:47 +00:00
call ale#test#SetFilename(g:new_line_test_file)
setlocal buftype=
noautocmd :w
noautocmd :e! ++ff=unix
2019-05-20 18:27:47 +00:00
call ale#util#Writefile(bufnr(''), getline(1, '$'), g:new_line_test_file)
AssertEqual
\ ['first', 'second', 'third', ''],
2019-05-20 18:27:47 +00:00
\ readfile(g:new_line_test_file, 'b')
Execute(Newline at end of file should be preserved even when nofixeol):
call ale#test#SetFilename(g:new_line_test_file)
setlocal buftype=
noautocmd :w
noautocmd :e! ++ff=unix
set eol
set nofixeol
call ale#util#Writefile(bufnr(''), getline(1, '$'), g:new_line_test_file)
AssertEqual
\ ['first', 'second', 'third', ''],
\ readfile(g:new_line_test_file, 'b')
Execute(Newline should not be appended on write when noeol and nofixeol):
call ale#test#SetFilename(g:new_line_test_file)
setlocal buftype=
noautocmd :w
noautocmd :e! ++ff=unix
set noeol
set nofixeol
call ale#util#Writefile(bufnr(''), getline(1, '$'), g:new_line_test_file)
AssertEqual
\ ['first', 'second', 'third'],
\ readfile(g:new_line_test_file, 'b')
Execute(Newline should be appended on write when noeol and fixeol):
call ale#test#SetFilename(g:new_line_test_file)
setlocal buftype=
noautocmd :w
noautocmd :e! ++ff=unix
set noeol
set fixeol
call ale#util#Writefile(bufnr(''), getline(1, '$'), g:new_line_test_file)
AssertEqual
\ ['first', 'second', 'third', ''],
\ readfile(g:new_line_test_file, 'b')