| 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") |
| } |
| } |