Mercurial > vim
comparison src/testdir/test_wordcount.vim @ 13022:71109531c516 v8.0.1387
patch 8.0.1387: wordcount test is old style
commit https://github.com/vim/vim/commit/a703aaee4d6230ed81469ef0cb37f331bf255136
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Dec 11 22:55:26 2017 +0100
patch 8.0.1387: wordcount test is old style
Problem: Wordcount test is old style.
Solution: Change into a new style test. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/2434)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 11 Dec 2017 23:00:04 +0100 |
parents | |
children | 2dcaa860e3fc |
comparison
equal
deleted
inserted
replaced
13021:b874913e5f83 | 13022:71109531c516 |
---|---|
1 " Test for wordcount() function | |
2 | |
3 if !has('multi_byte') | |
4 finish | |
5 endif | |
6 | |
7 func Test_wordcount() | |
8 let save_enc = &enc | |
9 set encoding=utf-8 | |
10 set selection=inclusive fileformat=unix fileformats=unix | |
11 | |
12 new | |
13 | |
14 " Test 1: empty window | |
15 call assert_equal({'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, | |
16 \ 'bytes': 0, 'cursor_bytes': 0}, wordcount()) | |
17 | |
18 " Test 2: some words, cursor at start | |
19 call append(1, 'one two three') | |
20 call cursor([1, 1, 0]) | |
21 call assert_equal({'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_words': 0, | |
22 \ 'bytes': 15, 'cursor_bytes': 1}, wordcount()) | |
23 | |
24 " Test 3: some words, cursor at end | |
25 %d _ | |
26 call append(1, 'one two three') | |
27 call cursor([2, 99, 0]) | |
28 call assert_equal({'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, | |
29 \ 'bytes': 15, 'cursor_bytes': 14}, wordcount()) | |
30 | |
31 " Test 4: some words, cursor at end, ve=all | |
32 set ve=all | |
33 %d _ | |
34 call append(1, 'one two three') | |
35 call cursor([2, 99, 0]) | |
36 call assert_equal({'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_words': 3, | |
37 \ 'bytes': 15, 'cursor_bytes': 15}, wordcount()) | |
38 set ve= | |
39 | |
40 " Test 5: several lines with words | |
41 %d _ | |
42 call append(1, ['one two three', 'one two three', 'one two three']) | |
43 call cursor([4, 99, 0]) | |
44 call assert_equal({'chars': 43, 'cursor_chars': 42, 'words': 9, 'cursor_words': 9, | |
45 \ 'bytes': 43, 'cursor_bytes': 42}, wordcount()) | |
46 | |
47 " Test 6: one line with BOM set | |
48 %d _ | |
49 call append(1, 'one two three') | |
50 set bomb | |
51 w! Xtest | |
52 call cursor([2, 99, 0]) | |
53 call assert_equal({'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, | |
54 \ 'bytes': 18, 'cursor_bytes': 14}, wordcount()) | |
55 set nobomb | |
56 w! | |
57 call delete('Xtest') | |
58 | |
59 " Test 7: one line with multibyte words | |
60 %d _ | |
61 call append(1, ['Äne M¤ne Müh']) | |
62 call cursor([2, 99, 0]) | |
63 call assert_equal({'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_words': 3, | |
64 \ 'bytes': 17, 'cursor_bytes': 16}, wordcount()) | |
65 | |
66 " Test 8: several lines with multibyte words | |
67 %d _ | |
68 call append(1, ['Äne M¤ne Müh', 'und raus bist dü!']) | |
69 call cursor([3, 99, 0]) | |
70 call assert_equal({'chars': 32, 'cursor_chars': 31, 'words': 7, 'cursor_words': 7, | |
71 \ 'bytes': 36, 'cursor_bytes': 35}, wordcount()) | |
72 | |
73 " Visual map to capture wordcount() in visual mode | |
74 vnoremap <expr> <F2> execute("let g:visual_stat = wordcount()") | |
75 | |
76 " Test 9: visual mode, complete buffer | |
77 let g:visual_stat = {} | |
78 %d _ | |
79 call append(1, ['Äne M¤ne Müh', 'und raus bist dü!']) | |
80 " start visual mode and select the complete buffer | |
81 0 | |
82 exe "normal V2j\<F2>y" | |
83 call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 32, | |
84 \ 'visual_words': 7, 'visual_bytes': 36}, g:visual_stat) | |
85 | |
86 " Test 10: visual mode (empty) | |
87 %d _ | |
88 call append(1, ['Äne M¤ne Müh', 'und raus bist dü!']) | |
89 " start visual mode and select the complete buffer | |
90 0 | |
91 exe "normal v$\<F2>y" | |
92 call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 1, | |
93 \ 'visual_words': 0, 'visual_bytes': 1}, g:visual_stat) | |
94 | |
95 " Test 11: visual mode, single line | |
96 %d _ | |
97 call append(1, ['Äne M¤ne Müh', 'und raus bist dü!']) | |
98 " start visual mode and select the complete buffer | |
99 2 | |
100 exe "normal 0v$\<F2>y" | |
101 call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 13, | |
102 \ 'visual_words': 3, 'visual_bytes': 16}, g:visual_stat) | |
103 | |
104 set selection& fileformat& fileformats& | |
105 let &enc = save_enc | |
106 enew! | |
107 close | |
108 endfunc |