test rules parsing
This commit is contained in:
parent
84076db78e
commit
78dc28cce8
1 changed files with 53 additions and 0 deletions
53
rules_test.go
Normal file
53
rules_test.go
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
"net/http"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestParseOneRule(t *testing.T) {
|
||||||
|
|
||||||
|
router := mux.NewRouter()
|
||||||
|
route := router.NewRoute()
|
||||||
|
serverRoute := &serverRoute{route: route}
|
||||||
|
rules := &Rules{route: serverRoute}
|
||||||
|
|
||||||
|
expression := "Host:foo.bar"
|
||||||
|
routeResult, err := rules.Parse(expression)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("Error while building route for Host:foo.bar")
|
||||||
|
}
|
||||||
|
|
||||||
|
request, err := http.NewRequest("GET", "http://foo.bar", nil)
|
||||||
|
routeMatch := routeResult.Match(request, &mux.RouteMatch{Route: routeResult})
|
||||||
|
|
||||||
|
if routeMatch == false {
|
||||||
|
t.Log(err)
|
||||||
|
t.Fatal("Rule Host:foo.bar don't match")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestParseTwoRules(t *testing.T) {
|
||||||
|
|
||||||
|
router := mux.NewRouter()
|
||||||
|
route := router.NewRoute()
|
||||||
|
serverRoute := &serverRoute{route: route}
|
||||||
|
rules := &Rules{route: serverRoute}
|
||||||
|
|
||||||
|
expression := "Host:foo.bar;Path:/foobar"
|
||||||
|
routeResult, err := rules.Parse(expression)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal("Error while building route for Host:foo.bar;Path:/foobar")
|
||||||
|
}
|
||||||
|
|
||||||
|
request, err := http.NewRequest("GET", "http://foo.bar/foobar", nil)
|
||||||
|
routeMatch := routeResult.Match(request, &mux.RouteMatch{Route: routeResult})
|
||||||
|
|
||||||
|
if routeMatch == false {
|
||||||
|
t.Log(err)
|
||||||
|
t.Fatal("Rule Host:foo.bar;Path:/foobar don't match")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue