summaryrefslogtreecommitdiff
path: root/test/test_should_do_nothing_conditions.vader
blob: 6dfed555406bab06781a72ada8d79aa05d5b0fd3 (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
88
Before:
  Save g:ale_filetype_blacklist
  Save g:ale_maximum_file_size
  Save g:ale_enabled
  Save &l:statusline

  let b:fake_mode = 'n'

  call ale#test#SetDirectory('/testplugin/test')

  let b:funky_command_created = 0

  runtime autoload/ale/util.vim

  function! ale#util#Mode(...) abort
    return b:fake_mode
  endfunction

  " We will test for the existence of this command, so create one if needed.
  if !exists(':CtrlPFunky')
    command CtrlPFunky echo
    let b:funky_command_created = 1
  endif

After:
  Restore

  call ale#test#RestoreDirectory()

  if b:funky_command_created
    delcommand CtrlPFunky
    let b:funky_command_created = 0
  endif

  unlet! b:funky_command_created
  unlet! b:fake_mode

  if &diff is 1
    let &diff = 0
  endif

  runtime autoload/ale/util.vim

Given foobar(An empty file):
Execute(ALE shouldn't do much of anything for ctrlp-funky buffers):
  Assert !ale#ShouldDoNothing(bufnr('')), 'The preliminary check failed'

  let &l:statusline = '%#CtrlPMode2# prt %*%#CtrlPMode1# line %* <mru>={%#CtrlPMode1# funky %*}=<fil> <-> %=%<%#CtrlPMode2# %{getcwd()} %*'

  Assert ale#ShouldDoNothing(bufnr(''))

Execute(ALE shouldn't try to check buffers with '.' as the filename):
  AssertEqual
  \ 0,
  \ ale#ShouldDoNothing(bufnr('')),
  \ 'ShouldDoNothing() was 1 for some other reason'

  silent! noautocmd file .

  Assert ale#ShouldDoNothing(bufnr(''))

Execute(DoNothing should return 1 when the filetype is empty):
  AssertEqual
  \ 0,
  \ ale#ShouldDoNothing(bufnr('')),
  \ 'ShouldDoNothing() was 1 for some other reason'

  set filetype=

  AssertEqual 1, ale#ShouldDoNothing(bufnr(''))

Execute(DoNothing should return 1 when an operator is pending):
  let b:fake_mode = 'no'

  AssertEqual 1, ale#ShouldDoNothing(bufnr(''))

Execute(DoNothing should return 1 for diff buffers):
  let &diff = 1

  AssertEqual 1, ale#ShouldDoNothing(bufnr(''))

Execute(The DoNothing check should work if the ALE globals aren't defined):
  unlet! g:ale_filetype_blacklist
  unlet! g:ale_maximum_file_size
  unlet! g:ale_enabled

  " This shouldn't throw exceptions.
  call ale#ShouldDoNothing(bufnr(''))