Skip to content

Commit

Permalink
Add payload tests and logic (needs fixing)
Browse files Browse the repository at this point in the history
  • Loading branch information
Luan van Pletsen committed Apr 11, 2018
1 parent 59dfcf3 commit 66d9c0b
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 6 deletions.
18 changes: 12 additions & 6 deletions mw_url_rewrite.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,9 +106,12 @@ func urlRewrite(meta *apidef.URLRewriteMeta, r *http.Request) (string, error) {
// Check payload
if triggerOpts.Options.PayloadMatches.MatchPattern != "" {
if checkPayload(r, triggerOpts.Options.PayloadMatches, tn) {
println("HEY!!!")
setCount += 1
if checkAny {
println("CHECKANY!!!")
rewriteToPath = triggerOpts.RewriteTo
println(triggerOpts.RewriteTo)
break
}
}
Expand Down Expand Up @@ -471,12 +474,15 @@ func checkPayload(r *http.Request, options apidef.StringRegexMap, triggernum int
cp := copyRequest(r)
bodyBytes, _ := ioutil.ReadAll(cp.Body)

_, b := options.Check(string(bodyBytes))
if len(b) > 0 {
kn := fmt.Sprintf("trigger-%d-payload", triggernum)
contextData[kn] = string(b)
return true
triggered, b := options.Check(string(bodyBytes))
if triggered {
if len(b) > 0 {
kn := fmt.Sprintf("trigger-%d-payload", triggernum)
contextData[kn] = string(b)
println("TRUE!!!")
return true
}
}

return false
}
46 changes: 46 additions & 0 deletions mw_url_rewrite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -560,6 +560,52 @@ func TestRewriterTriggers(t *testing.T) {
r,
}
},
// func() TestDef {
// var jsonStr = []byte(`{"foo":"not-matched"}`)
// r, _ := http.NewRequest("POST", "/test/pl/rewrite", bytes.NewBuffer(jsonStr))

// hOpt := apidef.StringRegexMap{NotMatchPattern: "bar"}
// hOpt.Init()

// return TestDef{
// "Payload Single Negative",
// "/test/pl/rewrite", "/change/to/me/ignore",
// "/test/pl/rewrite", "/change/to/me/rewritten",
// []apidef.RoutingTrigger{
// {
// On: apidef.Any,
// Options: apidef.RoutingTriggerOptions{
// PayloadMatches: hOpt,
// },
// RewriteTo: "/change/to/me/rewritten",
// },
// },
// r,
// }
// },
func() TestDef {
var jsonStr = []byte(`{"foo":"bar"}`)
r, _ := http.NewRequest("POST", "/test/pl/rewrite", bytes.NewBuffer(jsonStr))

hOpt := apidef.StringRegexMap{NotMatchPattern: "bar"}
hOpt.Init()

return TestDef{
"Payload Single Negative Fail",
"/test/pl/rewrite", "/change/to/me/ignore",
"/test/pl/rewrite", "/change/to/me/ignore",
[]apidef.RoutingTrigger{
{
On: apidef.Any,
Options: apidef.RoutingTriggerOptions{
PayloadMatches: hOpt,
},
RewriteTo: "/change/to/me/rewritten",
},
},
r,
}
},
func() TestDef {
r, _ := http.NewRequest("GET", "/test/foo/rewrite", nil)
hOpt := apidef.StringRegexMap{MatchPattern: "foo"}
Expand Down

0 comments on commit 66d9c0b

Please sign in to comment.