mirror of
https://github.com/projectdiscovery/nuclei.git
synced 2025-12-17 23:25:27 +00:00
refactor: removed redundant type conversion
This commit is contained in:
parent
47340f06b0
commit
fdaa8e4539
@ -43,14 +43,14 @@ type httpInteractshRequest struct{}
|
|||||||
// Execute executes a test case and returns an error if occurred
|
// Execute executes a test case and returns an error if occurred
|
||||||
func (h *httpInteractshRequest) Execute(filePath string) error {
|
func (h *httpInteractshRequest) Execute(filePath string) error {
|
||||||
router := httprouter.New()
|
router := httprouter.New()
|
||||||
router.GET("/", httprouter.Handle(func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
router.GET("/", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
||||||
value := r.Header.Get("url")
|
value := r.Header.Get("url")
|
||||||
if value != "" {
|
if value != "" {
|
||||||
if resp, _ := http.DefaultClient.Get(value); resp != nil {
|
if resp, _ := http.DefaultClient.Get(value); resp != nil {
|
||||||
resp.Body.Close()
|
resp.Body.Close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}))
|
})
|
||||||
ts := httptest.NewServer(router)
|
ts := httptest.NewServer(router)
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
|
|||||||
@ -25,14 +25,14 @@ type remoteTemplateList struct{}
|
|||||||
func (h *remoteTemplateList) Execute(templateList string) error {
|
func (h *remoteTemplateList) Execute(templateList string) error {
|
||||||
router := httprouter.New()
|
router := httprouter.New()
|
||||||
|
|
||||||
router.GET("/", httprouter.Handle(func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
router.GET("/", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
||||||
fmt.Fprintf(w, "This is test matcher text")
|
fmt.Fprintf(w, "This is test matcher text")
|
||||||
if strings.EqualFold(r.Header.Get("test"), "nuclei") {
|
if strings.EqualFold(r.Header.Get("test"), "nuclei") {
|
||||||
fmt.Fprintf(w, "This is test headers matcher text")
|
fmt.Fprintf(w, "This is test headers matcher text")
|
||||||
}
|
}
|
||||||
}))
|
})
|
||||||
|
|
||||||
router.GET("/template_list", httprouter.Handle(func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
router.GET("/template_list", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
||||||
file, err := os.ReadFile(templateList)
|
file, err := os.ReadFile(templateList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
w.WriteHeader(500)
|
||||||
@ -41,7 +41,7 @@ func (h *remoteTemplateList) Execute(templateList string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
w.WriteHeader(500)
|
||||||
}
|
}
|
||||||
}))
|
})
|
||||||
ts := httptest.NewServer(router)
|
ts := httptest.NewServer(router)
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
@ -61,14 +61,14 @@ type remoteWorkflowList struct{}
|
|||||||
func (h *remoteWorkflowList) Execute(workflowList string) error {
|
func (h *remoteWorkflowList) Execute(workflowList string) error {
|
||||||
router := httprouter.New()
|
router := httprouter.New()
|
||||||
|
|
||||||
router.GET("/", httprouter.Handle(func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
router.GET("/", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
||||||
fmt.Fprintf(w, "This is test matcher text")
|
fmt.Fprintf(w, "This is test matcher text")
|
||||||
if strings.EqualFold(r.Header.Get("test"), "nuclei") {
|
if strings.EqualFold(r.Header.Get("test"), "nuclei") {
|
||||||
fmt.Fprintf(w, "This is test headers matcher text")
|
fmt.Fprintf(w, "This is test headers matcher text")
|
||||||
}
|
}
|
||||||
}))
|
})
|
||||||
|
|
||||||
router.GET("/workflow_list", httprouter.Handle(func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
router.GET("/workflow_list", func(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
|
||||||
file, err := os.ReadFile(workflowList)
|
file, err := os.ReadFile(workflowList)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
w.WriteHeader(500)
|
||||||
@ -77,7 +77,7 @@ func (h *remoteWorkflowList) Execute(workflowList string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
w.WriteHeader(500)
|
w.WriteHeader(500)
|
||||||
}
|
}
|
||||||
}))
|
})
|
||||||
ts := httptest.NewServer(router)
|
ts := httptest.NewServer(router)
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
|
|||||||
@ -23,7 +23,7 @@ func (h *websocketBasic) Execute(filePath string) error {
|
|||||||
connHandler := func(conn net.Conn) {
|
connHandler := func(conn net.Conn) {
|
||||||
for {
|
for {
|
||||||
msg, op, _ := wsutil.ReadClientData(conn)
|
msg, op, _ := wsutil.ReadClientData(conn)
|
||||||
if string(msg) != string("hello") {
|
if string(msg) != "hello" {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
_ = wsutil.WriteServerMessage(conn, op, []byte("world"))
|
_ = wsutil.WriteServerMessage(conn, op, []byte("world"))
|
||||||
|
|||||||
@ -28,7 +28,7 @@ func TestActionNavigate(t *testing.T) {
|
|||||||
</body>
|
</body>
|
||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}}, {ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}}}
|
actions := []*Action{{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}}, {ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}}}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
require.Nil(t, err, "could not run page actions")
|
require.Nil(t, err, "could not run page actions")
|
||||||
@ -50,9 +50,9 @@ func TestActionScript(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("run-and-results", func(t *testing.T) {
|
t.Run("run-and-results", func(t *testing.T) {
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionScript)}, Name: "test", Data: map[string]string{"code": "window.test"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionScript}, Name: "test", Data: map[string]string{"code": "window.test"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, timeout, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, timeout, func(page *Page, err error, out map[string]string) {
|
||||||
@ -64,10 +64,10 @@ func TestActionScript(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("hook", func(t *testing.T) {
|
t.Run("hook", func(t *testing.T) {
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionScript)}, Data: map[string]string{"code": "window.test = 'some-data';", "hook": "true"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionScript}, Data: map[string]string{"code": "window.test = 'some-data';", "hook": "true"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionScript)}, Name: "test", Data: map[string]string{"code": "window.test"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionScript}, Name: "test", Data: map[string]string{"code": "window.test"}},
|
||||||
}
|
}
|
||||||
testHeadlessSimpleResponse(t, response, actions, timeout, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, timeout, func(page *Page, err error, out map[string]string) {
|
||||||
require.Nil(t, err, "could not run page actions")
|
require.Nil(t, err, "could not run page actions")
|
||||||
@ -88,9 +88,9 @@ func TestActionClick(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionClick)}, Data: map[string]string{"selector": "button"}}, // Use css selector for clicking
|
{ActionType: ActionTypeHolder{ActionType: ActionClick}, Data: map[string]string{"selector": "button"}}, // Use css selector for clicking
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -121,9 +121,9 @@ func TestActionRightClick(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionRightClick)}, Data: map[string]string{"selector": "button"}}, // Use css selector for clicking
|
{ActionType: ActionTypeHolder{ActionType: ActionRightClick}, Data: map[string]string{"selector": "button"}}, // Use css selector for clicking
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -146,9 +146,9 @@ func TestActionTextInput(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionTextInput)}, Data: map[string]string{"selector": "input", "value": "test"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionTextInput}, Data: map[string]string{"selector": "input", "value": "test"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -163,9 +163,9 @@ func TestActionTextInput(t *testing.T) {
|
|||||||
|
|
||||||
func TestActionHeadersChange(t *testing.T) {
|
func TestActionHeadersChange(t *testing.T) {
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionSetHeader)}, Data: map[string]string{"part": "request", "key": "Test", "value": "Hello"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionSetHeader}, Data: map[string]string{"part": "request", "key": "Test", "value": "Hello"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
}
|
}
|
||||||
|
|
||||||
handler := func(w http.ResponseWriter, r *http.Request) {
|
handler := func(w http.ResponseWriter, r *http.Request) {
|
||||||
@ -190,9 +190,9 @@ func TestActionScreenshot(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionScreenshot)}, Data: map[string]string{"to": "test"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionScreenshot}, Data: map[string]string{"to": "test"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -215,9 +215,9 @@ func TestActionTimeInput(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionTimeInput)}, Data: map[string]string{"selector": "input", "value": "2006-01-02T15:04:05Z"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionTimeInput}, Data: map[string]string{"selector": "input", "value": "2006-01-02T15:04:05Z"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -243,9 +243,9 @@ func TestActionSelectInput(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionSelectInput)}, Data: map[string]string{"by": "x", "xpath": "//select[@id='test']", "value": "Test2", "selected": "true"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionSelectInput}, Data: map[string]string{"by": "x", "xpath": "//select[@id='test']", "value": "Test2", "selected": "true"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -266,9 +266,9 @@ func TestActionFilesInput(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionFilesInput)}, Data: map[string]string{"selector": "input", "value": "test1.pdf"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionFilesInput}, Data: map[string]string{"selector": "input", "value": "test1.pdf"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -292,8 +292,8 @@ func TestActionWaitLoad(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -317,8 +317,8 @@ func TestActionGetResource(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionGetResource)}, Data: map[string]string{"by": "x", "xpath": "//img[@id='test']"}, Name: "src"},
|
{ActionType: ActionTypeHolder{ActionType: ActionGetResource}, Data: map[string]string{"by": "x", "xpath": "//img[@id='test']"}, Name: "src"},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -337,8 +337,8 @@ func TestActionExtract(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionExtract)}, Data: map[string]string{"by": "x", "xpath": "//button[@id='test']"}, Name: "extract"},
|
{ActionType: ActionTypeHolder{ActionType: ActionExtract}, Data: map[string]string{"by": "x", "xpath": "//button[@id='test']"}, Name: "extract"},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -356,8 +356,8 @@ func TestActionSetMethod(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionSetMethod)}, Data: map[string]string{"part": "x", "method": "SET"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionSetMethod}, Data: map[string]string{"part": "x", "method": "SET"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -368,9 +368,9 @@ func TestActionSetMethod(t *testing.T) {
|
|||||||
|
|
||||||
func TestActionAddHeader(t *testing.T) {
|
func TestActionAddHeader(t *testing.T) {
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionAddHeader)}, Data: map[string]string{"part": "request", "key": "Test", "value": "Hello"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionAddHeader}, Data: map[string]string{"part": "request", "key": "Test", "value": "Hello"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
}
|
}
|
||||||
|
|
||||||
handler := func(w http.ResponseWriter, r *http.Request) {
|
handler := func(w http.ResponseWriter, r *http.Request) {
|
||||||
@ -387,11 +387,11 @@ func TestActionAddHeader(t *testing.T) {
|
|||||||
|
|
||||||
func TestActionDeleteHeader(t *testing.T) {
|
func TestActionDeleteHeader(t *testing.T) {
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionAddHeader)}, Data: map[string]string{"part": "request", "key": "Test1", "value": "Hello"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionAddHeader}, Data: map[string]string{"part": "request", "key": "Test1", "value": "Hello"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionAddHeader)}, Data: map[string]string{"part": "request", "key": "Test2", "value": "World"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionAddHeader}, Data: map[string]string{"part": "request", "key": "Test2", "value": "World"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionDeleteHeader)}, Data: map[string]string{"part": "request", "key": "Test2"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionDeleteHeader}, Data: map[string]string{"part": "request", "key": "Test2"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
}
|
}
|
||||||
|
|
||||||
handler := func(w http.ResponseWriter, r *http.Request) {
|
handler := func(w http.ResponseWriter, r *http.Request) {
|
||||||
@ -408,9 +408,9 @@ func TestActionDeleteHeader(t *testing.T) {
|
|||||||
|
|
||||||
func TestActionSetBody(t *testing.T) {
|
func TestActionSetBody(t *testing.T) {
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionSetBody)}, Data: map[string]string{"part": "request", "body": "hello"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionSetBody}, Data: map[string]string{"part": "request", "body": "hello"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
}
|
}
|
||||||
|
|
||||||
handler := func(w http.ResponseWriter, r *http.Request) {
|
handler := func(w http.ResponseWriter, r *http.Request) {
|
||||||
@ -436,10 +436,10 @@ func TestActionKeyboard(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitLoad)}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitLoad}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionClick)}, Data: map[string]string{"selector": "input"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionClick}, Data: map[string]string{"selector": "input"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionKeyboard)}, Data: map[string]string{"keys": "Test2"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionKeyboard}, Data: map[string]string{"keys": "Test2"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -462,8 +462,8 @@ func TestActionSleep(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionSleep)}, Data: map[string]string{"duration": "2"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionSleep}, Data: map[string]string{"duration": "2"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
testHeadlessSimpleResponse(t, response, actions, 20*time.Second, func(page *Page, err error, out map[string]string) {
|
||||||
@ -485,8 +485,8 @@ func TestActionWaitVisible(t *testing.T) {
|
|||||||
</html>`
|
</html>`
|
||||||
|
|
||||||
actions := []*Action{
|
actions := []*Action{
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionNavigate)}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionNavigate}, Data: map[string]string{"url": "{{BaseURL}}"}},
|
||||||
{ActionType: ActionTypeHolder{ActionType: ActionType(ActionWaitVisible)}, Data: map[string]string{"by": "x", "xpath": "//button[@id='test']"}},
|
{ActionType: ActionTypeHolder{ActionType: ActionWaitVisible}, Data: map[string]string{"by": "x", "xpath": "//button[@id='test']"}},
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Run("wait for an element being visible", func(t *testing.T) {
|
t.Run("wait for an element being visible", func(t *testing.T) {
|
||||||
|
|||||||
@ -159,7 +159,7 @@ Server: Google Frontend
|
|||||||
t.Run("test-live-response-with-content-length", func(t *testing.T) {
|
t.Run("test-live-response-with-content-length", func(t *testing.T) {
|
||||||
var ts *httptest.Server
|
var ts *httptest.Server
|
||||||
router := httprouter.New()
|
router := httprouter.New()
|
||||||
router.GET("/", httprouter.Handle(func(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
|
router.GET("/", func(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
|
||||||
w.Header().Add("Server", "Google Frontend")
|
w.Header().Add("Server", "Google Frontend")
|
||||||
fmt.Fprintf(w, "%s", `<!DOCTYPE html>
|
fmt.Fprintf(w, "%s", `<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
@ -172,7 +172,7 @@ Server: Google Frontend
|
|||||||
<p>
|
<p>
|
||||||
</body>
|
</body>
|
||||||
</html>`)
|
</html>`)
|
||||||
}))
|
})
|
||||||
ts = httptest.NewServer(router)
|
ts = httptest.NewServer(router)
|
||||||
defer ts.Close()
|
defer ts.Close()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user