go-httpaccept/mediarange/mediarange_match_test.go

595 lines
12 KiB
Go
Raw Permalink Normal View History

2023-08-11 19:08:28 +00:00
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
}
}
}