1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 06:10:05 +08:00
SpaceVim/bundle/vim-bookmarks/t/bm_sign_spec.vim
2021-08-04 17:05:38 +08:00

124 lines
3.4 KiB
VimL

let g:bm_sign_index = 1
let g:bookmark_sign = 'xy'
let g:bookmark_annotation_sign = 'yz'
let g:bookmark_highlight_lines = 0
describe 'with uninitialized signs'
it 'should initialize'
call bm_sign#init()
Expect g:bm_sign_index ==# 1
Expect util#redir_execute(":sign list Bookmark") ==#
\ "sign Bookmark text=xy linehl= texthl=BookmarkSign"
Expect util#redir_execute(":sign list BookmarkAnnotation") ==#
\ "sign BookmarkAnnotation text=yz linehl= texthl=BookmarkAnnotationSign"
Expect split(util#redir_execute(":highlight BookmarkSignDefault"), '\n')[0] ==#
\ "BookmarkSignDefault xxx ctermfg=33"
Expect split(util#redir_execute(":highlight BookmarkAnnotationSignDefault"), '\n')[0] ==#
\ "BookmarkAnnotationSignDefault xxx ctermfg=28"
Expect split(util#redir_execute(":highlight BookmarkLineDefault"), '\n')[0] ==#
\ "BookmarkLineDefault xxx ctermfg=232 ctermbg=33"
Expect split(util#redir_execute(":highlight BookmarkAnnotationLineDefault"), '\n')[0] ==#
\ "BookmarkAnnotationLineDefault xxx ctermfg=232 ctermbg=28"
end
it 'should initialize with line highlight'
let g:bookmark_highlight_lines = 1
call bm_sign#init()
Expect util#redir_execute(":sign list Bookmark") ==#
\ "sign Bookmark text=xy linehl=BookmarkLine texthl=BookmarkSign"
end
end
describe "with initialized signs"
before
let g:bm_sign_index = 1
call bm_sign#init()
execute ":new"
execute ":e LICENSE"
let g:test_file = expand("%:p")
end
it 'should add signs'
Expect bm_sign#add(g:test_file, 2, 0) ==# 1
Expect bm_sign#add(g:test_file, 10, 1) ==# 2
let signs = util#redir_execute(":sign place file=". g:test_file)
let lines = bm_sign#lines_for_signs(g:test_file)
Expect g:bm_sign_index ==# 3
Expect len(split(signs, '\n')) ==# 4
Expect lines ==# {'1': '2', '2': '10'}
end
it 'should delete signs'
let idx1 = bm_sign#add(g:test_file, 2, 0)
let idx2 = bm_sign#add(g:test_file, 10, 0)
Expect idx1 ==# 1
Expect idx2 ==# 2
call bm_sign#del(g:test_file, idx1)
call bm_sign#del(g:test_file, idx2)
let signs = util#redir_execute(":sign place file=". g:test_file)
let lines = bm_sign#lines_for_signs(g:test_file)
Expect lines ==# {}
Expect len(split(signs, '\n')) ==# 1
end
it 'should not fail to delete signs from invalid buffer'
call bm_sign#del("invalid", 1)
end
after
execute ":q!"
end
end
describe "with added signs"
before
let g:bm_sign_index = 3
call bm_sign#init()
execute ":new"
execute ":e LICENSE"
let g:test_file = expand("%:p")
end
it 'should add sign with lower index'
call bm_sign#add_at(g:test_file, 1, 5, 0)
Expect g:bm_sign_index ==# 3
end
it 'should add sign with equal index'
call bm_sign#add_at(g:test_file, 3, 5, 0)
Expect g:bm_sign_index ==# 4
end
it 'should add sign with higher index'
call bm_sign#add_at(g:test_file, 4, 5, 0)
Expect g:bm_sign_index ==# 5
end
it 'should transform sign to annotation'
call bm_sign#add_at(g:test_file, 4, 5, 0)
call bm_sign#update_at(g:test_file, 4, 5, 1)
let signs = util#redir_execute(":sign place file=". g:test_file)
let lines = split(signs, "\n")
Expect match(lines, 'name=bookmarkannotation\c') ># 0
end
after
execute "sign unplace *"
execute ":q!"
end
end