summaryrefslogtreecommitdiffstats
path: root/test/test-branches.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/test-branches.sh')
-rwxr-xr-xtest/test-branches.sh110
1 files changed, 110 insertions, 0 deletions
diff --git a/test/test-branches.sh b/test/test-branches.sh
new file mode 100755
index 0000000..ce779b3
--- /dev/null
+++ b/test/test-branches.sh
@@ -0,0 +1,110 @@
+#!/bin/bash
+scriptDir="$(cd "$(dirname "$0")"; pwd)"
+
+source "$scriptDir/sonar-base.sh"
+
+tmpfile=""
+
+cd_to_tmp() {
+ tmpfile="/tmp/git-prompt-tests-$(time_now)"
+ mkdir -p "$tmpfile"
+ cd "$tmpfile"
+}
+
+rm_tmp() {
+ cd $scriptDir
+ rm -rf /tmp/git-prompt-tests*
+}
+
+test_branch_name_in_repo() {
+ cd_to_tmp
+ git init --quiet
+ git checkout -b foo --quiet
+ assertEquals "foo" "$(branch_name)"
+
+ git checkout -b bar --quiet
+ assertEquals "bar" "$(branch_name)"
+
+ git checkout -b baz --quiet
+ assertEquals "baz" "$(branch_name)"
+
+ rm_tmp
+}
+
+test_branch_name_not_in_repo() {
+ cd_to_tmp
+ assertEquals "" "$(branch_name)"
+ rm_tmp
+}
+
+test_detached_from_branch() {
+ cd_to_tmp
+ git init --quiet
+ assertEquals "master" "$(branch_name)"
+
+ touch README
+ git add .
+ git commit -m "initial commit" --quiet
+
+ touch foo
+ git add .
+ git commit -m "foo" --quiet
+
+ git checkout --quiet HEAD^ >/dev/null
+ sha="$(commit_short_sha)"
+
+ assertNotEquals "master" "$(branch_name)"
+ assertEquals "$sha" "$(branch_ref)"
+ assertEquals "detached@$sha" "$(zsh_readable_branch_name)"
+ assertEquals "detached@$sha" "$(bash_readable_branch_name)"
+ assertEquals "detached@$sha" "$(readable_branch_name)"
+
+ rm_tmp
+}
+
+test_branch_name_returns_error() {
+ cd_to_tmp
+ git init --quiet
+
+ touch README
+ git add .
+ git commit -m "initial commit" --quiet
+
+ touch foo
+ git add .
+ git commit -m "foo" --quiet
+
+ git checkout --quiet HEAD^ >/dev/null
+
+ retcode="$(branch_name; echo $?)"
+ assertEquals "1" "$retcode"
+ rm_tmp
+}
+
+test_remote_branch_name_quiet_when_not_in_repo() {
+ cd_to_tmp
+
+ debug_output="$(
+ {
+ output="$(
+ remote_branch_name;
+ )"
+ } 2>&1
+ echo "$output"
+ )"
+
+ usages="$(echo "$debug_output" | grep -E "(usage|fatal):" | wc -l)"
+
+ echo "$debug_output"
+
+ if [[ $OSTYPE == darwin* ]];then
+ expected=" 0"
+ else
+ expected="0"
+ fi;
+ assertEquals "$expected" "$usages"
+
+ rm_tmp
+}
+
+. ./shunit/shunit2