go-httpaccept/mediarange/mediarange_string_test.go

435 lines
12 KiB
Go
Raw Normal View History

2023-08-11 19:08:28 +00:00
package mediarange_test
import (
"sourcecode.social/reiver/go-httpaccept/mediarange"
"testing"
)
func TestMediaRange_String(t *testing.T) {
tests := []struct{
MediaRange mediarange.MediaRange
Expected string
}{
{
MediaRange: mediarange.Create("", ""),
Expected: "*"+"/"+"*",
},
{
MediaRange: mediarange.Create("*" , "*"),
Expected: "*"+"/"+"*",
},
{
MediaRange: mediarange.Create("application" , ""),
Expected: "application"+"/"+"*",
},
{
MediaRange: mediarange.Create("audio" , ""),
Expected: "audio"+"/"+"*",
},
{
MediaRange: mediarange.Create("font" , ""),
Expected: "font"+"/"+"*",
},
{
MediaRange: mediarange.Create("image" , ""),
Expected: "image"+"/"+"*",
},
{
MediaRange: mediarange.Create("text" , ""),
Expected: "text"+"/"+"*",
},
{
MediaRange: mediarange.Create("video" , ""),
Expected: "video"+"/"+"*",
},
{
MediaRange: mediarange.Create("xyz" , ""),
Expected: "xyz"+"/"+"*",
},
{
MediaRange: mediarange.Create("application" , "*"),
Expected: "application"+"/"+"*",
},
{
MediaRange: mediarange.Create("audio" , "*"),
Expected: "audio"+"/"+"*",
},
{
MediaRange: mediarange.Create("font" , "*"),
Expected: "font"+"/"+"*",
},
{
MediaRange: mediarange.Create("image" , "*"),
Expected: "image"+"/"+"*",
},
{
MediaRange: mediarange.Create("text" , ""),
Expected: "text"+"/"+"*",
},
{
MediaRange: mediarange.Create("video" , ""),
Expected: "video"+"/"+"*",
},
{
MediaRange: mediarange.Create("xyz" , ""),
Expected: "xyz"+"/"+"*",
},
{
MediaRange: mediarange.Create("Application" , "*"),
Expected: "application"+"/"+"*",
},
{
MediaRange: mediarange.Create("Audio" , "*"),
Expected: "audio"+"/"+"*",
},
{
MediaRange: mediarange.Create("Font" , "*"),
Expected: "font"+"/"+"*",
},
{
MediaRange: mediarange.Create("Image" , "*"),
Expected: "image"+"/"+"*",
},
{
MediaRange: mediarange.Create("Text" , ""),
Expected: "text"+"/"+"*",
},
{
MediaRange: mediarange.Create("Video" , ""),
Expected: "video"+"/"+"*",
},
{
MediaRange: mediarange.Create("Xyz" , ""),
Expected: "xyz"+"/"+"*",
},
{
MediaRange: mediarange.Create("APPLICATION" , "*"),
Expected: "application"+"/"+"*",
},
{
MediaRange: mediarange.Create("AUDIO" , "*"),
Expected: "audio"+"/"+"*",
},
{
MediaRange: mediarange.Create("FONT" , "*"),
Expected: "font"+"/"+"*",
},
{
MediaRange: mediarange.Create("IMAGE" , "*"),
Expected: "image"+"/"+"*",
},
{
MediaRange: mediarange.Create("TEXT" , ""),
Expected: "text"+"/"+"*",
},
{
MediaRange: mediarange.Create("VIDEO" , ""),
Expected: "video"+"/"+"*",
},
{
MediaRange: mediarange.Create("XYZ" , ""),
Expected: "xyz"+"/"+"*",
},
{
MediaRange: mediarange.Create("application" , "activity+json"),
Expected: "application"+"/"+"activity+json",
},
{
MediaRange: mediarange.Create("application" , "epub+zip"),
Expected: "application"+"/"+"epub+zip",
},
{
MediaRange: mediarange.Create("application" , "gzip"),
Expected: "application"+"/"+"gzip",
},
{
MediaRange: mediarange.Create("application" , "java-archive"),
Expected: "application"+"/"+"java-archive",
},
{
MediaRange: mediarange.Create("application" , "json"),
Expected: "application"+"/"+"json",
},
{
MediaRange: mediarange.Create("application" , "ld+json"),
Expected: "application"+"/"+"ld+json",
},
{
MediaRange: mediarange.Create("application" , "pdf"),
Expected: "application"+"/"+"pdf",
},
{
MediaRange: mediarange.Create("application" , "msword"),
Expected: "application"+"/"+"msword",
},
{
MediaRange: mediarange.Create("application" , "octet-stream"),
Expected: "application"+"/"+"octet-stream",
},
{
MediaRange: mediarange.Create("application" , "ogg"),
Expected: "application"+"/"+"ogg",
},
{
MediaRange: mediarange.Create("application" , "rtf"),
Expected: "application"+"/"+"rtf",
},
{
MediaRange: mediarange.Create("application" , "vnd.oasis.opendocument.spreadsheet"),
Expected: "application"+"/"+"vnd.oasis.opendocument.spreadsheet",
},
{
MediaRange: mediarange.Create("application" , "vnd.openxmlformats-officedocument.wordprocessingml.document"),
Expected: "application"+"/"+"vnd.openxmlformats-officedocument.wordprocessingml.document",
},
{
MediaRange: mediarange.Create("application" , "vnd.mozilla.xul+xml"),
Expected: "application"+"/"+"vnd.mozilla.xul+xml",
},
{
MediaRange: mediarange.Create("application" , "vnd.ms-excel"),
Expected: "application"+"/"+"vnd.ms-excel",
},
{
MediaRange: mediarange.Create("application" , "x-7z-compressed"),
Expected: "application"+"/"+"x-7z-compressed",
},
{
MediaRange: mediarange.Create("application" , "x-bzip"),
Expected: "application"+"/"+"x-bzip",
},
{
MediaRange: mediarange.Create("application" , "x-bzip2"),
Expected: "application"+"/"+"x-bzip2",
},
{
MediaRange: mediarange.Create("application" , "x-cdf"),
Expected: "application"+"/"+"x-cdf",
},
{
MediaRange: mediarange.Create("application" , "x-csh"),
Expected: "application"+"/"+"x-csh",
},
{
MediaRange: mediarange.Create("application" , "x-freearc"),
Expected: "application"+"/"+"x-freearc",
},
{
MediaRange: mediarange.Create("application" , "x-httpd-php"),
Expected: "application"+"/"+"x-httpd-php",
},
{
MediaRange: mediarange.Create("application" , "x-sh"),
Expected: "application"+"/"+"x-sh",
},
{
MediaRange: mediarange.Create("application" , "x-tar"),
Expected: "application"+"/"+"x-tar",
},
{
MediaRange: mediarange.Create("application" , "xhtml+xml"),
Expected: "application"+"/"+"xhtml+xml",
},
{
MediaRange: mediarange.Create("audio" , "aac"),
Expected: "audio"+"/"+"aac",
},
{
MediaRange: mediarange.Create("audio" , "midi"),
Expected: "audio"+"/"+"midi",
},
{
MediaRange: mediarange.Create("audio" , "mpeg"),
Expected: "audio"+"/"+"mpeg",
},
{
MediaRange: mediarange.Create("audio" , "ogg"),
Expected: "audio"+"/"+"ogg",
},
{
MediaRange: mediarange.Create("audio" , "opus"),
Expected: "audio"+"/"+"opus",
},
{
MediaRange: mediarange.Create("audio" , "wav"),
Expected: "audio"+"/"+"wav",
},
{
MediaRange: mediarange.Create("audio" , "webm"),
Expected: "audio"+"/"+"webm",
},
{
MediaRange: mediarange.Create("audio" , "3gpp"),
Expected: "audio"+"/"+"3gpp",
},
{
MediaRange: mediarange.Create("audio" , "3gpp2"),
Expected: "audio"+"/"+"3gpp2",
},
{
MediaRange: mediarange.Create("audio" , "x-midi"),
Expected: "audio"+"/"+"x-midi",
},
{
MediaRange: mediarange.Create("font" , "ttf"),
Expected: "font"+"/"+"ttf",
},
{
MediaRange: mediarange.Create("image" , "avif"),
Expected: "image"+"/"+"avif",
},
{
MediaRange: mediarange.Create("image" , "bmp"),
Expected: "image"+"/"+"bmp",
},
{
MediaRange: mediarange.Create("image" , "gif"),
Expected: "image"+"/"+"gif",
},
{
MediaRange: mediarange.Create("image" , "png"),
Expected: "image"+"/"+"png",
},
{
MediaRange: mediarange.Create("image" , "tiff"),
Expected: "image"+"/"+"tiff",
},
{
MediaRange: mediarange.Create("text" , "css"),
Expected: "text"+"/"+"css",
},
{
MediaRange: mediarange.Create("text" , "csv"),
Expected: "text"+"/"+"csv",
},
{
MediaRange: mediarange.Create("text" , "html"),
Expected: "text"+"/"+"html",
},
{
MediaRange: mediarange.Create("text" , "javascript"),
Expected: "text"+"/"+"javascript",
},
{
MediaRange: mediarange.Create("text" , "markdown"),
Expected: "text"+"/"+"markdown",
},
{
MediaRange: mediarange.Create("text" , "plain"),
Expected: "text"+"/"+"plain",
},
{
MediaRange: mediarange.Create("text" , "x-markdown"),
Expected: "text"+"/"+"x-markdown",
},
{
MediaRange: mediarange.Create("video" , "3gpp2"),
Expected: "video"+"/"+"3gpp2",
},
{
MediaRange: mediarange.Create("video" , "ogg"),
Expected: "video"+"/"+"ogg",
},
{
MediaRange: mediarange.Create("video" , "mp2t"),
Expected: "video"+"/"+"mp2t",
},
{
MediaRange: mediarange.Create("video" , "mp4"),
Expected: "video"+"/"+"mp4",
},
{
MediaRange: mediarange.Create("video" , "mpeg"),
Expected: "video"+"/"+"mpeg",
},
{
MediaRange: mediarange.Create("video" , "webm"),
Expected: "video"+"/"+"webm",
},
{
MediaRange: mediarange.Create("video" , "x-msvideo"),
Expected: "video"+"/"+"x-msvideo",
},
{
MediaRange: mediarange.Create("application" , "ACTIVITY+JSON"),
Expected: "application"+"/"+"activity+json",
},
{
MediaRange: mediarange.Create("audio" , "MPEG"),
Expected: "audio"+"/"+"mpeg",
},
{
MediaRange: mediarange.Create("font" , "TTF"),
Expected: "font"+"/"+"ttf",
},
{
MediaRange: mediarange.Create("image" , "PNG"),
Expected: "image"+"/"+"png",
},
{
MediaRange: mediarange.Create("text" , "HTML"),
Expected: "text"+"/"+"html",
},
{
MediaRange: mediarange.Create("video" , "OGG"),
Expected: "video"+"/"+"ogg",
},
{
MediaRange: mediarange.Create("xyz" , "BANANA"),
Expected: "xyz"+"/"+"banana",
},
}
for testNumber, test := range tests {
actual := test.MediaRange.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("MEDIA-RANGE: %#v", test.MediaRange)
t.Logf("EXPECTED: %q", expected)
t.Logf("ACTUAL: %q", actual)
continue
}
}
}