Path: blob/dev/pkg/protocols/offlinehttp/find_test.go
2070 views
package offlinehttp12import (3"os"4"path/filepath"5"testing"67"github.com/stretchr/testify/require"89"github.com/projectdiscovery/nuclei/v3/pkg/model"10"github.com/projectdiscovery/nuclei/v3/pkg/model/types/severity"11"github.com/projectdiscovery/nuclei/v3/pkg/operators"12"github.com/projectdiscovery/nuclei/v3/pkg/testutils"13permissionutil "github.com/projectdiscovery/utils/permission"14)1516func TestFindResponses(t *testing.T) {17options := testutils.DefaultOptions1819testutils.Init(options)20templateID := "testing-offline"21request := &Request{}22executerOpts := testutils.NewMockExecuterOptions(options, &testutils.TemplateInfo{23ID: templateID,24Info: model.Info{SeverityHolder: severity.Holder{Severity: severity.Low}, Name: "test"},25})26executerOpts.Operators = []*operators.Operators{{}}27err := request.Compile(executerOpts)28require.Nil(t, err, "could not compile file request")2930tempDir, err := os.MkdirTemp("", "test-*")31require.Nil(t, err, "could not create temporary directory")32defer func() {33_ = os.RemoveAll(tempDir)34}()3536files := map[string]string{37"test.go": "TEST",38"config.txt": "TEST",39"final.txt": "TEST",40"image_ignored.png": "TEST",41"test.txt": "TEST",42}43for k, v := range files {44err = os.WriteFile(filepath.Join(tempDir, k), []byte(v), permissionutil.TempFilePermission)45require.Nil(t, err, "could not write temporary file")46}47expected := []string{"config.txt", "final.txt", "test.txt"}48got := []string{}49err = request.getInputPaths(tempDir+"/*", func(item string) {50base := filepath.Base(item)51got = append(got, base)52})53require.Nil(t, err, "could not get input paths for glob")54require.ElementsMatch(t, expected, got, "could not get correct file matches for glob")5556got = []string{}57err = request.getInputPaths(tempDir, func(item string) {58base := filepath.Base(item)59got = append(got, base)60})61require.Nil(t, err, "could not get input paths for directory")62require.ElementsMatch(t, expected, got, "could not get correct file matches for directory")63}646566