t9902: add a few basic completion tests
authorJeff King <peff@peff.net>
Wed, 26 Sep 2012 21:47:51 +0000 (17:47 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 28 Sep 2012 00:25:48 +0000 (17:25 -0700)
We were not testing ref or tree completion at all. Let's
give them even basic sanity checks to avoid regressions.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t9902-completion.sh

index 92d7eb47c2a412a300a9faca04d41777e0a29b00..2fc833ad8bc446f66388c19c9877862c2361901e 100755 (executable)
@@ -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,36 @@ 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_done