forked from aniani/vim
Problem: Wordcount test still still fails on MS-Windows. Solution: Set 'fileformats' to "unix".
127 lines
2.7 KiB
Plaintext
127 lines
2.7 KiB
Plaintext
Test for wordcount() function
|
|
|
|
STARTTEST
|
|
:so small.vim
|
|
:so mbyte.vim
|
|
:set enc=utf8
|
|
:set selection=inclusive fileformat=unix fileformats=unix
|
|
:new
|
|
:fu DoRecordWin(...)
|
|
: wincmd k
|
|
: if exists("a:1")
|
|
: call cursor(a:1)
|
|
: endif
|
|
: let result=[]
|
|
: call add(result, g:test)
|
|
: call add(result, getline(1, '$'))
|
|
: call add(result, wordcount())
|
|
: wincmd j
|
|
: return result
|
|
:endfu
|
|
:fu PutInWindow(args)
|
|
: wincmd k
|
|
: %d _
|
|
: call append(1, a:args)
|
|
: wincmd j
|
|
:endfu
|
|
:fu Log()
|
|
: $put ='----'
|
|
: $put =remove(g:log,0)
|
|
: $put =string(g:log)
|
|
:endfu
|
|
:fu! STL()
|
|
: if mode() =~? 'V'
|
|
: let g:visual_stat=wordcount()
|
|
: endif
|
|
: return string(wordcount())
|
|
:endfu
|
|
:let g:test="Test 1: empty window"
|
|
:let log=DoRecordWin()
|
|
:call Log()
|
|
:"
|
|
:let g:test="Test 2: some words, cursor at start"
|
|
:call PutInWindow('one two three')
|
|
:let log=DoRecordWin([1,1,0])
|
|
:call Log()
|
|
:"
|
|
:let g:test="Test 3: some words, cursor at end"
|
|
:call PutInWindow('one two three')
|
|
:let log=DoRecordWin([2,99,0])
|
|
:call Log()
|
|
:"
|
|
:let g:test="Test 4: some words, cursor at end, ve=all"
|
|
:set ve=all
|
|
:call PutInWindow('one two three')
|
|
:let log=DoRecordWin([2,99,0])
|
|
:call Log()
|
|
:set ve=
|
|
:"
|
|
:let g:test="Test 5: several lines with words"
|
|
:call PutInWindow(['one two three', 'one two three', 'one two three'])
|
|
:let log=DoRecordWin([4,99,0])
|
|
:call Log()
|
|
:"
|
|
:let g:test="Test 6: one line with BOM set"
|
|
:call PutInWindow('one two three')
|
|
:wincmd k
|
|
:set bomb
|
|
:w! Xtest
|
|
:wincmd j
|
|
:let log=DoRecordWin([2,99,0])
|
|
:call Log()
|
|
:wincmd k
|
|
:set nobomb
|
|
:w!
|
|
:wincmd j
|
|
:"
|
|
:let g:test="Test 7: one line with multibyte words"
|
|
:call PutInWindow(['Äne M¤ne Müh'])
|
|
:let log=DoRecordWin([2,99,0])
|
|
:call Log()
|
|
:"
|
|
:let g:test="Test 8: several lines with multibyte words"
|
|
:call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
|
|
:let log=DoRecordWin([3,99,0])
|
|
:call Log()
|
|
:"
|
|
:let g:test="Test 9: visual mode, complete buffer"
|
|
:call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
|
|
:wincmd k
|
|
:set ls=2 stl=%{STL()}
|
|
:" start visual mode quickly and select complete buffer
|
|
:0
|
|
V2jy
|
|
:set stl= ls=1
|
|
:let log=DoRecordWin([3,99,0])
|
|
:let log[2]=g:visual_stat
|
|
:call Log()
|
|
:"
|
|
:let g:test="Test 10: visual mode (empty)"
|
|
:call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
|
|
:wincmd k
|
|
:set ls=2 stl=%{STL()}
|
|
:" start visual mode quickly and select complete buffer
|
|
:0
|
|
v$y
|
|
:set stl= ls=1
|
|
:let log=DoRecordWin([3,99,0])
|
|
:let log[2]=g:visual_stat
|
|
:call Log()
|
|
:"
|
|
:let g:test="Test 11: visual mode, single line"
|
|
:call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!'])
|
|
:wincmd k
|
|
:set ls=2 stl=%{STL()}
|
|
:" start visual mode quickly and select complete buffer
|
|
:2
|
|
0v$y
|
|
:set stl= ls=1
|
|
:let log=DoRecordWin([3,99,0])
|
|
:let log[2]=g:visual_stat
|
|
:call Log()
|
|
:"
|
|
:/^RESULT test/,$w! test.out
|
|
:qa!
|
|
ENDTEST
|
|
RESULT test:
|