feat: Add path-only URI support
This commit is contained in:
parent
37581ae961
commit
bd616ba4fc
@ -90,6 +90,11 @@ parse_uri() {
|
||||
if [[ "$uri" =~ :~/ ]]; then
|
||||
path="~${path}"
|
||||
fi
|
||||
elif [[ "$scheme" == "$uri" ]] && [[ "$uri" =~ ^[./] ]]; then
|
||||
# For URI with only Path component.
|
||||
# Examples: /path ./path ../path ../../path
|
||||
path="$uri"
|
||||
scheme='file'
|
||||
else
|
||||
# For non authority component URI
|
||||
path="$(<<< "$uri" sed "s/${scheme}://g")" || true
|
||||
|
@ -67,6 +67,58 @@ setup() {
|
||||
[ "$fragment" == '' ]
|
||||
}
|
||||
|
||||
@test "." {
|
||||
. uri.sh
|
||||
parse_uri '.'
|
||||
[ "$scheme" == 'file' ]
|
||||
[ "$hostname" == '' ]
|
||||
[ "$port" == '' ]
|
||||
[ "$path" == '.' ]
|
||||
[ "$username" == '' ]
|
||||
[ "$password" == '' ]
|
||||
[ "$query" == '' ]
|
||||
[ "$fragment" == '' ]
|
||||
}
|
||||
|
||||
@test "./relative/path" {
|
||||
. uri.sh
|
||||
parse_uri './relative/path'
|
||||
[ "$scheme" == 'file' ]
|
||||
[ "$hostname" == '' ]
|
||||
[ "$port" == '' ]
|
||||
[ "$path" == './relative/path' ]
|
||||
[ "$username" == '' ]
|
||||
[ "$password" == '' ]
|
||||
[ "$query" == '' ]
|
||||
[ "$fragment" == '' ]
|
||||
}
|
||||
|
||||
@test "../relative/path" {
|
||||
. uri.sh
|
||||
parse_uri '../relative/path'
|
||||
[ "$scheme" == 'file' ]
|
||||
[ "$hostname" == '' ]
|
||||
[ "$port" == '' ]
|
||||
[ "$path" == '../relative/path' ]
|
||||
[ "$username" == '' ]
|
||||
[ "$password" == '' ]
|
||||
[ "$query" == '' ]
|
||||
[ "$fragment" == '' ]
|
||||
}
|
||||
|
||||
@test "/abs/path" {
|
||||
. uri.sh
|
||||
parse_uri '/abs/path'
|
||||
[ "$scheme" == 'file' ]
|
||||
[ "$hostname" == '' ]
|
||||
[ "$port" == '' ]
|
||||
[ "$path" == '/abs/path' ]
|
||||
[ "$username" == '' ]
|
||||
[ "$password" == '' ]
|
||||
[ "$query" == '' ]
|
||||
[ "$fragment" == '' ]
|
||||
}
|
||||
|
||||
@test "sqlite:///path" {
|
||||
. uri.sh
|
||||
parse_uri 'sqlite:///path'
|
||||
|
Loading…
Reference in New Issue
Block a user