mirror of
https://github.com/nkanaev/yarr.git
synced 2025-11-09 19:08:57 +00:00
reorganizing server-related packages
This commit is contained in:
76
src/server/router/match_test.go
Normal file
76
src/server/router/match_test.go
Normal file
@@ -0,0 +1,76 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRouteRegexpPart(t *testing.T) {
|
||||
in := "/hello/:world"
|
||||
re := routeRegexp(in)
|
||||
|
||||
pos := []string{
|
||||
"/hello/world",
|
||||
"/hello/1234",
|
||||
"/hello/bbc1",
|
||||
}
|
||||
for _, c := range pos {
|
||||
if !re.MatchString(c) {
|
||||
t.Errorf("%v must match %v", in, c)
|
||||
}
|
||||
}
|
||||
|
||||
neg := []string{
|
||||
"/hello",
|
||||
"/hello/world/",
|
||||
"/sub/hello/123",
|
||||
"//hello/123",
|
||||
"/hello/123/hello/",
|
||||
}
|
||||
for _, c := range neg {
|
||||
if re.MatchString(c) {
|
||||
t.Errorf("%q must not match %q", in, c)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRouteRegexpStar(t *testing.T) {
|
||||
in := "/hello/*world"
|
||||
re := routeRegexp(in)
|
||||
|
||||
pos := []string{"/hello/world", "/hello/world/test"}
|
||||
for _, c := range pos {
|
||||
if !re.MatchString(c) {
|
||||
t.Errorf("%q must match %q", in, c)
|
||||
}
|
||||
}
|
||||
|
||||
neg := []string{"/hello/", "/hello"}
|
||||
for _, c := range neg {
|
||||
if re.MatchString(c) {
|
||||
t.Errorf("%v must not match %v", in, c)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegexGroupsPart(t *testing.T) {
|
||||
re := routeRegexp("/foo/:bar/1/:baz")
|
||||
|
||||
expect := map[string]string{"bar": "one", "baz": "two"}
|
||||
actual := regexGroups("/foo/one/1/two", re)
|
||||
|
||||
if !reflect.DeepEqual(expect, actual) {
|
||||
t.Errorf("expected: %q, actual: %q", expect, actual)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegexGroupsStar(t *testing.T) {
|
||||
re := routeRegexp("/foo/*bar")
|
||||
|
||||
expect := map[string]string{"bar": "bar/baz/"}
|
||||
actual := regexGroups("/foo/bar/baz/", re)
|
||||
|
||||
if !reflect.DeepEqual(expect, actual) {
|
||||
t.Errorf("expected: %q, actual: %q", expect, actual)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user