|
|
|
@ -61,6 +61,15 @@ test_completion ()
@@ -61,6 +61,15 @@ test_completion ()
|
|
|
|
|
test_cmp expected out |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# Like test_completion, but reads expectation from stdin, |
|
|
|
|
# which is convenient when it is multiline. We also process "_" into |
|
|
|
|
# spaces to make test vectors more readable. |
|
|
|
|
test_completion_long () |
|
|
|
|
{ |
|
|
|
|
tr _ " " >expected && |
|
|
|
|
test_completion "$1" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
newline=$'\n' |
|
|
|
|
|
|
|
|
|
test_expect_success '__gitcomp - trailing space - options' ' |
|
|
|
@ -228,4 +237,55 @@ test_expect_success 'general options plus command' '
@@ -228,4 +237,55 @@ test_expect_success 'general options plus command' '
|
|
|
|
|
test_completion "git --no-replace-objects check" "checkout " |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success 'setup for ref completion' ' |
|
|
|
|
echo content >file1 && |
|
|
|
|
echo more >file2 && |
|
|
|
|
git add . && |
|
|
|
|
git commit -m one && |
|
|
|
|
git branch mybranch && |
|
|
|
|
git tag mytag |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success 'checkout completes ref names' ' |
|
|
|
|
test_completion_long "git checkout m" <<-\EOF |
|
|
|
|
master_ |
|
|
|
|
mybranch_ |
|
|
|
|
mytag_ |
|
|
|
|
EOF |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success 'show completes all refs' ' |
|
|
|
|
test_completion_long "git show m" <<-\EOF |
|
|
|
|
master_ |
|
|
|
|
mybranch_ |
|
|
|
|
mytag_ |
|
|
|
|
EOF |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success '<ref>: completes paths' ' |
|
|
|
|
test_completion_long "git show mytag:f" <<-\EOF |
|
|
|
|
file1_ |
|
|
|
|
file2_ |
|
|
|
|
EOF |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_success 'complete tree filename with spaces' ' |
|
|
|
|
echo content >"name with spaces" && |
|
|
|
|
git add . && |
|
|
|
|
git commit -m spaces && |
|
|
|
|
test_completion_long "git show HEAD:nam" <<-\EOF |
|
|
|
|
name with spaces_ |
|
|
|
|
EOF |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_expect_failure 'complete tree filename with metacharacters' ' |
|
|
|
|
echo content >"name with \${meta}" && |
|
|
|
|
git add . && |
|
|
|
|
git commit -m meta && |
|
|
|
|
test_completion_long "git show HEAD:nam" <<-\EOF |
|
|
|
|
name with ${meta}_ |
|
|
|
|
name with spaces_ |
|
|
|
|
EOF |
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
test_done |
|
|
|
|