Path: blob/dev/cmd/integration-test/template-path.go
2070 views
package main12import (3"fmt"4"strings"56"github.com/projectdiscovery/nuclei/v3/pkg/catalog/config"7"github.com/projectdiscovery/nuclei/v3/pkg/testutils"8)910func getTemplatePath() string {11return config.DefaultConfig.TemplatesDirectory12}1314var templatesPathTestCases = []TestCaseInfo{15//template folder path issue16{Path: "protocols/http/get.yaml", TestCase: &folderPathTemplateTest{}},17//cwd18{Path: "./dns/detect-dangling-cname.yaml", TestCase: &cwdTemplateTest{}},19//relative path20{Path: "dns/dns-saas-service-detection.yaml", TestCase: &relativePathTemplateTest{}},21//absolute path22{Path: fmt.Sprintf("%v/dns/dns-saas-service-detection.yaml", getTemplatePath()), TestCase: &absolutePathTemplateTest{}},23}2425type cwdTemplateTest struct{}2627// Execute executes a test case and returns an error if occurred28func (h *cwdTemplateTest) Execute(filePath string) error {29results, err := testutils.RunNucleiTemplateAndGetResults(filePath, "8x8exch02.8x8.com", debug, "-ms")30if err != nil {31return err32}33return expectResultsCount(results, 1)34}3536type relativePathTemplateTest struct{}3738// Execute executes a test case and returns an error if occurred39func (h *relativePathTemplateTest) Execute(filePath string) error {40results, err := testutils.RunNucleiTemplateAndGetResults(filePath, "8x8exch02.8x8.com", debug)41if err != nil {42return err43}44return expectResultsCount(results, 1)45}4647type absolutePathTemplateTest struct{}4849// Execute executes a test case and returns an error if occurred50func (h *absolutePathTemplateTest) Execute(filePath string) error {51results, err := testutils.RunNucleiTemplateAndGetResults(filePath, "8x8exch02.8x8.com", debug)52if err != nil {53return err54}55return expectResultsCount(results, 1)56}5758type folderPathTemplateTest struct{}5960// Execute executes a test case and returns an error if occurred61func (h *folderPathTemplateTest) Execute(filePath string) error {62results, err := testutils.RunNucleiBinaryAndGetCombinedOutput(debug, []string{"-t", filePath, "-target", "http://example.com"})63if err != nil {64return err65}66if strings.Contains(results, "installing") {67return fmt.Errorf("couldn't find template path,re-installing")68}69return nil70}717273