package utils import ( "reflect" "testing" ) func TestEncodePath(t *testing.T) { t.Log(EncodePath("http://localhost:5244/d/123#.png")) } func TestFixAndCleanPath(t *testing.T) { datas := map[string]string{ "": "/", ".././": "/", "../../.../": "/...", "x//\\y/": "/x/y", ".././.x/.y/.//..x../..y..": "/.x/.y/..x../..y..", } for key, value := range datas { if FixAndCleanPath(key) != value { t.Logf("raw %s fix fail", key) } } } func TestGetPathHierarchy(t *testing.T) { testCases := map[string][]string{ "": {"/"}, "/": {"/"}, "/home": {"/", "/home"}, "/home/user": {"/", "/home", "/home/user"}, "/home/user/documents": {"/", "/home", "/home/user", "/home/user/documents"}, "/home/user/documents/files/test.txt": {"/", "/home", "/home/user", "/home/user/documents", "/home/user/documents/files", "/home/user/documents/files/test.txt"}, "home": {"/", "/home"}, "home/user": {"/", "/home", "/home/user"}, "./home/": {"/", "/home"}, "..//home//user/../././": {"/", "/home"}, "/home///user///documents///": {"/", "/home", "/home/user", "/home/user/documents"}, "/home/user with spaces/doc": {"/", "/home", "/home/user with spaces", "/home/user with spaces/doc"}, "/home/user@domain.com/files": {"/", "/home", "/home/user@domain.com", "/home/user@domain.com/files"}, "/home/.hidden/.config": {"/", "/home", "/home/.hidden", "/home/.hidden/.config"}, } for input, expected := range testCases { t.Run(input, func(t *testing.T) { result := GetPathHierarchy(input) if !reflect.DeepEqual(result, expected) { t.Errorf("GetPathHierarchy(%q) = %v, want %v", input, result, expected) } }) } }