github.com/projectdiscovery/nuclei/v2@v2.9.15/pkg/protocols/common/fuzz/fuzz_test.go (about) 1 package fuzz 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestRuleMatchKeyOrValue(t *testing.T) { 10 rule := &Rule{} 11 err := rule.Compile(nil, nil) 12 require.NoError(t, err, "could not compile rule") 13 14 result := rule.matchKeyOrValue("url", "") 15 require.True(t, result, "could not get correct result") 16 17 t.Run("key", func(t *testing.T) { 18 rule := &Rule{Keys: []string{"url"}} 19 err := rule.Compile(nil, nil) 20 require.NoError(t, err, "could not compile rule") 21 22 result := rule.matchKeyOrValue("url", "") 23 require.True(t, result, "could not get correct result") 24 result = rule.matchKeyOrValue("test", "") 25 require.False(t, result, "could not get correct result") 26 }) 27 t.Run("value", func(t *testing.T) { 28 rule := &Rule{ValuesRegex: []string{`https?:\/\/?([-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b)*(\/[\/\d\w\.-]*)*(?:[\?])*(.+)*`}} 29 err := rule.Compile(nil, nil) 30 require.NoError(t, err, "could not compile rule") 31 32 result := rule.matchKeyOrValue("", "http://localhost:80") 33 require.True(t, result, "could not get correct result") 34 result = rule.matchKeyOrValue("test", "random") 35 require.False(t, result, "could not get correct result") 36 }) 37 }