~ubuntu-branches/debian/sid/neovim/sid

« back to all changes in this revision

Viewing changes to test/functional/legacy/command_count_spec.lua

  • Committer: Package Import Robot
  • Author(s): James McCoy
  • Date: 2016-04-18 21:42:19 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20160418214219-1e6d4o1fwqarzk46
Tags: 0.1.3-1
* New upstream release.  (Closes: #820562)
* debian/control:
  + Remove unnecessary luarocks Build-Depends
  + Add libkvm-dev Build-Depends for kfreebsd-*
  + Add python(3)-neovim to Recommends.  (Closes: #812737)
  + Declare compiance with policy 3.9.8, no changes needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
-- Test for user command counts
 
2
 
 
3
local helpers = require('test.functional.helpers')
 
4
local clear, source, expect = helpers.clear, helpers.source, helpers.expect
 
5
local execute, spawn = helpers.execute, helpers.spawn
 
6
local nvim_prog = helpers.nvim_prog
 
7
 
 
8
describe('command_count', function()
 
9
  setup(clear)
 
10
  teardown(function()
 
11
    os.remove('test.out')
 
12
  end)
 
13
 
 
14
  it('is working', function()
 
15
    -- It is relevant for the test to load a file initially.  If this is
 
16
    -- emulated with :arg the buffer count is wrong as nvim creates an empty
 
17
    -- buffer if it was started without a filename.
 
18
    local nvim2 = spawn({nvim_prog, '-u', 'NONE', '-i', 'NONE', '--embed',
 
19
                                    'test_command_count.in'})
 
20
    helpers.set_session(nvim2)
 
21
 
 
22
    source([[
 
23
      lang C
 
24
      let g:lines = []
 
25
      com -range=% RangeLines
 
26
        \ :call add(g:lines, 'RangeLines '.<line1>.' '.<line2>)
 
27
      com -range -addr=arguments RangeArguments
 
28
        \ :call add(g:lines, 'RangeArguments '.<line1>.' '.<line2>)
 
29
      com -range=% -addr=arguments RangeArgumentsAll
 
30
        \ :call add(g:lines, 'RangeArgumentsAll '.<line1>.' '.<line2>)
 
31
      com -range -addr=loaded_buffers RangeLoadedBuffers
 
32
        \ :call add(g:lines, 'RangeLoadedBuffers '.<line1>.' '.<line2>)
 
33
      com -range=% -addr=loaded_buffers RangeLoadedBuffersAll
 
34
        \ :call add(g:lines, 'RangeLoadedBuffersAll '.<line1>.' '.<line2>)
 
35
      com -range -addr=buffers RangeBuffers
 
36
        \ :call add(g:lines, 'RangeBuffers '.<line1>.' '.<line2>)
 
37
      com -range=% -addr=buffers RangeBuffersAll
 
38
        \ :call add(g:lines, 'RangeBuffersAll '.<line1>.' '.<line2>)
 
39
      com -range -addr=windows RangeWindows
 
40
        \ :call add(g:lines, 'RangeWindows '.<line1>.' '.<line2>)
 
41
      com -range=% -addr=windows RangeWindowsAll
 
42
        \ :call add(g:lines, 'RangeWindowsAll '.<line1>.' '.<line2>)
 
43
      com -range -addr=tabs RangeTabs
 
44
        \ :call add(g:lines, 'RangeTabs '.<line1>.' '.<line2>)
 
45
      com -range=% -addr=tabs RangeTabsAll
 
46
        \ :call add(g:lines, 'RangeTabsAll '.<line1>.' '.<line2>)
 
47
      set hidden
 
48
      arga a b c d
 
49
      argdo echo "loading buffers"
 
50
      argu 3
 
51
      .-,$-RangeArguments
 
52
      %RangeArguments
 
53
      RangeArgumentsAll
 
54
      N
 
55
      .RangeArguments
 
56
      split
 
57
      split
 
58
      split
 
59
      split
 
60
      3wincmd w
 
61
      .,$RangeWindows
 
62
      %RangeWindows
 
63
      RangeWindowsAll
 
64
      only
 
65
      blast
 
66
      bd
 
67
      .,$RangeLoadedBuffers
 
68
      %RangeLoadedBuffers
 
69
      RangeLoadedBuffersAll
 
70
      .,$RangeBuffers
 
71
      %RangeBuffers
 
72
      RangeBuffersAll
 
73
      tabe
 
74
      tabe
 
75
      tabe
 
76
      tabe
 
77
      normal 2gt
 
78
      .,$RangeTabs
 
79
      %RangeTabs
 
80
      RangeTabsAll
 
81
      1tabonly
 
82
      s/\n/\r\r\r\r\r/
 
83
      2ma<
 
84
      $-ma>
 
85
      '<,'>RangeLines
 
86
      com -range=% -buffer LocalRangeLines
 
87
        \ :call add(g:lines, 'LocalRangeLines '.<line1>.' '.<line2>)
 
88
      '<,'>LocalRangeLines
 
89
      b1
 
90
      call add(g:lines, '')
 
91
      %argd
 
92
      arga a b c d
 
93
      ]])
 
94
    -- This can not be in the source() call as it will produce errors.
 
95
    execute([[let v:errmsg = '']])
 
96
    execute('5argu')
 
97
    execute([[call add(g:lines, '5argu ' . v:errmsg)]])
 
98
    execute('$argu')
 
99
    execute([[call add(g:lines, '4argu ' . expand('%:t'))]])
 
100
    execute([[let v:errmsg = '']])
 
101
    execute('1argu')
 
102
    execute([[call add(g:lines, '1argu ' . expand('%:t'))]])
 
103
    execute([[let v:errmsg = '']])
 
104
    execute('100b')
 
105
    execute([[call add(g:lines, '100b ' . v:errmsg)]])
 
106
    execute('split')
 
107
    execute('split')
 
108
    execute('split')
 
109
    execute('split')
 
110
    execute([[let v:errmsg = '']])
 
111
    execute('0close')
 
112
    execute([[call add(g:lines, '0close ' . v:errmsg)]])
 
113
    execute('$wincmd w')
 
114
    execute('$close')
 
115
    execute([[call add(g:lines, '$close ' . winnr())]])
 
116
    execute([[let v:errmsg = '']])
 
117
    execute('$+close')
 
118
    execute([[call add(g:lines, '$+close ' . v:errmsg)]])
 
119
    execute('$tabe')
 
120
    execute([[call add(g:lines, '$tabe ' . tabpagenr())]])
 
121
    execute([[let v:errmsg = '']])
 
122
    execute('$+tabe')
 
123
    execute([[call add(g:lines, '$+tabe ' . v:errmsg)]])
 
124
    source([[
 
125
      only!
 
126
      e x
 
127
      0tabm
 
128
      normal 1gt
 
129
      call add(g:lines, '0tabm ' . expand('%:t'))
 
130
      tabonly!
 
131
      only!
 
132
      e! test.out
 
133
      call append(0, g:lines)
 
134
      unlet g:lines
 
135
      w
 
136
      bd
 
137
      b1
 
138
      let g:lines = []
 
139
      func BufStatus()
 
140
        call add(g:lines,
 
141
          \  'aaa: ' . buflisted(g:buf_aaa) . 
 
142
          \ ' bbb: ' . buflisted(g:buf_bbb) . 
 
143
          \ ' ccc: ' . buflisted(g:buf_ccc))
 
144
      endfunc
 
145
      se nohidden
 
146
      e aaa
 
147
      let buf_aaa = bufnr('%')
 
148
      e bbb
 
149
      let buf_bbb = bufnr('%')
 
150
      e ccc
 
151
      let buf_ccc = bufnr('%')
 
152
      b1
 
153
      call BufStatus()
 
154
      exe buf_bbb . "," . buf_ccc . "bdelete"
 
155
      call BufStatus()
 
156
      exe buf_aaa . "bdelete"
 
157
      call BufStatus()
 
158
      e! test.out
 
159
      call append('$', g:lines)
 
160
      unlet g:lines
 
161
      delfunc BufStatus
 
162
      w
 
163
      bd
 
164
      b1
 
165
      se hidden
 
166
      only!
 
167
      let g:lines = []
 
168
      %argd
 
169
      arga a b c d e f
 
170
      3argu
 
171
      let args = ''
 
172
      .,$-argdo let args .= ' '.expand('%')
 
173
      call add(g:lines, 'argdo:' . args)
 
174
      split
 
175
      split
 
176
      split
 
177
      split
 
178
      2wincmd w
 
179
      let windows = ''
 
180
      .,$-windo let windows .= ' '.winnr()
 
181
      call add(g:lines, 'windo:'. windows)
 
182
      b2
 
183
      let buffers = ''
 
184
      .,$-bufdo let buffers .= ' '.bufnr('%')
 
185
      call add(g:lines, 'bufdo:' . buffers)
 
186
      3bd
 
187
      let buffers = ''
 
188
      3,7bufdo let buffers .= ' '.bufnr('%')
 
189
      call add(g:lines, 'bufdo:' . buffers)
 
190
      tabe
 
191
      tabe
 
192
      tabe
 
193
      tabe
 
194
      normal! 2gt
 
195
      let tabpages = ''
 
196
      .,$-tabdo let tabpages .= ' '.tabpagenr()
 
197
      call add(g:lines, 'tabdo:' . tabpages)
 
198
      e! test.out
 
199
      call append('$', g:lines)
 
200
    ]])
 
201
 
 
202
    -- Assert buffer contents.
 
203
    expect([[
 
204
      RangeArguments 2 4
 
205
      RangeArguments 1 5
 
206
      RangeArgumentsAll 1 5
 
207
      RangeArguments 2 2
 
208
      RangeWindows 3 5
 
209
      RangeWindows 1 5
 
210
      RangeWindowsAll 1 5
 
211
      RangeLoadedBuffers 2 4
 
212
      RangeLoadedBuffers 1 4
 
213
      RangeLoadedBuffersAll 1 4
 
214
      RangeBuffers 2 5
 
215
      RangeBuffers 1 5
 
216
      RangeBuffersAll 1 5
 
217
      RangeTabs 2 5
 
218
      RangeTabs 1 5
 
219
      RangeTabsAll 1 5
 
220
      RangeLines 2 5
 
221
      LocalRangeLines 2 5
 
222
      
 
223
      5argu E16: Invalid range
 
224
      4argu d
 
225
      1argu a
 
226
      100b E16: Invalid range
 
227
      0close 
 
228
      $close 3
 
229
      $+close E16: Invalid range
 
230
      $tabe 2
 
231
      $+tabe E16: Invalid range
 
232
      0tabm x
 
233
      
 
234
      aaa: 1 bbb: 1 ccc: 1
 
235
      aaa: 1 bbb: 0 ccc: 0
 
236
      aaa: 0 bbb: 0 ccc: 0
 
237
      argdo: c d e
 
238
      windo: 2 3 4
 
239
      bufdo: 2 3 4 5 6 7 8 9 10 15
 
240
      bufdo: 4 5 6 7
 
241
      tabdo: 2 3 4]])
 
242
  end)
 
243
end)