435 lines
12 KiB
Go
435 lines
12 KiB
Go
|
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
|
||
|
}
|
||
|
}
|
||
|
}
|