77 lines
2.0 KiB
Go
77 lines
2.0 KiB
Go
package restful
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
// accept should match produces
|
|
func TestMatchesAcceptPlainTextWhenProducePlainTextAsLast(t *testing.T) {
|
|
r := Route{Produces: []string{"application/json", "text/plain"}}
|
|
if !r.matchesAccept("text/plain") {
|
|
t.Errorf("accept should match text/plain")
|
|
}
|
|
}
|
|
|
|
// accept should match produces
|
|
func TestMatchesAcceptStar(t *testing.T) {
|
|
r := Route{Produces: []string{"application/xml"}}
|
|
if !r.matchesAccept("*/*") {
|
|
t.Errorf("accept should match star")
|
|
}
|
|
}
|
|
|
|
// accept should match produces
|
|
func TestMatchesAcceptIE(t *testing.T) {
|
|
r := Route{Produces: []string{"application/xml"}}
|
|
if !r.matchesAccept("text/html, application/xhtml+xml, */*") {
|
|
t.Errorf("accept should match star")
|
|
}
|
|
}
|
|
|
|
// accept should match produces
|
|
func TestMatchesAcceptXml(t *testing.T) {
|
|
r := Route{Produces: []string{"application/xml"}}
|
|
if r.matchesAccept("application/json") {
|
|
t.Errorf("accept should not match json")
|
|
}
|
|
if !r.matchesAccept("application/xml") {
|
|
t.Errorf("accept should match xml")
|
|
}
|
|
}
|
|
|
|
// accept should match produces
|
|
func TestMatchesAcceptAny(t *testing.T) {
|
|
r := Route{Produces: []string{"*/*"}}
|
|
if !r.matchesAccept("application/json") {
|
|
t.Errorf("accept should match json")
|
|
}
|
|
if !r.matchesAccept("application/xml") {
|
|
t.Errorf("accept should match xml")
|
|
}
|
|
}
|
|
|
|
// content type should match consumes
|
|
func TestMatchesContentTypeXml(t *testing.T) {
|
|
r := Route{Consumes: []string{"application/xml"}}
|
|
if r.matchesContentType("application/json") {
|
|
t.Errorf("accept should not match json")
|
|
}
|
|
if !r.matchesContentType("application/xml") {
|
|
t.Errorf("accept should match xml")
|
|
}
|
|
}
|
|
|
|
// content type should match consumes
|
|
func TestMatchesContentTypeCharsetInformation(t *testing.T) {
|
|
r := Route{Consumes: []string{"application/json"}}
|
|
if !r.matchesContentType("application/json; charset=UTF-8") {
|
|
t.Errorf("matchesContentType should ignore charset information")
|
|
}
|
|
}
|
|
|
|
func TestTokenizePath(t *testing.T) {
|
|
if len(tokenizePath("/")) != 0 {
|
|
t.Errorf("not empty path tokens")
|
|
}
|
|
}
|