package conf import ( "testing" "github.com/bluenviron/gortsplib/v5" "github.com/stretchr/testify/require" ) func TestPathClone(t *testing.T) { original := &Path{ Name: "example", RTSPTransport: RTSPTransport{ptrOf(gortsplib.ProtocolUDP)}, SourceAnyPortEnable: ptrOf(true), RecordPath: "/var/recordings", } clone := original.Clone() require.Equal(t, original, clone) } func TestIsValidPathName(t *testing.T) { for _, ca := range []struct { name string path string errMsg string }{ { name: "valid nested path", path: "group/cam1", }, { name: "valid dots inside segment", path: "cam.v1/main", }, { name: "parent directory", path: "../cam1", errMsg: "can't contain dot path segments", }, { name: "embedded parent directory", path: "group/../cam1", errMsg: "can't contain dot path segments", }, { name: "current directory", path: "./cam1", errMsg: "can't contain dot path segments", }, } { t.Run(ca.name, func(t *testing.T) { err := IsValidPathName(ca.path) if ca.errMsg != "" { require.EqualError(t, err, ca.errMsg) } else { require.NoError(t, err) } }) } }