]> asedeno.scripts.mit.edu Git - git.git/blobdiff - t/t7800-difftool.sh
Merge branch 'rb/maint-python-path' into maint
[git.git] / t / t7800-difftool.sh
index 1d9e07b0d84347be4a6bbd5d8b766f20fede1786..1de83ef98fdcbfd63469e66ba4886c2477b983ff 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# Copyright (c) 2009 David Aguilar
+# Copyright (c) 2009, 2010 David Aguilar
 #
 
 test_description='git-difftool
@@ -27,6 +27,7 @@ remove_config_vars()
        git config --unset difftool.prompt
        git config --unset merge.tool
        git config --unset mergetool.test-tool.cmd
+       git config --unset mergetool.prompt
        return 0
 }
 
@@ -91,6 +92,15 @@ test_expect_success 'difftool honors --gui' '
        restore_test_defaults
 '
 
+test_expect_success 'difftool --gui works without configured diff.guitool' '
+       git config diff.tool test-tool &&
+
+       diff=$(git difftool --no-prompt --gui branch) &&
+       test "$diff" = "branch" &&
+
+       restore_test_defaults
+'
+
 # Specify the diff tool using $GIT_DIFF_TOOL
 test_expect_success 'GIT_DIFF_TOOL variable' '
        git config --unset diff.tool
@@ -159,6 +169,17 @@ test_expect_success 'difftool.prompt config variable is false' '
        restore_test_defaults
 '
 
+# Test that we don't have to pass --no-prompt when mergetool.prompt is false
+test_expect_success 'difftool merge.prompt = false' '
+       git config --unset difftool.prompt
+       git config mergetool.prompt false &&
+
+       diff=$(git difftool branch) &&
+       test "$diff" = "branch" &&
+
+       restore_test_defaults
+'
+
 # Test that the -y flag can override difftool.prompt = true
 test_expect_success 'difftool.prompt can overridden with -y' '
        git config difftool.prompt true &&
@@ -225,10 +246,31 @@ test_expect_success 'difftool.<tool>.path' '
 test_expect_success 'difftool --extcmd=cat' '
        diff=$(git difftool --no-prompt --extcmd=cat branch) &&
        test "$diff" = branch"$LF"master
+'
+
+test_expect_success 'difftool --extcmd cat' '
+       diff=$(git difftool --no-prompt --extcmd cat branch) &&
+       test "$diff" = branch"$LF"master
+'
 
+test_expect_success 'difftool -x cat' '
+       diff=$(git difftool --no-prompt -x cat branch) &&
+       test "$diff" = branch"$LF"master
+'
 
+test_expect_success 'difftool --extcmd echo arg1' '
+       diff=$(git difftool --no-prompt --extcmd sh\ -c\ \"echo\ \$1\" branch)
+       test "$diff" = file
+'
 
+test_expect_success 'difftool --extcmd cat arg1' '
+       diff=$(git difftool --no-prompt --extcmd sh\ -c\ \"cat\ \$1\" branch)
+       test "$diff" = master
+'
 
+test_expect_success 'difftool --extcmd cat arg2' '
+       diff=$(git difftool --no-prompt --extcmd sh\ -c\ \"cat\ \$2\" branch)
+       test "$diff" = branch
 '
 
 test_done