init.vimspec 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. Describe init.vim
  2. function! s:clear()
  3. for key in s:sections
  4. unlet! g:airline_section_{key}
  5. endfor
  6. endfunction
  7. let s:sections = ['a', 'b', 'c', 'gutter', 'x', 'y', 'z', 'warning']
  8. call airline#init#bootstrap()
  9. Before each
  10. call s:clear()
  11. call airline#init#sections()
  12. End
  13. It section a should have mode, paste, spell, iminsert
  14. Assert Match(g:airline_section_a, 'mode')
  15. Assert Match(g:airline_section_a, 'paste')
  16. Assert Match(g:airline_section_a, 'spell')
  17. Assert Match(g:airline_section_a, 'iminsert')
  18. End
  19. It section b should be blank because no extensions are installed
  20. Assert Equals(g:airline_section_b, '')
  21. End
  22. It section c should be file and coc_status
  23. set noautochdir
  24. call airline#init#sections()
  25. Assert Equals(g:airline_section_c, '%<%f%m %#__accent_red#%{airline#util#wrap(airline#parts#readonly(),0)}%#__restore__#%#__accent_bold#%#__restore__#%#__accent_bold#%#__restore__#')
  26. End
  27. It section c should be path and coc_status
  28. set autochdir
  29. call s:clear()
  30. call airline#init#sections()
  31. Assert Equals(g:airline_section_c, '%<%F%m %#__accent_red#%{airline#util#wrap(airline#parts#readonly(),0)}%#__restore__#%#__accent_bold#%#__restore__#%#__accent_bold#%#__restore__#')
  32. End
  33. It section x should be filetype
  34. Assert Equals(g:airline_section_x, '%#__accent_bold#%#__restore__#%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#prepend("",0)}%{airline#util#wrap(airline#parts#filetype(),0)}')
  35. End
  36. It section y should be fenc and ff
  37. Assert Equals(g:airline_section_y, '%{airline#util#wrap(airline#parts#ffenc(),0)}')
  38. End
  39. It section z should be line numbers
  40. Assert Match(g:airline_section_z, '%p%%')
  41. Assert Match(g:airline_section_z, '%l')
  42. Assert Match(g:airline_section_z, '%v')
  43. End
  44. It section gutter should be blank unless csv extension is installed
  45. " Note: the csv extension uses only the window local variable
  46. Assert Equals(g:airline_section_gutter, '%=')
  47. End
  48. It section warning should be blank
  49. Assert Match(g:airline_section_warning, '')
  50. End
  51. It should not redefine sections already defined
  52. for s in s:sections
  53. let g:airline_section_{s} = s
  54. endfor
  55. call airline#init#bootstrap()
  56. for s in s:sections
  57. Assert Equals(g:airline_section_{s}, s)
  58. endfor
  59. End
  60. It all default statusline extensions should be blank
  61. Assert Equals(airline#parts#get('ale_error_count').raw, '')
  62. Assert Equals(airline#parts#get('ale_warning_count').raw, '')
  63. Assert Equals(airline#parts#get('lsp_error_count').raw, '')
  64. Assert Equals(airline#parts#get('lsp_warning_count').raw, '')
  65. Assert Equals(airline#parts#get('nvimlsp_error_count').raw, '')
  66. Assert Equals(airline#parts#get('nvimlsp_warning_count').raw, '')
  67. Assert Equals(airline#parts#get('hunks').raw, '')
  68. Assert Equals(airline#parts#get('branch').raw, '')
  69. Assert Equals(airline#parts#get('eclim').raw, '')
  70. Assert Equals(airline#parts#get('neomake_error_count').raw, '')
  71. Assert Equals(airline#parts#get('neomake_warning_count').raw, '')
  72. Assert Equals(airline#parts#get('obsession').raw, '')
  73. Assert Equals(airline#parts#get('syntastic-err').raw, '')
  74. Assert Equals(airline#parts#get('syntastic-warn').raw, '')
  75. Assert Equals(airline#parts#get('tagbar').raw , '')
  76. Assert Equals(airline#parts#get('whitespace').raw, '')
  77. Assert Equals(airline#parts#get('windowswap').raw , '')
  78. Assert Equals(airline#parts#get('ycm_error_count').raw, '')
  79. Assert Equals(airline#parts#get('ycm_warning_count').raw, '')
  80. Assert Equals(airline#parts#get('languageclient_error_count').raw, '')
  81. Assert Equals(airline#parts#get('languageclient_warning_count').raw, '')
  82. Assert Equals(airline#parts#get('coc_status').raw, '')
  83. Assert Equals(airline#parts#get('coc_current_function').raw, '')
  84. Assert Equals(airline#parts#get('vista').raw, '')
  85. Assert Equals(airline#parts#get('coc_warning_count').raw, '')
  86. Assert Equals(airline#parts#get('coc_error_count').raw, '')
  87. Assert Equals(airline#parts#get('battery').raw, '')
  88. End
  89. it should not redefine parts already defined
  90. call airline#parts#define_raw('linenr', 'bar')
  91. call s:clear()
  92. call airline#init#sections()
  93. Assert Match(g:airline_section_z, 'bar')
  94. End
  95. End