aboutsummaryrefslogtreecommitdiff
path: root/.vim/t/airline.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim/t/airline.vim')
-rw-r--r--.vim/t/airline.vim86
1 files changed, 86 insertions, 0 deletions
diff --git a/.vim/t/airline.vim b/.vim/t/airline.vim
new file mode 100644
index 0000000..1569cc4
--- /dev/null
+++ b/.vim/t/airline.vim
@@ -0,0 +1,86 @@
+let g:airline_theme = 'dark'
+
+source plugin/airline.vim
+doautocmd VimEnter
+
+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