From: Michael J Gruber Date: Tue, 08 Dec 2009 10:12:02 GMT Subject: [PATCH 2/2] t7508-status: test all modes with color Message-ID: <39211ecec866882503d1188d359e1183341faeb1.1260266027.git.git@drmicha.warpmail.net> In-Reply-To: Signed-off-by: Michael J Gruber --- t/t7508-status.sh | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 119 insertions(+), 0 deletions(-) diff --git a/t/t7508-status.sh b/t/t7508-status.sh index 8e7727e..50554a0 100755 --- a/t/t7508-status.sh +++ b/t/t7508-status.sh @@ -31,6 +31,15 @@ test_expect_success 'setup' ' git add dir2/added ' +decrypt_color () { + sed \ + -e 's/.\[1m//g' \ + -e 's/.\[31m//g' \ + -e 's/.\[32m//g' \ + -e 's/.\[34m//g' \ + -e 's/.\[m//g' +} + test_expect_success 'status (1)' ' grep "use \"git rm --cached \.\.\.\" to unstage" output @@ -315,6 +324,115 @@ test_expect_success 'status --porcelain ignores relative paths setting' ' ' +test_expect_success 'setup unique colors' ' + + git config status.color.untracked blue + +' + +cat > expect << \EOF +# On branch master +# Changes to be committed: +# (use "git reset HEAD ..." to unstage) +# +# new file: dir2/added +# +# Changed but not updated: +# (use "git add ..." to update what will be committed) +# (use "git checkout -- ..." to discard changes in working directory) +# +# modified: dir1/modified +# +# Untracked files: +# (use "git add ..." to include in what will be committed) +# +# dir1/untracked +# dir2/modified +# dir2/untracked +# expect +# output +# untracked +EOF + +test_expect_success 'status with color.ui' ' + + git config color.ui always && + git status | decrypt_color > output && + test_cmp expect output + +' + +test_expect_success 'status with color.status' ' + + git config --unset color.ui && + git config color.status always && + git status | decrypt_color > output && + test_cmp expect output + +' + +cat > expect << \EOF + M dir1/modified +A dir2/added +?? dir1/untracked +?? dir2/modified +?? dir2/untracked +?? expect +?? output +?? untracked +EOF + +test_expect_success 'status -s with color.ui' ' + + git config --unset color.status && + git config color.ui always && + git status -s | decrypt_color > output && + test_cmp expect output + +' + +test_expect_success 'status -s with color.status' ' + + git config --unset color.ui && + git config color.status always && + git status -s | decrypt_color > output && + test_cmp expect output + +' + +cat > expect << \EOF + M dir1/modified +A dir2/added +?? dir1/untracked +?? dir2/modified +?? dir2/untracked +?? expect +?? output +?? untracked +EOF + +test_expect_success 'status --porcelain ignores color.ui' ' + + git config --unset color.status && + git config color.ui always && + git status --porcelain | decrypt_color > output && + test_cmp expect output + +' + +test_expect_success 'status --porcelain ignores color.status' ' + + git config --unset color.ui && + git config color.status always && + git status --porcelain | decrypt_color > output && + test_cmp expect output + +' + +# recover unconditionally from color tests +git config --unset color.status +git config --unset color.ui + cat > expect << \EOF # On branch master # Changes to be committed: @@ -339,6 +457,7 @@ cat > expect << \EOF # untracked EOF + test_expect_success 'status without relative paths' ' git config status.relativePaths false -- 1.6.6.rc1.292.gd8fe