summaryrefslogtreecommitdiff
path: root/test/lib/completions/sftp.exp
blob: c5c0919fdecaab41eed833209ac5fc12bffc0c45 (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
49
50
51
52
53
54
55
56
57
58
59
60
proc setup {} {
    save_env
    # NOTE: Changing dir to $SRCDIR is necessary because file locations in the
    #       ssh config files (e.g. UserKnownHostsFile) are relative to $SRCDIR.
    assert_bash_exec {cd $SRCDIR/fixtures/sftp}
}


proc teardown {} {
    assert_bash_exec {cd $TESTDIR}
    assert_env_unmodified {
        /BASH_LINENO=/d
        /BASH_SOURCE=/d
        /OLDPWD=/d
    }
}


setup


    # Build string list of expected completions
set expected [get_hosts]
    # Hosts `gee' and `hut' are defined in ./fixtures/sftp/config
    # Hosts `10.10.10.10', `doo' and `ike' are defined in ./fixtures/sftp/known_hosts
lappend expected 10.10.10.10 doo gee hut ike
assert_complete $expected "sftp -F config "


sync_after_int


set test "-F without space shouldn't error"
    # Try completion
set cmd "sftp -F"
send "$cmd\t "
expect {
    -re "^${cmd}bash: option requires an argument -- F" { fail "$test" }
    -re "^$cmd\r\n.*\r\n/@" { pass "$test" }
    -re /@ { unresolved "$test at prompt" }
    default { unresolved "$test" }
}


sync_after_int


    # Build string list of expected completions
    # Get hostnames and give them a colon (:) suffix
set expected [get_hosts]
    # Hosts `gee' and `jar' are defined in "./fixtures/sftp/spaced  conf"
    # Hosts `10.10.10.10', `doo' and `ike' are defined in ./fixtures/sftp/known_hosts
lappend expected 10.10.10.10 doo gee ike jar
assert_complete $expected "sftp -F spaced\\ \\ conf "


sync_after_int


teardown