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  }