You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
2.5 KiB
Ruby
122 lines
2.5 KiB
Ruby
require 'vimrunner'
|
|
|
|
$vim = Vimrunner.start
|
|
$vim.add_plugin(File.expand_path('../../..', __FILE__), 'plugin/editorconfig.vim')
|
|
|
|
# The base path of the testing files
|
|
BASE_PATH = File.expand_path('../plugin_tests/test_files/', __FILE__)
|
|
|
|
# file_name is the file name that should be open by Vim
|
|
# expected_values is a Hash that contains all the Vim options we need to test
|
|
def test_editorconfig(file_name, expected_values)
|
|
$vim.edit(File.join(BASE_PATH, file_name))
|
|
|
|
expected_values.each do |key, val|
|
|
expect($vim.echo("&l:#{key}")).to eq(val)
|
|
end
|
|
|
|
$vim.command 'bd!'
|
|
end
|
|
|
|
describe 'plugin/editorconfig.vim' do
|
|
after(:all) do
|
|
$vim.kill
|
|
end
|
|
|
|
describe '#all' do
|
|
it '3_space.py' do
|
|
test_editorconfig '3_space.txt',
|
|
expandtab: '1',
|
|
shiftwidth: '3',
|
|
tabstop: '3'
|
|
end
|
|
end
|
|
|
|
it '4_space.py' do
|
|
test_editorconfig '4_space.py',
|
|
expandtab: '1',
|
|
shiftwidth: '4',
|
|
tabstop: '8'
|
|
end
|
|
|
|
it 'space.txt' do
|
|
test_editorconfig 'space.txt',
|
|
expandtab: '1',
|
|
shiftwidth: $vim.echo('&l:tabstop')
|
|
end
|
|
|
|
it 'tab.txt' do
|
|
test_editorconfig 'tab.txt',
|
|
expandtab: '0'
|
|
end
|
|
|
|
it '4_tab.txt' do
|
|
test_editorconfig '4_tab.txt',
|
|
expandtab: '0',
|
|
shiftwidth: '4',
|
|
tabstop: '4'
|
|
end
|
|
|
|
it '4_tab_width_of_8' do
|
|
test_editorconfig '4_tab_width_of_8.txt',
|
|
expandtab: '0',
|
|
shiftwidth: '4',
|
|
tabstop: '8'
|
|
end
|
|
|
|
it 'lf.txt' do
|
|
test_editorconfig 'lf.txt',
|
|
fileformat: 'unix'
|
|
end
|
|
|
|
it 'crlf.txt' do
|
|
test_editorconfig 'crlf.txt',
|
|
fileformat: 'dos'
|
|
end
|
|
|
|
it 'cr.txt' do
|
|
test_editorconfig 'cr.txt',
|
|
fileformat: 'mac'
|
|
end
|
|
|
|
it 'utf-8.txt' do
|
|
test_editorconfig 'utf-8.txt',
|
|
fileencoding: 'utf-8',
|
|
bomb: '0'
|
|
end
|
|
|
|
it 'utf-8-bom.txt' do
|
|
test_editorconfig 'utf-8-bom.txt',
|
|
fileencoding: 'utf-8',
|
|
bomb: '1'
|
|
end
|
|
|
|
it 'utf-16be.txt' do
|
|
test_editorconfig 'utf-16be.txt',
|
|
fileencoding: 'utf-16'
|
|
end
|
|
|
|
it 'utf-16le.txt' do
|
|
test_editorconfig 'utf-16le.txt',
|
|
fileencoding: 'utf-16le'
|
|
end
|
|
|
|
it 'latin1.txt' do
|
|
test_editorconfig 'latin1.txt',
|
|
fileencoding: 'latin1'
|
|
end
|
|
|
|
# insert_final_newline by PreserveNoEOL tests are omitted, since they are not supported
|
|
if $vim.echo("exists('+fixendofline')") == '1'
|
|
it 'with_newline.txt' do
|
|
test_editorconfig 'with_newline.txt',
|
|
fixendofline: '1'
|
|
end
|
|
|
|
it 'without_newline.txt' do
|
|
test_editorconfig 'without_newline.txt',
|
|
fixendofline: '0'
|
|
end
|
|
end
|
|
end
|