Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
projectdiscovery
GitHub Repository: projectdiscovery/nuclei
Path: blob/dev/cmd/integration-test/template-path.go
2070 views
1
package main
2
3
import (
4
"fmt"
5
"strings"
6
7
"github.com/projectdiscovery/nuclei/v3/pkg/catalog/config"
8
"github.com/projectdiscovery/nuclei/v3/pkg/testutils"
9
)
10
11
func getTemplatePath() string {
12
return config.DefaultConfig.TemplatesDirectory
13
}
14
15
var templatesPathTestCases = []TestCaseInfo{
16
//template folder path issue
17
{Path: "protocols/http/get.yaml", TestCase: &folderPathTemplateTest{}},
18
//cwd
19
{Path: "./dns/detect-dangling-cname.yaml", TestCase: &cwdTemplateTest{}},
20
//relative path
21
{Path: "dns/dns-saas-service-detection.yaml", TestCase: &relativePathTemplateTest{}},
22
//absolute path
23
{Path: fmt.Sprintf("%v/dns/dns-saas-service-detection.yaml", getTemplatePath()), TestCase: &absolutePathTemplateTest{}},
24
}
25
26
type cwdTemplateTest struct{}
27
28
// Execute executes a test case and returns an error if occurred
29
func (h *cwdTemplateTest) Execute(filePath string) error {
30
results, err := testutils.RunNucleiTemplateAndGetResults(filePath, "8x8exch02.8x8.com", debug, "-ms")
31
if err != nil {
32
return err
33
}
34
return expectResultsCount(results, 1)
35
}
36
37
type relativePathTemplateTest struct{}
38
39
// Execute executes a test case and returns an error if occurred
40
func (h *relativePathTemplateTest) Execute(filePath string) error {
41
results, err := testutils.RunNucleiTemplateAndGetResults(filePath, "8x8exch02.8x8.com", debug)
42
if err != nil {
43
return err
44
}
45
return expectResultsCount(results, 1)
46
}
47
48
type absolutePathTemplateTest struct{}
49
50
// Execute executes a test case and returns an error if occurred
51
func (h *absolutePathTemplateTest) Execute(filePath string) error {
52
results, err := testutils.RunNucleiTemplateAndGetResults(filePath, "8x8exch02.8x8.com", debug)
53
if err != nil {
54
return err
55
}
56
return expectResultsCount(results, 1)
57
}
58
59
type folderPathTemplateTest struct{}
60
61
// Execute executes a test case and returns an error if occurred
62
func (h *folderPathTemplateTest) Execute(filePath string) error {
63
results, err := testutils.RunNucleiBinaryAndGetCombinedOutput(debug, []string{"-t", filePath, "-target", "http://example.com"})
64
if err != nil {
65
return err
66
}
67
if strings.Contains(results, "installing") {
68
return fmt.Errorf("couldn't find template path,re-installing")
69
}
70
return nil
71
}
72
73