@matheusbsbs / matheus-bagliano / commits / 567102819a
Fork 0

Add test for correct coloring of git log --decoration

Signed-off-by: Nazri Ramliy <ayiehere@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Nazri Ramliy committed Jun 29, 2010 at 15:47 UTC 567102819ac56ccf7eb638ea8b5c975c03e88558
1 file changed +66
t/t4207-log-decoration-colors.sh new
+66
@@ -0,0 +1,66 @@
1 +#!/bin/sh
2 +#
3 +# Copyright (c) 2010 Nazri Ramliy
4 +#
5 +
6 +test_description='Test for "git log --decorate" colors'
7 +
8 +. ./test-lib.sh
9 +
10 +get_color ()
11 +{
12 + git config --get-color no.such.slot "$1"
13 +}
14 +
15 +test_expect_success setup '
16 + git config diff.color.commit yellow &&
17 + git config color.decorate.branch green &&
18 + git config color.decorate.remoteBranch red &&
19 + git config color.decorate.tag "reverse bold yellow" &&
20 + git config color.decorate.stash magenta &&
21 + git config color.decorate.HEAD cyan &&
22 +
23 + c_reset=$(get_color reset) &&
24 +
25 + c_commit=$(get_color yellow) &&
26 + c_branch=$(get_color green) &&
27 + c_remoteBranch=$(get_color red) &&
28 + c_tag=$(get_color "reverse bold yellow") &&
29 + c_stash=$(get_color magenta) &&
30 + c_HEAD=$(get_color cyan) &&
31 +
32 + test_commit A &&
33 + git clone . other &&
34 + (
35 + cd other &&
36 + test_commit A1
37 + ) &&
38 +
39 + git remote add -f other ./other &&
40 + test_commit B &&
41 + git tag v1.0 &&
42 + echo >>A.t &&
43 + git stash save Changes to A.t
44 +'
45 +
46 +cat >expected <<EOF
47 +${c_commit}COMMIT_ID (${c_HEAD}HEAD${c_reset}${c_commit},\
48 + ${c_tag}tag: v1.0${c_reset}${c_commit},\
49 + ${c_tag}tag: B${c_reset}${c_commit},\
50 + ${c_branch}master${c_reset}${c_commit})${c_reset} B
51 +${c_commit}COMMIT_ID (${c_tag}tag: A1${c_reset}${c_commit},\
52 + ${c_remoteBranch}other/master${c_reset}${c_commit})${c_reset} A1
53 +${c_commit}COMMIT_ID (${c_stash}refs/stash${c_reset}${c_commit})${c_reset}\
54 + On master: Changes to A.t
55 +${c_commit}COMMIT_ID (${c_tag}tag: A${c_reset}${c_commit})${c_reset} A
56 +EOF
57 +
58 +# We want log to show all, but the second parent to refs/stash is irrelevant
59 +# to this test since it does not contain any decoration, hence --first-parent
60 +test_expect_success 'Commit Decorations Colored Correctly' '
61 + git log --first-parent --abbrev=10 --all --decorate --oneline --color=always |
62 + sed "s/[0-9a-f]\{10,10\}/COMMIT_ID/" >out &&
63 + test_cmp expected out
64 +'
65 +
66 +test_done