aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/backspace_opt_spec.lua
blob: 90bc6f74f00cc0c08ab953df018adc05738fa5c8 (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
62
63
64
65
66
67
local helpers = require('test.functional.helpers')(after_each)
local call, clear = helpers.call, helpers.clear
local source, eq, nvim = helpers.source, helpers.eq, helpers.meths

describe("test 'backspace' settings", function()
  before_each(function()
    clear()

    source([[
      func Exec(expr)
        let str=''
        try
          exec a:expr
        catch /.*/
          let str=v:exception
        endtry
        return str
      endfunc

      func Test_backspace_option()
        set backspace=
        call assert_equal('', &backspace)
        set backspace=indent
        call assert_equal('indent', &backspace)
        set backspace=eol
        call assert_equal('eol', &backspace)
        set backspace=start
        call assert_equal('start', &backspace)
        " Add the value
        set backspace=
        set backspace=indent
        call assert_equal('indent', &backspace)
        set backspace+=eol
        call assert_equal('indent,eol', &backspace)
        set backspace+=start
        call assert_equal('indent,eol,start', &backspace)
        " Delete the value
        set backspace-=indent
        call assert_equal('eol,start', &backspace)
        set backspace-=start
        call assert_equal('eol', &backspace)
        set backspace-=eol
        call assert_equal('', &backspace)
        " Check the error
        call assert_equal(0, match(Exec('set backspace=ABC'), '.*E474'))
        call assert_equal(0, match(Exec('set backspace+=def'), '.*E474'))
        " NOTE: Vim doesn't check following error...
        "call assert_equal(0, match(Exec('set backspace-=ghi'), '.*E474'))

        " Check backwards compatibility with version 5.4 and earlier
        set backspace=0
        call assert_equal('0', &backspace)
        set backspace=1
        call assert_equal('1', &backspace)
        set backspace=2
        call assert_equal('2', &backspace)
        call assert_false(match(Exec('set backspace=3'), '.*E474'))
        call assert_false(match(Exec('set backspace=10'), '.*E474'))
      endfunc
    ]])
  end)

  it('works', function()
    call('Test_backspace_option')
    eq({}, nvim.get_vvar('errors'))
  end)
end)