aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/007_ball_buffer_list_spec.lua
blob: 15f3b0b9b89190362a63da5997a72752410c0516 (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
-- Test for autocommand that changes the buffer list, when doing ":ball".

local n = require('test.functional.testnvim')()

local clear, feed, insert = n.clear, n.feed, n.insert
local feed_command, expect = n.feed_command, n.expect

describe(':ball', function()
  setup(clear)

  it('is working', function()
    -- Must disable 'hidden' so that the BufReadPost autocmd is triggered
    -- when Xxx2 is reloaded
    feed_command('set nohidden')
    insert([[
      start of test file Xxx
          this is a test
          this is a test
      end of test file Xxx]])

    feed_command('w! Xxx0')
    feed('gg')

    -- Write test file Xxx1
    feed('A1<esc>:.,/end of/w! Xxx1<cr>')
    feed_command('sp Xxx1')
    feed_command('close')

    -- Write test file Xxx2
    feed('$r2:.,/end of/w! Xxx2<cr>')
    feed_command('sp Xxx2')
    feed_command('close')

    -- Write test file Xxx3
    feed('$r3:.,/end of/w! Xxx3<cr>')
    feed_command('sp Xxx3')
    feed_command('close')

    feed_command('au BufReadPost Xxx2 bwipe')

    -- Open window for all args, close Xxx2
    feed('$r4:ball<cr>')

    -- Write contents of this file
    feed_command('%yank A')

    -- Append contents of second window (Xxx1)
    feed('')
    feed_command('%yank A')

    -- Append contents of last window (this file)
    feed('')
    feed_command('%yank A')

    feed_command('bf')
    feed_command('%d')
    feed_command('0put=@a')
    feed_command('$d')

    expect([[
      start of test file Xxx4
          this is a test
          this is a test
      end of test file Xxx
      start of test file Xxx1
          this is a test
          this is a test
      end of test file Xxx
      start of test file Xxx4
          this is a test
          this is a test
      end of test file Xxx]])
  end)

  teardown(function()
    os.remove('Xxx0')
    os.remove('Xxx1')
    os.remove('Xxx2')
    os.remove('Xxx3')
  end)
end)