| #!/bin/sh |
| |
| cleanup () { |
| unset -f setup cleanup die |
| unset _PROFILE |
| rm -f .bashrc .bash_profile .zshrc .profile test_profile > /dev/null 2>&1 |
| } |
| die () { echo $@ ; cleanup ; exit 1; } |
| |
| NVM_ENV=testing . ../../install.sh |
| |
| setup () { |
| touch .bashrc |
| touch .bash_profile |
| touch .zshrc |
| touch .profile |
| touch test_profile |
| } |
| |
| #Let's hack $HOME |
| HOME="." |
| |
| setup |
| |
| #Let's force $SHELL to be bash |
| SHELL="/bin/bash" |
| |
| # $SHELL is set to bash and .bashrc is there, it must be detected |
| _PROFILE=$(nvm_detect_profile) |
| [ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$HOME/.bashrc: _$HOME/.bashrc" && |
| echo "_\$_PROFILE: _$_PROFILE" && |
| die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" ) |
| |
| # But $PROFILE should override |
| _PROFILE="$(PROFILE=test_profile nvm_detect_profile)" |
| _PROFILE=$(nvm_detect_profile) |
| [ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
| echo "_\$PROFILE: _$PROFILE" && |
| die "nvm_detect_profile didn't pick \$PROFILE" ) |
| unset PROFILE |
| |
| |
| #Let's force $SHELL to be zsh |
| SHELL="/usr/bin/zsh" |
| |
| # $SHELL is set to zsh and .zshrc is there, it must be detected |
| _PROFILE=$(nvm_detect_profile) |
| [ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$HOME/.zshrc: _$HOME/.zshrc" && |
| echo "_\$_PROFILE: _$_PROFILE" && |
| die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" ) |
| |
| # But $PROFILE should override |
| _PROFILE="$(PROFILE=test_profile nvm_detect_profile)" |
| _PROFILE=$(nvm_detect_profile) |
| [ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
| echo "_\$PROFILE: _$PROFILE" && |
| die "nvm_detect_profile didn't pick \$PROFILE" ) |
| unset PROFILE |
| |
| # if we unset shell it looks for the files |
| unset SHELL |
| |
| # $PROFILE points to a valid file, its path must be returned |
| PROFILE="test_profile" |
| _PROFILE=$(nvm_detect_profile) |
| [ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
| echo "_\$PROFILE: _$PROFILE" && |
| die "nvm_detect_profile didn't pick \$PROFILE" ) |
| |
| # $PROFILE doesn't point to a valid file, its path must not be returned |
| PROFILE="invalid_profile" |
| _PROFILE=$(nvm_detect_profile) |
| [ "_$_PROFILE" != "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
| echo "_\$PROFILE: _$PROFILE" && |
| die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" ) |
| |
| |
| # Below are tests for when $PROFILE is undefined |
| rm test_profile |
| unset PROFILE |
| |
| # It should favor .profile if file exists |
| _PROFILE=$(nvm_detect_profile) |
| [ "_$_PROFILE" = "_$HOME/.profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
| echo "_\$PROFILE: _$PROFILE" && |
| die "nvm_detect_profile should have selected .profile" ) |
| |
| rm .profile |
| # Otherwise, it should favor .bashrc if file exists |
| _PROFILE=$(nvm_detect_profile) |
| [ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
| echo "_\$PROFILE: _$PROFILE" && |
| die "nvm_detect_profile should have selected .bashrc" ) |
| |
| rm .bashrc |
| # Otherwise, it should favor .bash_profile if file exists |
| _PROFILE=$(nvm_detect_profile) |
| [ "_$_PROFILE" = "_$HOME/.bash_profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
| echo "_\$PROFILE: _$PROFILE" && |
| die "nvm_detect_profile should have selected .bash_profile" ) |
| |
| rm .bash_profile |
| # Otherwise, it should favor .zshrc if file exists |
| _PROFILE=$(nvm_detect_profile) |
| [ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
| echo "_\$PROFILE: _$PROFILE" && |
| die "nvm_detect_profile should have selected .zshrc" ) |
| |
| rm .zshrc |
| # It should be empty if none is found |
| _PROFILE=$(nvm_detect_profile) |
| [ -z "$_PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
| echo "_\$PROFILE: _$PROFILE" && |
| die "nvm_detect_profile should have echo'ed an empty value" ) |
| |
| |
| cleanup |