func TestMatchMap(t *testing.T) { cases := []struct { buf []byte kind types.Type }{ {[]byte{0xFF, 0xD8, 0xFF}, types.Get("jpg")}, {[]byte{0x89, 0x50, 0x4E, 0x47}, types.Get("png")}, {[]byte{0xFF, 0x0, 0x0}, Unknown}, } for _, test := range cases { if kind := MatchMap(test.buf, matchers.Image); kind != test.kind { t.Fatalf("Do not matches: %#v", test.buf) } } }
func TestIsType(t *testing.T) { cases := []struct { buf []byte kind types.Type match bool }{ {[]byte{0xFF, 0xD8, 0xFF}, types.Get("jpg"), true}, {[]byte{0xFF, 0xD8, 0x00}, types.Get("jpg"), false}, {[]byte{0x89, 0x50, 0x4E, 0x47}, types.Get("png"), true}, } for _, test := range cases { if IsType(test.buf, test.kind) != test.match { t.Fatalf("Invalid match: %s", test.kind.Extension) } } }
// Retrieve a Type by file extension func GetType(ext string) types.Type { return types.Get(ext) }