Skip to content

Commit

Permalink
Add tests for path part triggers
Browse files Browse the repository at this point in the history
  • Loading branch information
Luan van Pletsen committed Apr 30, 2018
1 parent b12ebf0 commit 5570456
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 17 deletions.
37 changes: 22 additions & 15 deletions mw_url_rewrite.go
Original file line number Diff line number Diff line change
Expand Up @@ -413,27 +413,34 @@ func checkPathParts(r *http.Request, options map[string]apidef.StringRegexMap, a
contextData := ctxGetData(r)
fCount := 0
for mv, mr := range options {
pathParts := strings.Split(r.URL.Path, "/")

for _, part := range pathParts {
println("part")
println(part)
println("mr.NotMatchPattern")
println(mr.NotMatchPattern)
println("mr.MatchPattern")
println(mr.MatchPattern)
triggered, b := mr.Check(part)
println("triggered")
println(triggered)

if triggered {

// Check URL as a whole for NotMatchRegex
triggered, b := mr.Check(r.URL.Path)
if triggered {
pathParts := strings.Split(r.URL.Path, "/")
for _, part := range pathParts {
println("part")
println(part)
println("mr.NotMatchPattern")
println(mr.NotMatchPattern)
println("mr.MatchPattern")
println(mr.MatchPattern)
_, b = mr.Check(part)
println("triggered")
println(triggered)


if len(b) > 0 {
kn := fmt.Sprintf("trigger-%d-%s-%d", triggernum, mv, fCount)
contextData[kn] = b
fCount++
}
fCount++


}
}


}

if fCount > 0 {
Expand Down
30 changes: 28 additions & 2 deletions mw_url_rewrite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ func TestRewriterTriggers(t *testing.T) {
hOpt2.Init()

return TestDef{
"Header Multi Mixed All Fail",
"Header Multi Mixed Logic All Fail",
"/test/straight/rewrite", "/change/to/me/ignore",
"/test/straight/rewrite", "/change/to/me/ignore",
[]apidef.RoutingTrigger{
Expand Down Expand Up @@ -271,7 +271,7 @@ func TestRewriterTriggers(t *testing.T) {
hOpt2.Init()

return TestDef{
"Header Multi Mixed All Pass",
"Header Multi Mixed Logic All Pass",
"/test/straight/rewrite", "/change/to/me/ignore",
"/test/straight/rewrite", "/change/to/me/hello",
[]apidef.RoutingTrigger{
Expand Down Expand Up @@ -698,6 +698,32 @@ func TestRewriterTriggers(t *testing.T) {
r,
}
},
func() TestDef {
r, _ := http.NewRequest("GET", "/test/foo/rewrite/foo", nil)
hOpt1 := apidef.StringRegexMap{MatchPattern: "foo"}
hOpt1.Init()
hOpt2 := apidef.StringRegexMap{MatchPattern: "baz"}
hOpt2.Init()

return TestDef{
"PathPart MoreParts Multi Fail",
"/test/foo/rewrite/foo", "/change/to/me/ignore",
"/test/foo/rewrite/foo", "/change/to/me/ignore",
[]apidef.RoutingTrigger{
{
On: apidef.Any,
Options: apidef.RoutingTriggerOptions{
PathPartMatches: map[string]apidef.StringRegexMap{
"pathpart1": hOpt1,
"pathpart2": hOpt2,
},
},
RewriteTo: "/change/to/me/$tyk_context.trigger-0-pathpart1-0/biz/$tyk_context.trigger-0-pathpart1-1",
},
},
r,
}
},
func() TestDef {
r, _ := http.NewRequest("GET", "/test/foo/rewrite", nil)
hOpt := apidef.StringRegexMap{MatchPattern: "bar"}
Expand Down

0 comments on commit 5570456

Please sign in to comment.