2022-11-01 20:28:50 +05:30
|
|
|
package fuzz
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestRuleMatchKeyOrValue(t *testing.T) {
|
2024-06-11 04:43:46 +05:30
|
|
|
rule := &Rule{
|
|
|
|
|
Part: "query",
|
|
|
|
|
}
|
2022-11-01 20:28:50 +05:30
|
|
|
err := rule.Compile(nil, nil)
|
|
|
|
|
require.NoError(t, err, "could not compile rule")
|
|
|
|
|
|
|
|
|
|
result := rule.matchKeyOrValue("url", "")
|
|
|
|
|
require.True(t, result, "could not get correct result")
|
|
|
|
|
|
|
|
|
|
t.Run("key", func(t *testing.T) {
|
2024-06-11 04:43:46 +05:30
|
|
|
rule := &Rule{Keys: []string{"url"}, Part: "query"}
|
2022-11-01 20:28:50 +05:30
|
|
|
err := rule.Compile(nil, nil)
|
|
|
|
|
require.NoError(t, err, "could not compile rule")
|
|
|
|
|
|
|
|
|
|
result := rule.matchKeyOrValue("url", "")
|
|
|
|
|
require.True(t, result, "could not get correct result")
|
|
|
|
|
result = rule.matchKeyOrValue("test", "")
|
|
|
|
|
require.False(t, result, "could not get correct result")
|
|
|
|
|
})
|
|
|
|
|
t.Run("value", func(t *testing.T) {
|
2024-06-11 04:43:46 +05:30
|
|
|
rule := &Rule{ValuesRegex: []string{`https?:\/\/?([-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b)*(\/[\/\d\w\.-]*)*(?:[\?])*(.+)*`}, Part: "query"}
|
2022-11-01 20:28:50 +05:30
|
|
|
err := rule.Compile(nil, nil)
|
|
|
|
|
require.NoError(t, err, "could not compile rule")
|
|
|
|
|
|
|
|
|
|
result := rule.matchKeyOrValue("", "http://localhost:80")
|
|
|
|
|
require.True(t, result, "could not get correct result")
|
|
|
|
|
result = rule.matchKeyOrValue("test", "random")
|
|
|
|
|
require.False(t, result, "could not get correct result")
|
|
|
|
|
})
|
|
|
|
|
}
|