go-httpaccept/httpaccept_string_test.go

88 lines
2.3 KiB
Go
Raw Permalink Normal View History

2023-08-11 21:11:12 +00:00
package httpaccept_test
import (
"sourcecode.social/reiver/go-httpaccept"
"sourcecode.social/reiver/go-httpaccept/mediarange"
"testing"
)
func TestHTTPAccept_String(t *testing.T) {
tests := []struct{
HTTPAccept httpaccept.HTTPAccept
Expected string
}{
{
HTTPAccept: httpaccept.Create(),
Expected: "",
},
2023-08-11 23:21:18 +00:00
{
HTTPAccept: httpaccept.Create(mediarange.Create("", "")),
Expected: "Accept: */*"+"\r\n",
},
2023-08-11 21:11:12 +00:00
{
HTTPAccept: httpaccept.Create(mediarange.Create("*", "*")),
Expected: "Accept: */*"+"\r\n",
},
2023-08-11 23:21:18 +00:00
2023-08-11 21:11:12 +00:00
{
HTTPAccept: httpaccept.Create(mediarange.Create("text", "html"), mediarange.Create("*", "*")),
Expected: "Accept: text/html,*/*"+"\r\n",
},
2023-08-11 23:21:18 +00:00
{
HTTPAccept: httpaccept.Create(mediarange.Create("Text", "html"), mediarange.Create("*", "*")),
Expected: "Accept: text/html,*/*"+"\r\n",
},
{
HTTPAccept: httpaccept.Create(mediarange.Create("text", "Html"), mediarange.Create("*", "*")),
Expected: "Accept: text/html,*/*"+"\r\n",
},
{
HTTPAccept: httpaccept.Create(mediarange.Create("TEXT", "HTML"), mediarange.Create("*", "*")),
Expected: "Accept: text/html,*/*"+"\r\n",
},
2023-08-11 21:11:12 +00:00
{
HTTPAccept: httpaccept.Create(mediarange.Create("text", "html"), mediarange.Create("application", "xhtml+xml"), mediarange.Create("*", "*")),
Expected: "Accept: text/html,application/xhtml+xml,*/*"+"\r\n",
},
2023-08-11 23:21:18 +00:00
{
HTTPAccept: httpaccept.Create(mediarange.Create("TEXT", "HtmL"), mediarange.Create("APPlication", "XHtmL+XmL"), mediarange.Create("*", "*")),
Expected: "Accept: text/html,application/xhtml+xml,*/*"+"\r\n",
},
2023-08-11 21:11:12 +00:00
{
HTTPAccept: httpaccept.Create(mediarange.Create("application", "activity+json")),
Expected: "Accept: application/activity+json"+"\r\n",
},
{
HTTPAccept: httpaccept.Create(mediarange.Create("application", "activity+json"), mediarange.Create("application", "json")),
Expected: "Accept: application/activity+json,application/json"+"\r\n",
},
}
for testNumber, test := range tests {
actual := test.HTTPAccept.String()
expected := test.Expected
if expected != actual {
t.Errorf("For test #%d, the actual (serialized) stringer value is not what was expected.", testNumber)
t.Logf("HTTP-ACCEPT: %#v", test.HTTPAccept)
t.Logf("EXPECTED: %q", expected)
t.Logf("ACTUAL: %q", actual)
continue
}
}
}