Files
proxy/internal/pathutil/pathutil_test.go
T
2026-08-30 11:17:41 +08:00

30 lines
851 B
Go

package pathutil_test
import (
"path/filepath"
"testing"
"proxyctl/internal/pathutil"
)
func TestWithinUsesComponentBoundaries(t *testing.T) {
parent := filepath.Join(string(filepath.Separator), "home", "alice")
for _, test := range []struct {
name string
path string
want bool
}{
{name: "same", path: parent, want: true},
{name: "child", path: filepath.Join(parent, ".config", "proxyctl"), want: true},
{name: "cleaned child", path: filepath.Join(parent, "tmp", "..", ".config"), want: true},
{name: "parent", path: filepath.Dir(parent), want: false},
{name: "sibling prefix", path: parent + "-backup", want: false},
} {
t.Run(test.name, func(t *testing.T) {
if got := pathutil.Within(test.path, parent); got != test.want {
t.Fatalf("Within(%q, %q) = %v, want %v", test.path, parent, got, test.want)
}
})
}
}