package mediarange_test import ( "sourcecode.social/reiver/go-httpaccept/mediarange" "testing" ) func TestMediaRange_Match(t *testing.T) { tests := []struct{ MediaType string MediaRange mediarange.MediaRange Expected bool }{ { MediaType: "application/activity+json", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/epub+zip", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/gzip", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/json", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/pdf", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/msword", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/octet-stream", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/ogg", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/rtf", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/xhtml+xml", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/x-httpd-php", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/X-httpd-PHP", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "image/gif", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "image/png", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "Image/png", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "image/PnG", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "IMAGE/PNG", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "text/html", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "TEXT/html", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "text/plain", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "TEXT/PLAIN", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "xyz/banana", MediaRange: mediarange.Create("", ""), Expected: true, }, { MediaType: "application/activity+json", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/epub+zip", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/gzip", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/json", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/pdf", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/msword", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/octet-stream", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/ogg", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/rtf", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/xhtml+xml", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/x-httpd-php", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/X-httpd-PHP", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "image/gif", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "image/png", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "Image/png", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "image/PnG", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "IMAGE/PNG", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "text/html", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "TEXT/html", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "text/plain", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "TEXT/PLAIN", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "xyz/banana", MediaRange: mediarange.Create("*", "*"), Expected: true, }, { MediaType: "application/activity+json", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/epub+zip", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/gzip", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/json", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/pdf", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/msword", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/octet-stream", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/ogg", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/rtf", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/xhtml+xml", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/x-httpd-php", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "application/X-httpd-PHP", MediaRange: mediarange.Create("application", "*"), Expected: true, }, { MediaType: "image/gif", MediaRange: mediarange.Create("application", "*"), Expected: false, }, { MediaType: "image/png", MediaRange: mediarange.Create("application", "*"), Expected: false, }, { MediaType: "Image/png", MediaRange: mediarange.Create("application", "*"), Expected: false, }, { MediaType: "image/PnG", MediaRange: mediarange.Create("application", "*"), Expected: false, }, { MediaType: "IMAGE/PNG", MediaRange: mediarange.Create("application", "*"), Expected: false, }, { MediaType: "text/html", MediaRange: mediarange.Create("application", "*"), Expected: false, }, { MediaType: "TEXT/html", MediaRange: mediarange.Create("application", "*"), Expected: false, }, { MediaType: "text/plain", MediaRange: mediarange.Create("application", "*"), Expected: false, }, { MediaType: "TEXT/PLAIN", MediaRange: mediarange.Create("application", "*"), Expected: false, }, { MediaType: "xyz/banana", MediaRange: mediarange.Create("application", "*"), Expected: false, }, { MediaType: "application/activity+json", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/epub+zip", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/gzip", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/json", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/pdf", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/msword", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/octet-stream", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/ogg", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/rtf", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/xhtml+xml", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/x-httpd-php", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/X-httpd-PHP", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "image/gif", MediaRange: mediarange.Create("image", "*"), Expected: true, }, { MediaType: "image/png", MediaRange: mediarange.Create("image", "*"), Expected: true, }, { MediaType: "Image/png", MediaRange: mediarange.Create("image", "*"), Expected: true, }, { MediaType: "image/PnG", MediaRange: mediarange.Create("image", "*"), Expected: true, }, { MediaType: "IMAGE/PNG", MediaRange: mediarange.Create("image", "*"), Expected: true, }, { MediaType: "text/html", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "TEXT/html", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "text/plain", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "TEXT/PLAIN", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "xyz/banana", MediaRange: mediarange.Create("image", "*"), Expected: false, }, { MediaType: "application/activity+json", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/epub+zip", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/gzip", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/json", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/pdf", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/msword", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/octet-stream", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/ogg", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/rtf", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/xhtml+xml", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/x-httpd-php", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "application/X-httpd-PHP", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "image/gif", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "image/png", MediaRange: mediarange.Create("image", "png"), Expected: true, }, { MediaType: "Image/png", MediaRange: mediarange.Create("image", "png"), Expected: true, }, { MediaType: "image/PnG", MediaRange: mediarange.Create("image", "png"), Expected: true, }, { MediaType: "IMAGE/PNG", MediaRange: mediarange.Create("image", "png"), Expected: true, }, { MediaType: "text/html", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "TEXT/html", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "text/plain", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "TEXT/PLAIN", MediaRange: mediarange.Create("image", "png"), Expected: false, }, { MediaType: "xyz/banana", MediaRange: mediarange.Create("image", "png"), Expected: false, }, } for testNumber, test := range tests { actual := test.MediaRange.Match(test.MediaType) expected := test.Expected if expected != actual { t.Errorf("For test #%d, the actual result from trying to match the media-type against the media-range is not what was expected.", testNumber) t.Logf("MEDIA-TYPE: %q", test.MediaType) t.Logf("MEDIA-RANGE: %q", test.MediaRange) t.Logf("EXPECTED: %t", expected) t.Logf("ACTUAL: %t", actual) continue } } }