1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 05:40:05 +08:00
SpaceVim/bundle/incsearch.vim/test/util.vim

88 lines
3.9 KiB
VimL
Raw Normal View History

let s:suite = themis#suite('util')
let s:assert = themis#helper('assert')
function! s:suite.after_each()
set ignorecase& smartcase&
endfunction
function! s:suite.parse_pattern()
call s:assert.equals(
\ incsearch#parse_pattern('pattern/e', '/'), ['pattern', 'e'])
call s:assert.equals(
\ incsearch#parse_pattern('{pattern\/pattern}/{offset}', '/'),
\ ['{pattern\/pattern}', '{offset}'])
call s:assert.equals(
\ incsearch#parse_pattern('{pattern}/;/{newpattern} :h //;', '/'),
\ ['{pattern}', ';/{newpattern} :h //;'])
call s:assert.equals(
\ incsearch#parse_pattern('pattern?e', '?'), ['pattern', 'e'])
call s:assert.equals(
\ incsearch#parse_pattern('pattern?e', '/'), ['pattern?e', ''])
call s:assert.equals(
\ incsearch#parse_pattern('{pattern\?pattern}?{offset}', '?'),
\ ['{pattern\?pattern}', '{offset}'])
endfunction
function! s:suite.detect_case()
set noignorecase nosmartcase
call s:assert.equals(incsearch#detect_case('pattern'), '\C')
call s:assert.equals(incsearch#detect_case('PatterN'), '\C')
set ignorecase nosmartcase
call s:assert.equals(incsearch#detect_case('pattern'), '\c')
call s:assert.equals(incsearch#detect_case('PatterN'), '\c')
set noignorecase smartcase
call s:assert.equals(incsearch#detect_case('pattern'), '\C')
call s:assert.equals(incsearch#detect_case('PatterN'), '\C')
set ignorecase smartcase
call s:assert.equals(incsearch#detect_case('pattern'), '\c')
call s:assert.equals(incsearch#detect_case('PatterN'), '\C')
endfunction
function! s:suite.detect_case_ignore_uppercase_escaped_letters()
set noignorecase nosmartcase
call s:assert.equals(incsearch#detect_case('\Vpattern'), '\C')
call s:assert.equals(incsearch#detect_case('\VPatterN'), '\C')
set ignorecase nosmartcase
call s:assert.equals(incsearch#detect_case('\Vpattern'), '\c')
call s:assert.equals(incsearch#detect_case('\VPatterN'), '\c')
set noignorecase smartcase
call s:assert.equals(incsearch#detect_case('\Vpattern'), '\C')
call s:assert.equals(incsearch#detect_case('\VPatterN'), '\C')
set ignorecase smartcase
call s:assert.equals(incsearch#detect_case('\Vpattern'), '\c')
call s:assert.equals(incsearch#detect_case('\VPatterN'), '\C')
endfunction
function! s:suite.detect_case_explicit_flag()
set noignorecase nosmartcase
call s:assert.equals(incsearch#detect_case('\cpattern'), '\c')
call s:assert.equals(incsearch#detect_case('\Cpattern'), '\C')
call s:assert.equals(incsearch#detect_case('\CPatterN'), '\C')
call s:assert.equals(incsearch#detect_case('\cPatterN'), '\c')
set ignorecase nosmartcase
call s:assert.equals(incsearch#detect_case('\cpattern'), '\c')
call s:assert.equals(incsearch#detect_case('\Cpattern'), '\C')
call s:assert.equals(incsearch#detect_case('\CPatterN'), '\C')
call s:assert.equals(incsearch#detect_case('\cPatterN'), '\c')
set noignorecase smartcase
call s:assert.equals(incsearch#detect_case('\cpattern'), '\c')
call s:assert.equals(incsearch#detect_case('\Cpattern'), '\C')
call s:assert.equals(incsearch#detect_case('\CPatterN'), '\C')
call s:assert.equals(incsearch#detect_case('\cPatterN'), '\c')
set ignorecase smartcase
call s:assert.equals(incsearch#detect_case('\cpattern'), '\c')
call s:assert.equals(incsearch#detect_case('\Cpattern'), '\C')
call s:assert.equals(incsearch#detect_case('\CPatterN'), '\C')
call s:assert.equals(incsearch#detect_case('\cPatterN'), '\c')
endfunction
function! s:suite.detect_case_parcent()
set ignorecase smartcase
call s:assert.equals(incsearch#detect_case('\%Cpattern'), '\c')
call s:assert.equals(incsearch#detect_case('\%Vpattern'), '\c')
call s:assert.equals(incsearch#detect_case('\%Upattern'), '\c')
call s:assert.equals(incsearch#detect_case('\%Apattern'), '\C')
call s:assert.equals(incsearch#detect_case('\%V\%Vpattern'), '\c')
call s:assert.equals(incsearch#detect_case('\V\Vpattern'), '\c')
endfunction