go-httpaccept/mediarange/mediarange_parse_test.go

287 lines
6.4 KiB
Go

package mediarange_test
import (
"sourcecode.social/reiver/go-httpaccept/mediarange"
"testing"
)
func TestParse(t *testing.T) {
tests := []struct{
MediaRange string
Expected mediarange.MediaRange
}{
{
MediaRange: "*/*",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*;q=0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*;q=0.0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*;q=0.5",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*;q=1",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*;q=1.0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/* ;q=0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/* ;q=0.0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/* ;q=0.5",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/* ;q=1",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/* ;q=1.0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*; q=0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*; q=0.0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*; q=0.5",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*; q=1",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*; q=1.0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/* ; q=0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/* ; q=0.0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/* ; q=0.5",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/* ; q=1",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/* ; q=1.0",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*;q=0;once=1;twice=22;thrice=333;fource=4444",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*;q=0.0;once=1;twice=22;thrice=333;fource=4444",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*;q=0.5;once=1;twice=22;thrice=333;fource=4444",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*;q=1;once=1;twice=22;thrice=333;fource=4444",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "*/*;q=1.0;once=1;twice=22;thrice=333;fource=4444",
Expected: mediarange.Create("*", "*"),
},
{
MediaRange: "application/*",
Expected: mediarange.Create("application", "*"),
},
{
MediaRange: "audio/*",
Expected: mediarange.Create("audio", "*"),
},
{
MediaRange: "font/*",
Expected: mediarange.Create("font", "*"),
},
{
MediaRange: "image/*",
Expected: mediarange.Create("image", "*"),
},
{
MediaRange: "text/*",
Expected: mediarange.Create("text", "*"),
},
{
MediaRange: "video/*",
Expected: mediarange.Create("video", "*"),
},
{
MediaRange: "xyz/*",
Expected: mediarange.Create("xyz", "*"),
},
{
MediaRange: "Application/*",
Expected: mediarange.Create("application", "*"),
},
{
MediaRange: "audIO/*",
Expected: mediarange.Create("audio", "*"),
},
{
MediaRange: "FonT/*",
Expected: mediarange.Create("font", "*"),
},
{
MediaRange: "IMAGE/*",
Expected: mediarange.Create("image", "*"),
},
{
MediaRange: "tEXT/*",
Expected: mediarange.Create("text", "*"),
},
{
MediaRange: "vIDeo/*",
Expected: mediarange.Create("video", "*"),
},
{
MediaRange: "Xyz/*",
Expected: mediarange.Create("xyz", "*"),
},
{
MediaRange: "application/XHTML+XML",
Expected: mediarange.Create("application", "xhtml+xml"),
},
{
MediaRange: "IMAGE/png",
Expected: mediarange.Create("image", "png"),
},
{
MediaRange: "text/html",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "Text/html",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "TexT/html",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "tExt/html",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "teXt/html",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "texT/html",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "text/Html",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "text/hTml",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "text/htMl",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "text/htmL",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "TeXT/HTml",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "TEXT/html",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "text/HTML",
Expected: mediarange.Create("text", "html"),
},
{
MediaRange: "TEXT/HTML",
Expected: mediarange.Create("text", "html"),
},
}
for testNumber, test := range tests {
actual, err := mediarange.Parse(test.MediaRange)
if nil != err {
t.Errorf("For test #%d, did not expect an error but actually got one.", testNumber)
t.Logf("MEDIA-RANGE: %q", test.MediaRange)
t.Logf("ERROR: (%T) %s", err, err)
continue
}
expected := test.Expected
if expected != actual {
t.Errorf("For test #%d, the actual resulting media-range is not what was expected.", testNumber)
t.Logf("MEDIA-RANGE: %q", test.MediaRange)
t.Logf("EXPECTED: %q %#v", expected, expected)
t.Logf("ACTUAL: %q %#v", actual, actual)
continue
}
}
}