From 8c682d2abddd006398e9aed0a61212b4648b5a59 Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Mon, 14 Sep 2015 17:22:01 +0100 Subject: Basic approach to format strings --- test-format-config.sh | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100755 test-format-config.sh (limited to 'test-format-config.sh') diff --git a/test-format-config.sh b/test-format-config.sh new file mode 100755 index 0000000..17c4bd6 --- /dev/null +++ b/test-format-config.sh @@ -0,0 +1,111 @@ +scriptDir="$(cd "$(dirname "$0")"; pwd)" + +source "$scriptDir/radar-base.sh" + +cd_to_tmp() { + tmpfile="/tmp/git-prompt-tests-$(time_now)$1" + mkdir -p "$tmpfile" + cd "$tmpfile" +} + +rm_tmp() { + cd $scriptDir + rm -rf /tmp/git-prompt-tests* +} + +unset_colours() { + export COLOR_REMOTE_AHEAD="" + export COLOR_REMOTE_BEHIND="" + export COLOR_REMOTE_DIVERGED="" + export COLOR_REMOTE_NOT_UPSTREAM="" + + export COLOR_LOCAL_AHEAD="" + export COLOR_LOCAL_BEHIND="" + export COLOR_LOCAL_DIVERGED="" + + export COLOR_CHANGES_STAGED="" + export COLOR_CHANGES_UNSTAGED="" + export COLOR_CHANGES_CONFLICTED="" + export COLOR_CHANGES_UNTRACKED="" + + export COLOR_BRANCH="" + export MASTER_SYMBOL="m" + + export RESET_COLOR_LOCAL="" + export RESET_COLOR_REMOTE="" + export RESET_COLOR_CHANGES="" + export RESET_COLOR_BRANCH="" +} + +prepare_test_repo() { + cd_to_tmp "remote" + + git init --quiet + touch README + git add . + git commit -m "initial commit" --quiet + origin="$(pwd)" + + cd_to_tmp "new" + git init --quiet + git remote add origin $origin + git fetch origin --quiet + git checkout master --quiet + git checkout -b foo --quiet + git push --quiet -u origin foo >/dev/null + repo="$(pwd)" + + cd "$origin" + echo "foo" > foo + git add . + git commit -m "remote commit" --quiet + cd "$repo" + echo "foo" > foo + git add . + git commit -m "local commit" --quiet + echo "foo" > bar + git fetch origin --quiet +} + +test_all_options_set_config() { + prepare_test_repo + + export GIT_RADAR_FORMAT="%{remote}%{branch}%{local}%{changes}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "$prompt" "m 1 → foo 1↑ 1A" + + export GIT_RADAR_FORMAT="%{remote}%{branch}%{changes}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "$prompt" "m 1 → foo 1A" + + export GIT_RADAR_FORMAT="%{branch}%{local}%{changes}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "$prompt" "foo 1↑ 1A" + + export GIT_RADAR_FORMAT="%{branch}%{changes}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "$prompt" "foo 1A" + + export GIT_RADAR_FORMAT="%{branch}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "$prompt" "foo" + + rm_tmp +} + +. ./shunit/shunit2 -- cgit v1.2.3 From 5c68ecdd5d388a4a5604c0f377c4b917eb0dcfff Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Tue, 15 Sep 2015 10:04:15 +0100 Subject: Make render replace rather than append, so we can reorder --- test-format-config.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test-format-config.sh') diff --git a/test-format-config.sh b/test-format-config.sh index 17c4bd6..e595703 100755 --- a/test-format-config.sh +++ b/test-format-config.sh @@ -108,4 +108,31 @@ test_all_options_set_config() { rm_tmp } +test_reorder_parts() { + prepare_test_repo + + export GIT_RADAR_FORMAT="%{branch}%{local}%{changes}%{remote}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "foo 1↑ 1Am 1 → " "$prompt" + + export GIT_RADAR_FORMAT="%{local}%{changes}%{remote}%{branch}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals " 1↑ 1Am 1 → foo" "$prompt" + + export GIT_RADAR_FORMAT="%{changes}%{remote}%{branch}%{local}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals " 1Am 1 → foo 1↑" "$prompt" + + rm_tmp +} + . ./shunit/shunit2 -- cgit v1.2.3 From 5d2bded520a2649a3cc19b6c767fa23d9b00555e Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Thu, 17 Sep 2015 09:45:57 +0100 Subject: Make providing a prefix and suffix to changes possible --- test-format-config.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'test-format-config.sh') diff --git a/test-format-config.sh b/test-format-config.sh index e595703..ce4645e 100755 --- a/test-format-config.sh +++ b/test-format-config.sh @@ -135,4 +135,24 @@ test_reorder_parts() { rm_tmp } +test_prefix_and_suffix() { + prepare_test_repo + + export GIT_RADAR_FORMAT="%{changes}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals " 1A" "$prompt" + + export GIT_RADAR_FORMAT="%{[:changes:]}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "[ 1A]" "$prompt" + + rm_tmp +} + . ./shunit/shunit2 -- cgit v1.2.3 From 3e809c83741cc6466090169404dd0aa2672d29ac Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Thu, 17 Sep 2015 10:40:06 +0100 Subject: Add prefix/suffixing to local diff --- test-format-config.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'test-format-config.sh') diff --git a/test-format-config.sh b/test-format-config.sh index ce4645e..2a5226a 100755 --- a/test-format-config.sh +++ b/test-format-config.sh @@ -135,7 +135,7 @@ test_reorder_parts() { rm_tmp } -test_prefix_and_suffix() { +test_prefix_and_suffix_changes() { prepare_test_repo export GIT_RADAR_FORMAT="%{changes}" @@ -155,4 +155,24 @@ test_prefix_and_suffix() { rm_tmp } +test_prefix_and_suffix_local() { + prepare_test_repo + + export GIT_RADAR_FORMAT="%{local}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals " 1↑" "$prompt" + + export GIT_RADAR_FORMAT="%{[:local:]}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "[ 1↑]" "$prompt" + + rm_tmp +} + . ./shunit/shunit2 -- cgit v1.2.3 From 7fd5ee18bb412e3ee4db694f551a9b9421e18f89 Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Thu, 17 Sep 2015 10:49:37 +0100 Subject: Add prefix and suffix to branch name render --- test-format-config.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'test-format-config.sh') diff --git a/test-format-config.sh b/test-format-config.sh index 2a5226a..4283025 100755 --- a/test-format-config.sh +++ b/test-format-config.sh @@ -175,4 +175,24 @@ test_prefix_and_suffix_local() { rm_tmp } +test_prefix_and_suffix_branch() { + prepare_test_repo + + export GIT_RADAR_FORMAT="%{branch}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "foo" "$prompt" + + export GIT_RADAR_FORMAT="%{[:branch:]}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "[foo]" "$prompt" + + rm_tmp +} + . ./shunit/shunit2 -- cgit v1.2.3 From d2c7ed085ff711a9f34fc1b0f521bcde253f19c5 Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Thu, 17 Sep 2015 10:55:09 +0100 Subject: Add prefix and suffixing to remote diff render --- test-format-config.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'test-format-config.sh') diff --git a/test-format-config.sh b/test-format-config.sh index 4283025..8b786c9 100755 --- a/test-format-config.sh +++ b/test-format-config.sh @@ -195,4 +195,24 @@ test_prefix_and_suffix_branch() { rm_tmp } +test_prefix_and_suffix_remote() { + prepare_test_repo + + export GIT_RADAR_FORMAT="%{remote}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "m 1 → " "$prompt" + + export GIT_RADAR_FORMAT="%{[:remote:]}" + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "[m 1 → ]" "$prompt" + + rm_tmp +} + . ./shunit/shunit2 -- cgit v1.2.3 From 49d6fcc1190066b38d1684f1cfd1d4fea3190d78 Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Thu, 17 Sep 2015 11:52:15 +0100 Subject: Switch local commits to use prefixes --- test-format-config.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'test-format-config.sh') diff --git a/test-format-config.sh b/test-format-config.sh index 8b786c9..036a87b 100755 --- a/test-format-config.sh +++ b/test-format-config.sh @@ -75,7 +75,7 @@ test_all_options_set_config() { unset_colours prompt="$(render_prompt)" - assertEquals "$prompt" "m 1 → foo 1↑ 1A" + assertEquals "$prompt" "m 1 → foo1↑ 1A" export GIT_RADAR_FORMAT="%{remote}%{branch}%{changes}" prepare_zsh_colors @@ -89,7 +89,7 @@ test_all_options_set_config() { unset_colours prompt="$(render_prompt)" - assertEquals "$prompt" "foo 1↑ 1A" + assertEquals "$prompt" "foo1↑ 1A" export GIT_RADAR_FORMAT="%{branch}%{changes}" prepare_zsh_colors @@ -116,21 +116,21 @@ test_reorder_parts() { unset_colours prompt="$(render_prompt)" - assertEquals "foo 1↑ 1Am 1 → " "$prompt" + assertEquals "foo1↑ 1Am 1 → " "$prompt" export GIT_RADAR_FORMAT="%{local}%{changes}%{remote}%{branch}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals " 1↑ 1Am 1 → foo" "$prompt" + assertEquals "1↑ 1Am 1 → foo" "$prompt" export GIT_RADAR_FORMAT="%{changes}%{remote}%{branch}%{local}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals " 1Am 1 → foo 1↑" "$prompt" + assertEquals " 1Am 1 → foo1↑" "$prompt" rm_tmp } @@ -163,14 +163,14 @@ test_prefix_and_suffix_local() { unset_colours prompt="$(render_prompt)" - assertEquals " 1↑" "$prompt" + assertEquals "1↑" "$prompt" export GIT_RADAR_FORMAT="%{[:local:]}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals "[ 1↑]" "$prompt" + assertEquals "[1↑]" "$prompt" rm_tmp } -- cgit v1.2.3 From 06e6a85ebd0d1090128079d0c7e31db43b591d27 Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Thu, 17 Sep 2015 14:01:38 +0100 Subject: Switch remote commits to use suffixes --- test-format-config.sh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'test-format-config.sh') diff --git a/test-format-config.sh b/test-format-config.sh index 036a87b..7999560 100755 --- a/test-format-config.sh +++ b/test-format-config.sh @@ -75,14 +75,14 @@ test_all_options_set_config() { unset_colours prompt="$(render_prompt)" - assertEquals "$prompt" "m 1 → foo1↑ 1A" + assertEquals "$prompt" "m 1 →foo1↑ 1A" export GIT_RADAR_FORMAT="%{remote}%{branch}%{changes}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals "$prompt" "m 1 → foo 1A" + assertEquals "$prompt" "m 1 →foo 1A" export GIT_RADAR_FORMAT="%{branch}%{local}%{changes}" prepare_zsh_colors @@ -116,21 +116,21 @@ test_reorder_parts() { unset_colours prompt="$(render_prompt)" - assertEquals "foo1↑ 1Am 1 → " "$prompt" + assertEquals "foo1↑ 1Am 1 →" "$prompt" export GIT_RADAR_FORMAT="%{local}%{changes}%{remote}%{branch}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals "1↑ 1Am 1 → foo" "$prompt" + assertEquals "1↑ 1Am 1 →foo" "$prompt" export GIT_RADAR_FORMAT="%{changes}%{remote}%{branch}%{local}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals " 1Am 1 → foo1↑" "$prompt" + assertEquals " 1Am 1 →foo1↑" "$prompt" rm_tmp } @@ -203,14 +203,14 @@ test_prefix_and_suffix_remote() { unset_colours prompt="$(render_prompt)" - assertEquals "m 1 → " "$prompt" + assertEquals "m 1 →" "$prompt" export GIT_RADAR_FORMAT="%{[:remote:]}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals "[m 1 → ]" "$prompt" + assertEquals "[m 1 →]" "$prompt" rm_tmp } -- cgit v1.2.3 From 1537438e5798502cad17ba10cf19016e400f7c42 Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Thu, 17 Sep 2015 14:08:55 +0100 Subject: Switch changes status to use prefixes --- test-format-config.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'test-format-config.sh') diff --git a/test-format-config.sh b/test-format-config.sh index 7999560..ea76405 100755 --- a/test-format-config.sh +++ b/test-format-config.sh @@ -75,28 +75,28 @@ test_all_options_set_config() { unset_colours prompt="$(render_prompt)" - assertEquals "$prompt" "m 1 →foo1↑ 1A" + assertEquals "$prompt" "m 1 →foo1↑1A" export GIT_RADAR_FORMAT="%{remote}%{branch}%{changes}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals "$prompt" "m 1 →foo 1A" + assertEquals "$prompt" "m 1 →foo1A" export GIT_RADAR_FORMAT="%{branch}%{local}%{changes}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals "$prompt" "foo1↑ 1A" + assertEquals "$prompt" "foo1↑1A" export GIT_RADAR_FORMAT="%{branch}%{changes}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals "$prompt" "foo 1A" + assertEquals "$prompt" "foo1A" export GIT_RADAR_FORMAT="%{branch}" prepare_zsh_colors @@ -116,21 +116,21 @@ test_reorder_parts() { unset_colours prompt="$(render_prompt)" - assertEquals "foo1↑ 1Am 1 →" "$prompt" + assertEquals "foo1↑1Am 1 →" "$prompt" export GIT_RADAR_FORMAT="%{local}%{changes}%{remote}%{branch}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals "1↑ 1Am 1 →foo" "$prompt" + assertEquals "1↑1Am 1 →foo" "$prompt" export GIT_RADAR_FORMAT="%{changes}%{remote}%{branch}%{local}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals " 1Am 1 →foo1↑" "$prompt" + assertEquals "1Am 1 →foo1↑" "$prompt" rm_tmp } @@ -143,14 +143,14 @@ test_prefix_and_suffix_changes() { unset_colours prompt="$(render_prompt)" - assertEquals " 1A" "$prompt" + assertEquals "1A" "$prompt" export GIT_RADAR_FORMAT="%{[:changes:]}" prepare_zsh_colors unset_colours prompt="$(render_prompt)" - assertEquals "[ 1A]" "$prompt" + assertEquals "[1A]" "$prompt" rm_tmp } -- cgit v1.2.3 From eabe1d7e855817714a9e06b59ff468951413f6c6 Mon Sep 17 00:00:00 2001 From: Michael Allen Date: Thu, 17 Sep 2015 14:16:58 +0100 Subject: Further testing when not in a repo --- test-format-config.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'test-format-config.sh') diff --git a/test-format-config.sh b/test-format-config.sh index ea76405..5504ebc 100755 --- a/test-format-config.sh +++ b/test-format-config.sh @@ -68,6 +68,22 @@ prepare_test_repo() { } test_all_options_set_config() { + cd_to_tmp "empty" + export GIT_RADAR_FORMAT="%{branch}%{local}%{changes}" + # Don't test remote as in no repo you will get upstream error message + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "$prompt" "" + + export GIT_RADAR_FORMAT="%{remote}" + # Don't test remote as in no repo you will get upstream error message + prepare_zsh_colors + unset_colours + + prompt="$(render_prompt)" + assertEquals "$prompt" "upstream ⚡" prepare_test_repo export GIT_RADAR_FORMAT="%{remote}%{branch}%{local}%{changes}" -- cgit v1.2.3