blob: e92ea1b8e0cf7b09f3f1c60a50b7da77cfc7467a [file] [log] [blame]
Bram Moolenaarc9703302016-01-17 21:49:33 +01001Tests for getcwd(), haslocaldir(), and :lcd vim: set ft=vim :
2
3STARTTEST
4:so small.vim
5:" Do all test in a separate window to avoid E211 when we recursively
6:" delete the Xtopdir directory during cleanup
7:"
8:" This will cause a few errors, do it silently.
9:set visualbell
10:set nocp viminfo+=nviminfo
11:"
Bram Moolenaarc9703302016-01-17 21:49:33 +010012:function! GetCwdInfo(win, tab)
13: let tab_changed = 0
14: let mod = ":t"
15: if a:tab > 0 && a:tab != tabpagenr()
16: let tab_changed = 1
17: exec "tabnext " . a:tab
18: endif
19: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
20: if tab_changed
21: tabprevious
22: endif
23: if a:win == 0 && a:tab == 0
24: let dirname = fnamemodify(getcwd(), mod)
25: let lflag = haslocaldir()
26: elseif a:tab == 0
27: let dirname = fnamemodify(getcwd(a:win), mod)
28: let lflag = haslocaldir(a:win)
29: else
30: let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
31: let lflag = haslocaldir(a:win, a:tab)
32: endif
33: return bufname . ' ' . dirname . ' ' . lflag
34:endfunction
35:" On windows a stale "Xtopdir" directory may exist, remove it so that
36:" we start from a clean state.
Bram Moolenaarabc70bb2016-06-08 21:48:50 +020037:call delete("Xtopdir", "rf")
Bram Moolenaarc9703302016-01-17 21:49:33 +010038:let r=[]
39:new
40:let cwd=getcwd()
41:let test_out = cwd . '/test.out'
42:call mkdir('Xtopdir')
43:cd Xtopdir
44:call mkdir('Xdir1')
45:call mkdir('Xdir2')
46:call mkdir('Xdir3')
47:new a
48:new b
49:new c
50:3wincmd w
51:lcd Xdir1
52:call add(r, GetCwdInfo(0, 0))
53:wincmd W
54:call add(r, GetCwdInfo(0, 0))
55:wincmd W
56:lcd Xdir3
57:call add(r, GetCwdInfo(0, 0))
58:call add(r, GetCwdInfo(bufwinnr("a"), 0))
59:call add(r, GetCwdInfo(bufwinnr("b"), 0))
60:call add(r, GetCwdInfo(bufwinnr("c"), 0))
61:wincmd W
62:call add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
63:call add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
64:call add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
65:"
66:tabnew x
67:new y
68:new z
69:3wincmd w
70:call add(r, GetCwdInfo(0, 0))
71:wincmd W
72:lcd Xdir2
73:call add(r, GetCwdInfo(0, 0))
74:wincmd W
75:lcd Xdir3
76:call add(r, GetCwdInfo(0, 0))
77:call add(r, GetCwdInfo(bufwinnr("x"), 0))
78:call add(r, GetCwdInfo(bufwinnr("y"), 0))
79:call add(r, GetCwdInfo(bufwinnr("z"), 0))
80:let tp_nr = tabpagenr()
81:tabrewind
82:call add(r, GetCwdInfo(3, tp_nr))
83:call add(r, GetCwdInfo(2, tp_nr))
84:call add(r, GetCwdInfo(1, tp_nr))
85:"
86:call writefile(r, test_out, "a")
87:q
88:exec "cd " . cwd
Bram Moolenaarabc70bb2016-06-08 21:48:50 +020089:call delete("Xtopdir", "rf")
Bram Moolenaarc9703302016-01-17 21:49:33 +010090:qa!
91ENDTEST
92
93