-- Tests for 'fixeol' local helpers = require('test.functional.helpers')(after_each) local feed = helpers.feed local clear, feed_command, expect = helpers.clear, helpers.feed_command, helpers.expect describe('fixeol', function() local function rmtestfiles() os.remove("test.out") os.remove("XXEol") os.remove("XXNoEol") os.remove("XXTestEol") os.remove("XXTestNoEol") end setup(function() clear() rmtestfiles() end) teardown(function() rmtestfiles() end) it('is working', function() -- First write two test files – with and without trailing EOL. feed_command('enew!') feed('awith eol:w! XXEol') feed_command('enew!') feed_command('set noeol nofixeol') feed('awithout eol:w! XXNoEol') feed_command('set eol fixeol') feed_command('bwipe XXEol XXNoEol') -- Try editing files with 'fixeol' disabled. feed_command('e! XXEol') feed('ostays eol:set nofixeol') feed_command('w! XXTestEol') feed_command('e! XXNoEol') feed('ostays without:set nofixeol') feed_command('w! XXTestNoEol') feed_command('bwipe! XXEol XXNoEol XXTestEol XXTestNoEol') feed_command('set fixeol') -- Append "END" to each file so that we can see what the last written char was. feed('ggdGaEND:w >>XXEol') feed_command('w >>XXNoEol') feed_command('w >>XXTestEol') feed_command('w >>XXTestNoEol') -- Concatenate the results. feed_command('e! test.out') feed('a0:$r XXEol') feed_command('$r XXNoEol') feed('Go1:$r XXTestEol') feed_command('$r XXTestNoEol') feed_command('w') -- Assert buffer contents. expect([=[ 0 with eol END without eolEND 1 with eol stays eol END without eol stays withoutEND]=]) end) end)