37 lines
786 B
Go
37 lines
786 B
Go
|
package urlutil_test
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"source.toby3d.me/toby3d/home/internal/urlutil"
|
||
|
)
|
||
|
|
||
|
func TestShiftPath(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
for name, tc := range map[string]struct {
|
||
|
input, expectHead, expectTail string
|
||
|
}{
|
||
|
"root": {"/", "", "/"},
|
||
|
"file": {"/foo", "foo", "/"},
|
||
|
"dir": {"/foo/", "foo", "/"},
|
||
|
"dir-file": {"/foo/bar", "foo", "/bar"},
|
||
|
"subdir": {"/foo/bar/", "foo", "/bar"},
|
||
|
} {
|
||
|
name, tc := name, tc
|
||
|
|
||
|
t.Run(name, func(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
|
||
|
head, tail := urlutil.ShiftPath(tc.input)
|
||
|
if head != tc.expectHead {
|
||
|
t.Errorf("ShiftPath(%s) = '%s', want '%s'", tc.input, head, tc.expectHead)
|
||
|
}
|
||
|
|
||
|
if tail != tc.expectTail {
|
||
|
t.Errorf("ShiftPath(%s) = '%s', want '%s'", tc.input, tail, tc.expectTail)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|