summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xtest1
-rwxr-xr-xtest-colors.sh28
-rwxr-xr-xtest-commits.sh18
-rwxr-xr-xtest-format-config.sh234
4 files changed, 258 insertions, 23 deletions
diff --git a/test b/test
index 4efeafd..87cba9b 100755
--- a/test
+++ b/test
@@ -7,3 +7,4 @@
./test-files.sh
./test-status.sh
./test-colors.sh
+./test-format-config.sh
diff --git a/test-colors.sh b/test-colors.sh
index 73c20f7..8cc072b 100755
--- a/test-colors.sh
+++ b/test-colors.sh
@@ -291,14 +291,14 @@ test_bash_colors_local() {
git add .
git commit -m "test commit" --quiet
- printf -v expected " 1\x01local-ahead\x02↑\x01local-reset\x02"
+ printf -v expected "1\x01local-ahead\x02↑\x01local-reset\x02"
assertEquals "$expected" "$(bash_color_local_commits)"
assertEquals "$expected" "$(color_local_commits)"
git push --quiet >/dev/null
git reset --hard head^ --quiet >/dev/null
- printf -v expected " 1\x01local-behind\x02↓\x01local-reset\x02"
+ printf -v expected "1\x01local-behind\x02↓\x01local-reset\x02"
assertEquals "$expected" "$(bash_color_local_commits)"
assertEquals "$expected" "$(color_local_commits)"
@@ -306,7 +306,7 @@ test_bash_colors_local() {
git add .
git commit -m "new commit" --quiet
- printf -v expected " 1\x01local-diverged\x02⇵\x01local-reset\x021"
+ printf -v expected "1\x01local-diverged\x02⇵\x01local-reset\x021"
assertEquals "$expected" "$(bash_color_local_commits)"
assertEquals "$expected" "$(color_local_commits)"
@@ -337,18 +337,18 @@ test_zsh_colors_local() {
git add .
git commit -m "test commit" --quiet
- assertEquals " 1%{local-ahead%}↑%{local-reset%}" "$(zsh_color_local_commits)"
+ assertEquals "1%{local-ahead%}↑%{local-reset%}" "$(zsh_color_local_commits)"
git push --quiet >/dev/null
git reset --hard head^ --quiet >/dev/null
- assertEquals " 1%{local-behind%}↓%{local-reset%}" "$(zsh_color_local_commits)"
+ assertEquals "1%{local-behind%}↓%{local-reset%}" "$(zsh_color_local_commits)"
echo "foo" > foo
git add .
git commit -m "new commit" --quiet
- assertEquals " 1%{local-diverged%}⇵%{local-reset%}1" "$(zsh_color_local_commits)"
+ assertEquals "1%{local-diverged%}⇵%{local-reset%}1" "$(zsh_color_local_commits)"
rm_tmp
}
@@ -380,7 +380,7 @@ test_bash_colors_remote() {
git checkout -b mybranch --quiet
git push --quiet -u origin mybranch >/dev/null
- printf -v expected "m 1 \x01remote-behind\x02→\x01remote-reset\x02 "
+ printf -v expected "m 1 \x01remote-behind\x02→\x01remote-reset\x02"
assertEquals "$expected" "$(bash_color_remote_commits)"
assertEquals "$expected" "$(color_remote_commits)"
@@ -389,14 +389,14 @@ test_bash_colors_remote() {
git commit -m "new commit" --quiet
git push --quiet >/dev/null
- printf -v expected "m 1 \x01remote-diverged\x02⇄\x01remote-reset\x02 1 "
+ printf -v expected "m 1 \x01remote-diverged\x02⇄\x01remote-reset\x02 1"
assertEquals "$expected" "$(bash_color_remote_commits)"
assertEquals "$expected" "$(color_remote_commits)"
git pull origin master --quiet >/dev/null
git push --quiet >/dev/null
- printf -v expected "m \x01remote-ahead\x02←\x01remote-reset\x02 2 "
+ printf -v expected "m \x01remote-ahead\x02←\x01remote-reset\x02 2"
assertEquals "$expected" "$(bash_color_remote_commits)"
assertEquals "$expected" "$(color_remote_commits)"
@@ -430,19 +430,19 @@ test_zsh_colors_remote() {
git checkout -b mybranch --quiet
git push --quiet -u origin mybranch >/dev/null
- assertEquals "m 1 %{remote-behind%}→%{remote-reset%} " "$(zsh_color_remote_commits)"
+ assertEquals "m 1 %{remote-behind%}→%{remote-reset%}" "$(zsh_color_remote_commits)"
echo "bar" > bar
git add .
git commit -m "new commit" --quiet
git push --quiet >/dev/null
- assertEquals "m 1 %{remote-diverged%}⇄%{remote-reset%} 1 " "$(zsh_color_remote_commits)"
+ assertEquals "m 1 %{remote-diverged%}⇄%{remote-reset%} 1" "$(zsh_color_remote_commits)"
git pull origin master --quiet >/dev/null
git push --quiet >/dev/null
- assertEquals "m %{remote-ahead%}←%{remote-reset%} 2 " "$(zsh_color_remote_commits)"
+ assertEquals "m %{remote-ahead%}←%{remote-reset%} 2" "$(zsh_color_remote_commits)"
rm_tmp
}
@@ -463,7 +463,7 @@ test_bash_colors_changes() {
unstaged="1\x01changes-unstaged\x02M\x01change-reset\x02"
staged="1\x01changes-staged\x02A\x01change-reset\x02"
- printf -v expected " $staged $unstaged $untracked"
+ printf -v expected "$staged $unstaged $untracked"
assertEquals "$expected" "$(bash_color_changes_status)"
assertEquals "$expected" "$(color_changes_status)"
rm_tmp
@@ -485,7 +485,7 @@ test_zsh_colors_changes() {
unstaged="1%{changes-unstaged%}M%{change-reset%}"
staged="1%{changes-staged%}A%{change-reset%}"
- assertEquals " $staged $unstaged $untracked" "$(zsh_color_changes_status)"
+ assertEquals "$staged $unstaged $untracked" "$(zsh_color_changes_status)"
rm_tmp
}
diff --git a/test-commits.sh b/test-commits.sh
index 1a4a86c..6c317f9 100755
--- a/test-commits.sh
+++ b/test-commits.sh
@@ -402,9 +402,9 @@ test_local_commits() {
git add .
git commit -m "test commit" --quiet
- assertEquals " 1$up" "$(zsh_color_local_commits)"
- assertEquals " 1$up" "$(bash_color_local_commits)"
- assertEquals " 1$up" "$(color_local_commits)"
+ assertEquals "1$up" "$(zsh_color_local_commits)"
+ assertEquals "1$up" "$(bash_color_local_commits)"
+ assertEquals "1$up" "$(color_local_commits)"
cd "$remote"
echo "foo" > foo
@@ -414,15 +414,15 @@ test_local_commits() {
cd "$repo"
git fetch origin --quiet
- assertEquals " 1${both}1" "$(zsh_color_local_commits)"
- assertEquals " 1${both}1" "$(bash_color_local_commits)"
- assertEquals " 1${both}1" "$(color_local_commits)"
+ assertEquals "1${both}1" "$(zsh_color_local_commits)"
+ assertEquals "1${both}1" "$(bash_color_local_commits)"
+ assertEquals "1${both}1" "$(color_local_commits)"
git reset --hard HEAD^ --quiet
- assertEquals " 1$down" "$(zsh_color_local_commits)"
- assertEquals " 1$down" "$(bash_color_local_commits)"
- assertEquals " 1$down" "$(color_local_commits)"
+ assertEquals "1$down" "$(zsh_color_local_commits)"
+ assertEquals "1$down" "$(bash_color_local_commits)"
+ assertEquals "1$down" "$(color_local_commits)"
}
. ./shunit/shunit2
diff --git a/test-format-config.sh b/test-format-config.sh
new file mode 100755
index 0000000..5504ebc
--- /dev/null
+++ b/test-format-config.sh
@@ -0,0 +1,234 @@
+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() {
+ 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}"
+ prepare_zsh_colors
+ unset_colours
+
+ prompt="$(render_prompt)"
+ 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 →foo1A"
+
+ export GIT_RADAR_FORMAT="%{branch}%{local}%{changes}"
+ prepare_zsh_colors
+ unset_colours
+
+ prompt="$(render_prompt)"
+ assertEquals "$prompt" "foo1↑1A"
+
+ export GIT_RADAR_FORMAT="%{branch}%{changes}"
+ prepare_zsh_colors
+ unset_colours
+
+ prompt="$(render_prompt)"
+ assertEquals "$prompt" "foo1A"
+
+ export GIT_RADAR_FORMAT="%{branch}"
+ prepare_zsh_colors
+ unset_colours
+
+ prompt="$(render_prompt)"
+ assertEquals "$prompt" "foo"
+
+ 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 "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"
+
+ export GIT_RADAR_FORMAT="%{changes}%{remote}%{branch}%{local}"
+ prepare_zsh_colors
+ unset_colours
+
+ prompt="$(render_prompt)"
+ assertEquals "1Am 1 →foo1↑" "$prompt"
+
+ rm_tmp
+}
+
+test_prefix_and_suffix_changes() {
+ 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
+}
+
+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
+}
+
+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
+}
+
+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