Added tests for shell command wrapping
This commit is contained in:
72
test/lib/git/shell_shortcuts_test.sh
Executable file
72
test/lib/git/shell_shortcuts_test.sh
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
# ------------------------------------------------------------------------------
|
||||
# SCM Breeze - Streamline your SCM workflow.
|
||||
# Copyright 2011 Nathan Broadbent (http://madebynathan.com). All Rights Reserved.
|
||||
# Released under the LGPL (GNU Lesser General Public License)
|
||||
# ------------------------------------------------------------------------------
|
||||
#
|
||||
# Unit tests for shell command wrapping
|
||||
|
||||
export scmbDir="$( cd -P "$( dirname "$0" )" && pwd )/../../.."
|
||||
|
||||
# Zsh compatibility
|
||||
if [ -n "${ZSH_VERSION:-}" ]; then
|
||||
shell="zsh"
|
||||
SHUNIT_PARENT=$0
|
||||
setopt shwordsplit
|
||||
else
|
||||
# Bash needs this option so that 'alias' works in a non-interactive shell
|
||||
shopt -s expand_aliases
|
||||
fi
|
||||
|
||||
# Load test helpers
|
||||
. "$scmbDir/test/support/test_helper"
|
||||
|
||||
# Setup
|
||||
#-----------------------------------------------------------------------------
|
||||
oneTimeSetUp() {
|
||||
export shell_command_wrapping_enabled="true"
|
||||
export scmb_wrapped_shell_commands="not_found cat rm cp mv ln ls cd sed"
|
||||
|
||||
# Test functions
|
||||
function ls() { ls $@; }
|
||||
# Test aliases
|
||||
alias mv="nocorrect mv"
|
||||
alias rm="rm --option"
|
||||
alias sed="sed"
|
||||
# Test already wrapped commands
|
||||
alias ln="exec_scmb_expand_args /bin/ln"
|
||||
|
||||
# Run shortcut wrapping
|
||||
source "$scmbDir/lib/git/shell_shortcuts.sh"
|
||||
|
||||
# Define 'whence' function for Bash.
|
||||
# Must come after sourcing shell_shortcuts
|
||||
type whence > /dev/null 2>&1 || function whence() { type "$@" | sed -e "s/.*is aliased to \`//" -e "s/'$//"; }
|
||||
}
|
||||
|
||||
# Helper function to test that alias is defined properly.
|
||||
# (Works for both zsh and bash)
|
||||
assertAliasEquals(){
|
||||
assertEquals "$1" "$(whence $2)"
|
||||
}
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Unit tests
|
||||
#-----------------------------------------------------------------------------
|
||||
|
||||
test_shell_command_wrapping() {
|
||||
assertAliasEquals "exec_scmb_expand_args /bin/rm --option" "rm"
|
||||
assertAliasEquals "exec_scmb_expand_args nocorrect /bin/mv" "mv"
|
||||
assertAliasEquals "exec_scmb_expand_args /bin/sed" "sed"
|
||||
assertAliasEquals "exec_scmb_expand_args /bin/cat" "cat"
|
||||
assertAliasEquals "exec_scmb_expand_args builtin cd" "cd"
|
||||
assertAliasEquals "exec_scmb_expand_args __original_ls" "ls"
|
||||
assertAliasEquals "exec_scmb_expand_args /bin/ln" "ln"
|
||||
}
|
||||
|
||||
|
||||
|
||||
# load and run shUnit2
|
||||
. "$scmbDir/test/support/shunit2"
|
||||
Reference in New Issue
Block a user