119 lines
2.5 KiB
Bash
119 lines
2.5 KiB
Bash
#!/usr/bin/env bats
|
|
|
|
load ../helper
|
|
|
|
function setup() {
|
|
setup_env
|
|
source "$HOMESHICK_DIR/lib/fs.sh"
|
|
}
|
|
|
|
function test_clean_path() {
|
|
local path=$1
|
|
local expected=$2
|
|
local cleaned
|
|
cleaned=$(clean_path "$path")
|
|
if [[ $cleaned != "$expected" ]]; then
|
|
printf "got '%s'\n" "$cleaned"
|
|
[ "$expected" = "$cleaned" ]
|
|
fi
|
|
}
|
|
|
|
@test 'clean /home/user/somedir' {
|
|
test_clean_path '/home/user/somedir' '/home/user/somedir'
|
|
}
|
|
|
|
@test 'clean home/user/somedir' {
|
|
test_clean_path 'home/user/somedir' 'home/user/somedir'
|
|
}
|
|
|
|
@test 'clean /' {
|
|
test_clean_path '/' '/'
|
|
}
|
|
|
|
@test 'clean ""' {
|
|
test_clean_path '' ''
|
|
}
|
|
|
|
@test 'clean ../' {
|
|
test_clean_path '../' '..'
|
|
}
|
|
|
|
@test 'clean ../somedir' {
|
|
test_clean_path '../somedir' '../somedir'
|
|
}
|
|
|
|
@test 'clean /..' {
|
|
test_clean_path '/..' '/'
|
|
}
|
|
|
|
@test 'clean /../dir' {
|
|
test_clean_path '/../dir' '/dir'
|
|
}
|
|
|
|
@test 'clean somedir/../..' {
|
|
test_clean_path 'somedir/../..' '..'
|
|
}
|
|
|
|
@test 'clean /home/user/somedir/' {
|
|
test_clean_path '/home/user/somedir/' '/home/user/somedir'
|
|
}
|
|
|
|
@test 'clean /home/user/../user/somedir' {
|
|
test_clean_path '/home/user/../user/somedir' '/home/user/somedir'
|
|
}
|
|
|
|
@test 'clean /home/user/../user/somedir/' {
|
|
test_clean_path '/home/user/../user/somedir/' '/home/user/somedir'
|
|
}
|
|
|
|
@test 'clean /home/user/../../user/somedir/' {
|
|
test_clean_path '/home/user/../../user/somedir/' '/user/somedir'
|
|
}
|
|
|
|
@test 'clean /home/user/../anotherdir/../somedir/' {
|
|
test_clean_path '/home/user/../anotherdir/../somedir/' '/home/somedir'
|
|
}
|
|
|
|
@test 'clean /home/user/somedir/..' {
|
|
test_clean_path '/home/user/somedir/..' '/home/user'
|
|
}
|
|
|
|
@test 'clean /home/user/somedir/../' {
|
|
test_clean_path '/home/user/somedir/../' '/home/user'
|
|
}
|
|
|
|
@test 'clean /home/user/somedir/../../' {
|
|
test_clean_path '/home/user/somedir/../../' '/home'
|
|
}
|
|
|
|
@test 'clean /home/user/./somedir' {
|
|
test_clean_path '/home/user/./somedir' '/home/user/somedir'
|
|
}
|
|
|
|
@test 'clean /home/user/.' {
|
|
test_clean_path '/home/user/.' '/home/user'
|
|
}
|
|
|
|
@test 'clean /home/user/./' {
|
|
test_clean_path '/home/user/./' '/home/user'
|
|
}
|
|
|
|
@test 'clean /home/user/./somedir/../anotherdir/.' {
|
|
test_clean_path '/home/user/./somedir/../anotherdir/.' '/home/user/anotherdir'
|
|
}
|
|
|
|
@test 'clean /home/user../../somedir' {
|
|
clean_path '/home/user../../somedir'
|
|
test_clean_path '/home/user../../somedir' '/home/somedir'
|
|
}
|
|
|
|
@test 'clean /home/user../../some dir' {
|
|
clean_path '/home/user../../some dir'
|
|
test_clean_path '/home/user../../some dir' '/home/some dir'
|
|
}
|
|
|
|
@test 'clean /home/user name../../some dir' {
|
|
clean_path '/home/user name../../some dir'
|
|
test_clean_path '/home/user name../../some dir' '/home/some dir'
|
|
}
|