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 tset #%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 } } }