aboutsummaryrefslogtreecommitdiff
path: root/vim/.vim/bundle/vim-airline/t/airline.vim
blob: 78ab6d7cc0a1c69859a8a3207ef97ed919627b43 (plain)
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
let g:airline_theme = 'dark'
call airline#init#bootstrap()
call airline#init#sections()
source plugin/airline.vim

function! MyFuncref(...)
  call a:1.add_raw('hello world')
  return 1
endfunction

function! MyIgnoreFuncref(...)
  return -1
endfunction

function! MyAppend1(...)
  call a:1.add_raw('hello')
endfunction

function! MyAppend2(...)
  call a:1.add_raw('world')
endfunction

describe 'airline'
  before
    let g:airline_statusline_funcrefs = []
  end

  it 'should run user funcrefs first'
    call airline#add_statusline_func('MyFuncref')
    let &statusline = ''
    call airline#update_statusline()
    Expect airline#statusline(1) =~ 'hello world'
  end

  it 'should not change the statusline with -1'
    call airline#add_statusline_funcref(function('MyIgnoreFuncref'))
    let &statusline = 'foo'
    call airline#update_statusline()
    Expect &statusline == 'foo'
  end

  it 'should support multiple chained funcrefs'
    call airline#add_statusline_func('MyAppend1')
    call airline#add_statusline_func('MyAppend2')
    call airline#update_statusline()
    Expect airline#statusline(1) =~ 'helloworld'
  end

  it 'should allow users to redefine sections'
    let g:airline_section_a = airline#section#create(['mode', 'mode'])
    call airline#update_statusline()
    Expect airline#statusline(1) =~ '%{airline#util#wrap(airline#parts#mode(),0)}%#airline_a#%#airline_a_bold#%{airline#util#wrap(airline#parts#mode(),0)}%#airline_a#'
  end

  it 'should remove funcrefs properly'
    let c = len(g:airline_statusline_funcrefs)
    call airline#add_statusline_func('MyIgnoreFuncref')
    call airline#remove_statusline_func('MyIgnoreFuncref')
    Expect len(g:airline_statusline_funcrefs) == c
  end

  it 'should overwrite the statusline with active and inactive splits'
    wincmd s
    Expect airline#statusline(1) !~ 'inactive'
    Expect airline#statusline(2) =~ 'inactive'
    wincmd c
  end

  it 'should collapse the inactive split if the variable is set true'
    let g:airline_inactive_collapse = 1
    wincmd s
    Expect getwinvar(2, '&statusline') !~ 'airline#parts#mode'
    wincmd c
  end

  it 'should not collapse the inactive split if the variable is set false'
    let g:airline_inactive_collapse = 0
    wincmd s
    Expect getwinvar(2, '&statusline') != 'airline#parts#mode'
    wincmd c
  end

  it 'should include check_mode'
    Expect airline#statusline(1) =~ 'airline#check_mode'
  end
end