diff options
Diffstat (limited to 'test/test-directories.sh')
-rwxr-xr-x | test/test-directories.sh | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/test/test-directories.sh b/test/test-directories.sh new file mode 100755 index 0000000..d440072 --- /dev/null +++ b/test/test-directories.sh @@ -0,0 +1,95 @@ +#!/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_git_root_in_repo() { + cd $scriptDir + local root="$(git_root)" + assertEquals "$scriptDir" "$root" +} + +test_git_root_not_in_repo() { + cd_to_tmp + local root="$(git_root)" + assertEquals "" "$root" + rm_tmp +} + +test_dot_git_location_not_in_repo() { + cd_to_tmp + local filePath="$(dot_git)" + assertEquals "" "$filePath" + rm_tmp +} + +test_dot_git_location_in_repo() { + cd $scriptDir + local filePath="$(dot_git)" + local expected=".git" + assertEquals "$expected" "$filePath" +} + +test_is_repo_not_in_repo() { + cd_to_tmp + assertFalse is_repo + rm_tmp +} + +test_is_repo_in_repo() { + cd $scriptDir + assertTrue is_repo +} + +test_record_timestamp_in_repo() { + cd $scriptDir + record_timestamp + local timestamp="$(timestamp)" + local timenow="$(time_now)" + assertSame "$timenow" "$timestamp" +} + +test_time_to_update_when_timestamp_is_old() { + cd $scriptDir + FETCH_TIME="$((5 * 60))" # Fetch every 5 mins + if [[ $OSTYPE == darwin* ]];then + touch -A "-010000" "$(dot_git)/lastupdatetime" + else + newtimestamp=$(date -d "now -1 hour" +%Y%m%d%H%M) + touch -t $newtimestamp "$(dot_git)/lastupdatetime" + fi; + assertTrue time_to_update +} + +test_not_time_to_update_when_just_recorded() { + cd $scriptDir + FETCH_TIME="$((5 * 60))" # Fetch every 5 mins + record_timestamp + assertFalse time_to_update +} + +test_time_to_update_when_no_timestamp() { + cd_to_tmp + git init --quiet + + FETCH_TIME="$((5 * 60))" # Fetch every 5 mins + time_to_update + assertTrue time_to_update + + rm_tmp +} + +. ./shunit/shunit2 |