Merge branch 'maint'
[gitweb.git] / t / t7006-pager.sh
index 5641b595596ea462ec649c531e7173709a012274..ed7575d0fdf9eebf65d808fa810ab4cc03095025 100755 (executable)
@@ -12,7 +12,7 @@ cleanup_fail() {
 }
 
 test_expect_success 'setup' '
-       unset GIT_PAGER GIT_PAGER_IN_USE;
+       sane_unset GIT_PAGER GIT_PAGER_IN_USE &&
        test_might_fail git config --unset core.pager &&
 
        PAGER="cat >paginated.out" &&
@@ -220,7 +220,7 @@ test_default_pager() {
        parse_args "$@"
 
        $test_expectation SIMPLEPAGER,TTY "$cmd - default pager is used by default" "
-               unset PAGER GIT_PAGER;
+               sane_unset PAGER GIT_PAGER &&
                test_might_fail git config --unset core.pager &&
                rm -f default_pager_used ||
                cleanup_fail &&
@@ -243,7 +243,7 @@ test_PAGER_overrides() {
        parse_args "$@"
 
        $test_expectation TTY "$cmd - PAGER overrides default pager" "
-               unset GIT_PAGER;
+               sane_unset GIT_PAGER &&
                test_might_fail git config --unset core.pager &&
                rm -f PAGER_used ||
                cleanup_fail &&
@@ -271,7 +271,7 @@ test_core_pager() {
        parse_args "$@"
 
        $test_expectation TTY "$cmd - repository-local core.pager setting $used_if_wanted" "
-               unset GIT_PAGER;
+               sane_unset GIT_PAGER &&
                rm -f core.pager_used ||
                cleanup_fail &&
 
@@ -299,7 +299,7 @@ test_pager_subdir_helper() {
        parse_args "$@"
 
        $test_expectation TTY "$cmd - core.pager $used_if_wanted from subdirectory" "
-               unset GIT_PAGER;
+               sane_unset GIT_PAGER &&
                rm -f core.pager_used &&
                rm -fr sub ||
                cleanup_fail &&
@@ -401,4 +401,33 @@ test_core_pager_subdir    expect_success 'git -p shortlog'
 test_core_pager_subdir    expect_success test_must_fail \
                                         'git -p apply </dev/null'
 
+test_expect_success TTY 'command-specific pager' '
+       unset PAGER GIT_PAGER;
+       echo "foo:initial" >expect &&
+       >actual &&
+       git config --unset core.pager &&
+       git config pager.log "sed s/^/foo:/ >actual" &&
+       test_terminal git log --format=%s -1 &&
+       test_cmp expect actual
+'
+
+test_expect_success TTY 'command-specific pager overrides core.pager' '
+       unset PAGER GIT_PAGER;
+       echo "foo:initial" >expect &&
+       >actual &&
+       git config core.pager "exit 1"
+       git config pager.log "sed s/^/foo:/ >actual" &&
+       test_terminal git log --format=%s -1 &&
+       test_cmp expect actual
+'
+
+test_expect_success TTY 'command-specific pager overridden by environment' '
+       GIT_PAGER="sed s/^/foo:/ >actual" && export GIT_PAGER &&
+       >actual &&
+       echo "foo:initial" >expect &&
+       git config pager.log "exit 1" &&
+       test_terminal git log --format=%s -1 &&
+       test_cmp expect actual
+'
+
 test_done