summaryrefslogtreecommitdiff
path: root/test/lib/completions/cd.exp
blob: 6616cd829ef2a3145e5205eff65c874969d03115 (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
proc setup {} {
    save_env
}


proc teardown {} {
    assert_env_unmodified
}


setup


set test "Tab should complete"
assert_complete {"bar bar.d/" foo.d/} "cd fixtures/shared/default/" $test


sync_after_int


set test "Tab should complete cd at cursor position"
    # Try completion
set cmd "cd fixtures/shared/default/foo"
append cmd \002\002\002; # \002 = ^B = Move cursor left in bash emacs mode
#append cmd \033\0133D; # Escape-[-D = Cursor left
send "$cmd\t"
expect {
    -re "cd fixtures/shared/default/foo\b\b\b\r\n(\.svn/ +|)bar bar.d/ +foo.d/ *(\.svn/ *|)\r\n/@cd fixtures/shared/default/foo\b\b\b$" { pass "$test" }
	-re "^cd fixtures/shared/default/foo\b\b\bfoo.d/foo\b\b\b$" { fail "$test: Wrong cursor position" }
    -re /@ { unresolved "$test at prompt" }
    default { unresolved "$test" }
}


sync_after_int


set test "Tab should complete CDPATH"
    # Set CDPATH
assert_bash_exec "declare -p CDPATH &>/dev/null && OLDCDPATH=\$CDPATH || :"
assert_bash_exec "CDPATH=\$PWD";
assert_complete "fixtures/shared/default/foo.d/" "cd fixtures/shared/default/fo" $test
sync_after_int
    # Reset CDPATH
assert_bash_exec "declare -p OLDCDPATH &>/dev/null && CDPATH=\$OLDCDPATH || unset CDPATH && unset OLDCDPATH"


teardown