From e45684f19dd710171f6ee698e10935335d865298 Mon Sep 17 00:00:00 2001 From: porosnicuadrian Date: Tue, 6 Apr 2021 09:50:11 +0300 Subject: [PATCH] Sanitizatioin path tests --- config/configsanity_test.go | 98 +++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/config/configsanity_test.go b/config/configsanity_test.go index e8f709baf..9099761bf 100644 --- a/config/configsanity_test.go +++ b/config/configsanity_test.go @@ -222,6 +222,30 @@ func TestConfigSanityLoaders(t *testing.T) { if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { t.Errorf("Expecting: %+q received: %+q", expected, err) } + + cfg.loaderCfg[0].Data[0].Fields[0].Path = "~req." + expected = " Empty field path for ~req. at Path" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.loaderCfg[0].Data[0].Fields[0].Path = "~*req.Destination" + + cfg.loaderCfg[0].Data[0].Fields[0].Value = RSRParsers{{}} + cfg.loaderCfg[0].Data[0].Fields[0].Value[0].path = "~req." + expected = " Empty field path for ~req. at Values" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.loaderCfg[0].Data[0].Fields[0].Value[0].path = "*req.Destination" + + cfg.loaderCfg[0].Data[0].Fields[0].Filters = make([]string, 1) + cfg.loaderCfg[0].Data[0].Fields[0].Filters = []string{"*string:~*req..Field"} + expected = " inline parse error for string: <*string:~*req..Field> for [*string:~*req..Field] at Filters" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.loaderCfg[0].Data[0].Fields[0].Filters = []string{"~req.Valid.Field"} + } func TestConfigSanitySessionS(t *testing.T) { @@ -477,6 +501,27 @@ func TestConfigSanityDAgent(t *testing.T) { if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { t.Errorf("Expecting: %+q received: %+q", expected, err) } + + cfg.templates[utils.MetaEEs][0].Path = "~Req." + expected = " Empty field path for ~Req. at Path" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.templates[utils.MetaEEs][0].Path = "*req.OriginID" + + cfg.templates[utils.MetaEEs][0].Value[0].path = "~Req." + expected = " Empty field path for ~Req. at Values" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.templates[utils.MetaEEs][0].Value[0].path = "*req.OriginID" + + cfg.templates[utils.MetaEEs][0].Filters = []string{"*string:~*req..Field"} + expected = " inline parse error for string: <*string:~*req..Field> for [*string:~*req..Field] at templates" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.templates[utils.MetaEEs][0].Filters = []string{"*string:~*req.VAlid.Field"} cfg.templates = nil expected = " MANDATORY_IE_MISSING: [Path] for cgrates at SessionId" @@ -485,10 +530,63 @@ func TestConfigSanityDAgent(t *testing.T) { } cfg.diameterAgentCfg.RequestProcessors[0].RequestFields[0].Type = utils.MetaNone + cfg.diameterAgentCfg.RequestProcessors[0].RequestFields[0].Filters = []string{"*string:~*req..Field"} + expected = " inline parse error for string: <*string:~*req..Field> for [*string:~*req..Field] at request_fields" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.diameterAgentCfg.RequestProcessors[0].RequestFields[0].Filters = []string{"*string:~*req.Valid.Field"} + + cfg.diameterAgentCfg.RequestProcessors[0].RequestFields[0].Path = "~REQ." + expected = " Empty field path for ~REQ. at Path" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.diameterAgentCfg.RequestProcessors[0].RequestFields[0].Path = "*req.Valid.Field" + + cfg.diameterAgentCfg.RequestProcessors[0].RequestFields[0].Value[0].path = "~REQ." + expected = " Empty field path for ~REQ. at Values of request_fields" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.diameterAgentCfg.RequestProcessors[0].RequestFields[0].Value[0].path = "*req.Valid.Field" + cfg.diameterAgentCfg.RequestProcessors[0].RequestFields = []*FCTemplate{} + expected = " MANDATORY_IE_MISSING: [Path] for cgrates at SessionId" if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { t.Errorf("Expecting: %+q received: %+q", expected, err) } + cfg.diameterAgentCfg.RequestProcessors[0].ReplyFields[0].Type = utils.MetaNone + + cfg.diameterAgentCfg.RequestProcessors[0].ReplyFields[0].Filters = []string{"*string:~*req..Field"} + expected = " inline parse error for string: <*string:~*req..Field> for [*string:~*req..Field] at reply_fields" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.diameterAgentCfg.RequestProcessors[0].ReplyFields[0].Filters = []string{"*string:~*req.Valid.Field"} + + cfg.diameterAgentCfg.RequestProcessors[0].ReplyFields[0].Path = "~REQ." + expected = " Empty field path for ~REQ. at Path" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.diameterAgentCfg.RequestProcessors[0].ReplyFields[0].Path = "*req.Valid.Field" + + cfg.diameterAgentCfg.RequestProcessors[0].ReplyFields[0].Value[0].path = "~REQ." + expected = " Empty field path for ~REQ. at Values of reply_fields" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.diameterAgentCfg.RequestProcessors[0].ReplyFields[0].Value[0].path = "*req.Valid.Field" + cfg.diameterAgentCfg.RequestProcessors[0].ReplyFields = []*FCTemplate{} + + cfg.diameterAgentCfg.RequestProcessors[0].Filters = []string{"*string:~*req..Field"} + expected = " inline parse error for string: <*string:~*req..Field> for [*string:~*req..Field] at request_processors" + if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected { + t.Errorf("Expecting: %+q received: %+q", expected, err) + } + cfg.diameterAgentCfg.RequestProcessors[0].Filters = []string{"*string:~*req.Valid.Field"} + } func TestConfigSanityRadiusAgent(t *testing.T) {