aboutsummaryrefslogtreecommitdiff
path: root/test/functional/eval/match_functions_spec.lua
blob: 3150d89f62a3064a112608b21f3f8cf6c7875728 (plain) (blame)
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
local helpers = require('test.functional.helpers')(after_each)

local eq = helpers.eq
local clear = helpers.clear
local funcs = helpers.funcs
local command = helpers.command

before_each(clear)

describe('setmatches()', function()
  it('correctly handles case when both group and pattern entries are numbers',
  function()
    command('hi def link 1 PreProc')
    eq(0, funcs.setmatches({{group=1, pattern=2, id=3, priority=4}}))
    eq({{
      group='1',
      pattern='2',
      id=3,
      priority=4,
    }}, funcs.getmatches())
    eq(0, funcs.setmatches({{group=1, pattern=2, id=3, priority=4, conceal=5}}))
    eq({{
      group='1',
      pattern='2',
      id=3,
      priority=4,
      conceal='5',
    }}, funcs.getmatches())
    eq(0, funcs.setmatches({{group=1, pos1={2}, pos2={6}, id=3, priority=4, conceal=5}}))
    eq({{
      group='1',
      pos1={2},
      pos2={6},
      id=3,
      priority=4,
      conceal='5',
    }}, funcs.getmatches())
  end)

  it('fails with -1 if highlight group is not defined', function()
    eq(-1, funcs.setmatches({{group=1, pattern=2, id=3, priority=4}}))
    eq({}, funcs.getmatches())
    eq(-1, funcs.setmatches({{group=1, pos1={2}, pos2={6}, id=3, priority=4, conceal=5}}))
    eq({}, funcs.getmatches())
  end)
end)

describe('matchadd()', function()
  it('correctly works when first two arguments and conceal are numbers at once',
  function()
    command('hi def link 1 PreProc')
    eq(4, funcs.matchadd(1, 2, 3, 4, {conceal=5}))
    eq({{
      group='1',
      pattern='2',
      priority=3,
      id=4,
      conceal='5',
    }}, funcs.getmatches())
  end)
end)