summaryrefslogtreecommitdiff
path: root/test/unit/_variables.exp
blob: 31411d530428638ffbe1ff2f6bb0ddccae106ebf (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
proc setup {} {
    assert_bash_exec { unset assoc1 && declare -A assoc1=([idx]=1)}
    assert_bash_exec { unset assoc2 && declare -A assoc2=([idx1]=1 [idx2]=2)}
    assert_bash_exec { unset ${!___v*} && declare ___var='' }
    save_env
}


proc teardown {} {
    assert_bash_exec {unset assoc1 assoc2}
}


setup

set test "Complete simple variable names"
assert_complete "\$___var" ": \$___v" $test

set test "Complete single array index"
assert_complete "\$\{assoc1\[idx\]\}" ": \$\{assoc1\[" $test
sync_after_int

set test "Complete closing curly bracket after square bracket"
assert_complete "\$\{assoc1\[bogus\]\}" ": \$\{assoc1\[bogus\]" $test
sync_after_int

set test "Complete closing brackets after @ index"
assert_complete "\$\{assoc1\[@\]\}" ": \$\{assoc1\[@" $test
sync_after_int

# For some reason -expect-cmd-minus is necessary here
set test "Complete multiple array indexes"
assert_complete_partial { \$\{assoc2\[idx1\]\} \$\{assoc2\[idx2\]\} } ":" "\$\{assoc2\[" $test -expect-cmd-minus "\${assoc2\["
sync_after_int

set test "Complete variables prefixed with #"
assert_complete "\$\{#___var\}" ": \$\{#___v" $test

teardown