test59: Turn the VimL test function into a lua function.

Helped-By: Björn Linse <bjorn.linse@gmail.com>
`spelldump | quit` must be in a function
This commit is contained in:
Lucas Hoffmann
2015-07-16 07:56:19 +02:00
committed by Björn Linse
parent f3c67a617e
commit c7d58e7a56

View File

@@ -494,6 +494,48 @@ describe("spell checking with 'encoding' set to utf-8", function()
os.remove('Xtest7.dic') os.remove('Xtest7.dic')
end) end)
-- Function to test .aff/.dic with list of good and bad words. This was a
-- Vim function in the original legacy test.
local function test_one(aff, dic)
-- Generate a .spl file from a .dic and .aff file.
os.execute('cp -f Xtest'..aff..'.aff Xtest.aff')
os.execute('cp -f Xtest'..dic..'.dic Xtest.dic')
source([[
set spellfile=
function! SpellDumpNoShow()
" spelling scores depend on what happens to be drawn on screen
spelldump
%yank
quit
endfunction
$put =''
$put ='test ]]..aff..'-'..dic..[['
mkspell! Xtest Xtest
" Use that spell file.
set spl=Xtest.utf-8.spl spell
" List all valid words.
call SpellDumpNoShow()
$put
$put ='-------'
" Find all bad words and suggestions for them.
1;/^]]..aff..[[good:
normal 0f:]s
let prevbad = ''
while 1
let [bad, a] = spellbadword()
if bad == '' || bad == prevbad || bad == 'badend'
break
endif
let prevbad = bad
let lst = spellsuggest(bad, 3)
normal mm
$put =bad
$put =string(lst)
normal `m]s
endwhile
]])
end
it('is working', function() it('is working', function()
insert([[ insert([[
@@ -552,51 +594,11 @@ describe("spell checking with 'encoding' set to utf-8", function()
test output:]]) test output:]])
-- Function to test .aff/.dic with list of good and bad words. test_one(1, 1)
os.execute('cp -f Xtest1.aff Xtest.aff')
os.execute('cp -f Xtest1.dic Xtest.dic')
source([[
func TestOne(aff, dic)
set spellfile=
$put =''
$put ='test '. a:aff . '-' . a:dic
" Generate a .spl file from a .dic and .aff file.
exe '!cp -f Xtest'.a:aff.'.aff Xtest.aff'
exe '!cp -f Xtest'.a:dic.'.dic Xtest.dic'
mkspell! Xtest Xtest
" Use that spell file.
set spl=Xtest.utf-8.spl spell
" List all valid words.
spelldump
%yank
quit
$put
$put ='-------'
" Find all bad words and suggestions for them.
exe '1;/^' . a:aff . 'good:'
normal 0f:]s
let prevbad = ''
while 1
let [bad, a] = spellbadword()
if bad == '' || bad == prevbad || bad == 'badend'
break
endif
let prevbad = bad
let lst = spellsuggest(bad, 3)
normal mm
$put =bad
$put =string(lst)
normal `m]s
endwhile
endfunc
]])
execute([[call TestOne('1', '1')]])
execute([[$put =soundfold('goobledygoook')]]) execute([[$put =soundfold('goobledygoook')]])
execute([[$put =soundfold('kóopërÿnôven')]]) execute([[$put =soundfold('kóopërÿnôven')]])
execute([[$put =soundfold('oeverloos gezwets edale')]]) execute([[$put =soundfold('oeverloos gezwets edale')]])
-- And now with SAL instead of SOFO items; test automatic reloading. -- And now with SAL instead of SOFO items; test automatic reloading.
feed('gg') feed('gg')
os.execute('cp -f Xtest-sal.aff Xtest.aff') os.execute('cp -f Xtest-sal.aff Xtest.aff')
@@ -649,29 +651,15 @@ describe("spell checking with 'encoding' set to utf-8", function()
--helpers.eq(1,2) --helpers.eq(1,2)
-- Postponed prefixes. -- Postponed prefixes.
os.execute('cp -f Xtest2.aff Xtest.aff') test_one(2, 1)
os.execute('cp -f Xtest1.dic Xtest.dic')
execute([[call TestOne('2', '1')]])
-- Compound words. -- Compound words.
os.execute('cp -f Xtest3.aff Xtest.aff') test_one(3, 3)
os.execute('cp -f Xtest3.dic Xtest.dic') test_one(4, 4)
execute([[call TestOne('3', '3')]]) test_one(5, 5)
os.execute('cp -f Xtest4.aff Xtest.aff') test_one(6, 6)
os.execute('cp -f Xtest4.dic Xtest.dic') test_one(7, 7)
execute([[call TestOne('4', '4')]])
os.execute('cp -f Xtest5.aff Xtest.aff')
os.execute('cp -f Xtest5.dic Xtest.dic')
execute([[call TestOne('5', '5')]])
os.execute('cp -f Xtest6.aff Xtest.aff')
os.execute('cp -f Xtest6.dic Xtest.dic')
execute([[call TestOne('6', '6')]])
os.execute('cp -f Xtest7.aff Xtest.aff')
os.execute('cp -f Xtest7.dic Xtest.dic')
execute([[call TestOne('7', '7')]])
-- Clean up for valgrind.
execute('delfunc TestOne')
execute('set spl= enc=latin1') execute('set spl= enc=latin1')
execute('0,/^test output:/-1 delete') execute('0,/^test output:/-1 delete')