blob: 78e71b5fb1bea47b7b00224ae2ed762b113b35f3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
-- Test for commands that close windows and/or buffers
-- :quit
-- :close
-- :hide
-- :only
-- :sall
-- :all
-- :ball
-- :buf
-- :edit
local helpers = require('test.functional.helpers')
local feed, insert, source = helpers.feed, helpers.insert, helpers.source
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
describe('Commands that close windows and/or buffers', function()
setup(clear)
it('is working', function()
insert('testtext')
feed('GA 1<Esc>:$w! Xtest1<CR>')
feed('$r2:$w! Xtest2<CR>')
feed('$r3:$w! Xtest3<CR>')
execute('n! Xtest1 Xtest2')
feed('A 1<Esc>:set hidden<CR>')
-- Test for working :n when hidden set
execute('n')
expect('testtext 2')
-- Test for failing :rew when hidden not set
execute('set nohidden')
feed('A 2<Esc>:rew<CR>')
expect('testtext 2 2')
-- Test for working :rew when hidden set
execute('set hidden')
execute('rew')
expect('testtext 1 1')
-- Test for :all keeping a buffer when it's modified
execute('set nohidden')
feed('A 1<Esc>:sp<CR>')
execute('n Xtest2 Xtest3')
execute('all')
execute('1wincmd w')
expect('testtext 1 1 1')
-- Test abandoning changed buffer, should be unloaded even when 'hidden' set
execute('set hidden')
feed('A 1<Esc>:q!<CR>')
expect('testtext 2 2')
execute('unhide')
expect('testtext 2 2')
-- Test ":hide" hides anyway when 'hidden' not set
execute('set nohidden')
feed('A 2<Esc>:hide<CR>')
expect('testtext 3')
-- Test ":edit" failing in modified buffer when 'hidden' not set
feed('A 3<Esc>:e Xtest1<CR>')
expect('testtext 3 3')
-- Test ":edit" working in modified buffer when 'hidden' set
execute('set hidden')
execute('e Xtest1')
expect('testtext 1')
-- Test ":close" not hiding when 'hidden' not set in modified buffer
execute('sp Xtest3')
execute('set nohidden')
feed('A 3<Esc>:close<CR>')
expect('testtext 3 3 3')
-- Test ":close!" does hide when 'hidden' not set in modified buffer
feed('A 3<Esc>:close!<CR>')
execute('set nohidden')
expect('testtext 1')
-- Test ":all!" hides changed buffer
execute('sp Xtest4')
feed('GA 4<Esc>:all!<CR>')
execute('1wincmd w')
expect('testtext 2 2 2')
end)
teardown(function()
os.remove('Xtest1')
os.remove('Xtest2')
os.remove('Xtest3')
end)
end)
|