aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/105_filename_modifiers_spec.lua
blob: 3413667022e1cc0651d2895697831f07d0fefe73 (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
-- Test filename modifiers.

local helpers = require('test.functional.helpers')
local clear = helpers.clear
local execute, expect = helpers.execute, helpers.expect

describe('filename modifiers', function()
  setup(clear)

  it('is working', function()
    local tmpdir = helpers.nvim('eval', 'resolve("/tmp")')

    execute('cd ' .. tmpdir)
    execute([=[set shell=sh]=])
    execute([=[set shellslash]=])
    execute([=[let tab="\t"]=])
    execute([=[command -nargs=1 Put :let expr=<q-args> | $put =expr.tab.strtrans(string(eval(expr)))]=])
    execute([=[let $HOME=fnamemodify('.', ':p:h:h:h')]=])
    execute([=[Put fnamemodify('.',              ':p'      )[-1:]]=])
    execute([=[Put fnamemodify('.',              ':p:h'    )[-1:]]=])
    execute([=[Put fnamemodify('test.out',       ':p'      )[-1:]]=])
    execute([=[Put fnamemodify('test.out',       ':.'      )]=])
    execute([=[Put fnamemodify('../testdir/a',   ':.'      )]=])
    execute([=[Put fnamemodify('test.out',       ':~'      )]=])
    execute([=[Put fnamemodify('../testdir/a',   ':~'      )]=])
    execute([=[Put fnamemodify('../testdir/a',   ':t'      )]=])
    execute([=[Put fnamemodify('.',              ':p:t'    )]=])
    execute([=[Put fnamemodify('test.out',       ':p:t'    )]=])
    execute([=[Put fnamemodify('test.out',       ':p:e'    )]=])
    execute([=[Put fnamemodify('test.out',       ':p:t:e'  )]=])
    execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r'      )]=])
    execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r:r'    )]=])
    execute([=[Put fnamemodify('abc.fb2.tar.gz', ':r:r:r'  )]=])
    execute([=[Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '')]=])
    execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e'      )]=])
    execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e'    )]=])
    execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:e'  )]=])
    execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:e:e')]=])
    execute([=[Put fnamemodify('abc.fb2.tar.gz', ':e:e:r'  )]=])
    execute([=[Put fnamemodify('abc def',        ':S'      )]=])
    execute([=[Put fnamemodify('abc" "def',      ':S'      )]=])
    execute([=[Put fnamemodify('abc"%"def',      ':S'      )]=])
    execute([=[Put fnamemodify('abc'' ''def',    ':S'      )]=])
    execute([=[Put fnamemodify('abc''%''def',    ':S'      )]=])
    execute([=[Put fnamemodify("abc\ndef",       ':S'      )]=])
    execute([=[set shell=tcsh]=])
    execute([=[Put fnamemodify("abc\ndef",       ':S'      )]=])
    execute([=[1 delete _]=])

    -- Assert buffer contents.
    expect([=[
      fnamemodify('.',              ':p'      )[-1:]	'/'
      fnamemodify('.',              ':p:h'    )[-1:]	'p'
      fnamemodify('test.out',       ':p'      )[-1:]	't'
      fnamemodify('test.out',       ':.'      )	'test.out'
      fnamemodify('../testdir/a',   ':.'      )	'../testdir/a'
      fnamemodify('test.out',       ':~'      )	'test.out'
      fnamemodify('../testdir/a',   ':~'      )	'../testdir/a'
      fnamemodify('../testdir/a',   ':t'      )	'a'
      fnamemodify('.',              ':p:t'    )	''
      fnamemodify('test.out',       ':p:t'    )	'test.out'
      fnamemodify('test.out',       ':p:e'    )	'out'
      fnamemodify('test.out',       ':p:t:e'  )	'out'
      fnamemodify('abc.fb2.tar.gz', ':r'      )	'abc.fb2.tar'
      fnamemodify('abc.fb2.tar.gz', ':r:r'    )	'abc.fb2'
      fnamemodify('abc.fb2.tar.gz', ':r:r:r'  )	'abc'
      substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(nvim/testdir/.*\)', '\1', '')	']=] .. tmpdir .. [=[/abc.fb2'
      fnamemodify('abc.fb2.tar.gz', ':e'      )	'gz'
      fnamemodify('abc.fb2.tar.gz', ':e:e'    )	'tar.gz'
      fnamemodify('abc.fb2.tar.gz', ':e:e:e'  )	'fb2.tar.gz'
      fnamemodify('abc.fb2.tar.gz', ':e:e:e:e')	'fb2.tar.gz'
      fnamemodify('abc.fb2.tar.gz', ':e:e:r'  )	'tar'
      fnamemodify('abc def',        ':S'      )	'''abc def'''
      fnamemodify('abc" "def',      ':S'      )	'''abc" "def'''
      fnamemodify('abc"%"def',      ':S'      )	'''abc"%"def'''
      fnamemodify('abc'' ''def',    ':S'      )	'''abc''\'''' ''\''''def'''
      fnamemodify('abc''%''def',    ':S'      )	'''abc''\''''%''\''''def'''
      fnamemodify("abc\ndef",       ':S'      )	'''abc^@def'''
      fnamemodify("abc\ndef",       ':S'      )	'''abc\^@def''']=])
  end)
end)