Fixed serverside errors occurring when getting files with no extension

Этот коммит содержится в:
hmhealey
2016-01-25 09:43:40 -05:00
родитель 93a4e85c2d
Коммит 1cd25cf380
2 изменённых файлов: 24 добавлений и 5 удалений

Просмотреть файл

@@ -32,6 +32,11 @@ func GetInfoForBytes(filename string, data []byte) (*FileInfo, *AppError) {
mimeType = mime.TypeByExtension(extension) mimeType = mime.TypeByExtension(extension)
} }
if extension != "" && extension[0] == '.' {
// the client expects a file extension without the leading period
extension = extension[1:]
}
hasPreviewImage := isImage hasPreviewImage := isImage
if mimeType == "image/gif" { if mimeType == "image/gif" {
// just show the gif itself instead of a preview image for animated gifs // just show the gif itself instead of a preview image for animated gifs
@@ -45,7 +50,7 @@ func GetInfoForBytes(filename string, data []byte) (*FileInfo, *AppError) {
return &FileInfo{ return &FileInfo{
Filename: filename, Filename: filename,
Size: size, Size: size,
Extension: extension[1:], Extension: extension,
MimeType: mimeType, MimeType: mimeType,
HasPreviewImage: hasPreviewImage, HasPreviewImage: hasPreviewImage,
}, nil }, nil

Просмотреть файл

@@ -19,7 +19,7 @@ func TestGetInfoForBytes(t *testing.T) {
} else if info.Size != 1000 { } else if info.Size != 1000 {
t.Fatalf("Got incorrect size: %v", info.Size) t.Fatalf("Got incorrect size: %v", info.Size)
} else if info.Extension != "txt" { } else if info.Extension != "txt" {
t.Fatalf("Git incorrect file extension: %v", info.Extension) t.Fatalf("Got incorrect file extension: %v", info.Extension)
} else if info.MimeType != "text/plain; charset=utf-8" { } else if info.MimeType != "text/plain; charset=utf-8" {
t.Fatalf("Got incorrect mime type: %v", info.MimeType) t.Fatalf("Got incorrect mime type: %v", info.MimeType)
} else if info.HasPreviewImage { } else if info.HasPreviewImage {
@@ -33,7 +33,7 @@ func TestGetInfoForBytes(t *testing.T) {
} else if info.Size != 1000 { } else if info.Size != 1000 {
t.Fatalf("Got incorrect size: %v", info.Size) t.Fatalf("Got incorrect size: %v", info.Size)
} else if info.Extension != "png" { } else if info.Extension != "png" {
t.Fatalf("Git incorrect file extension: %v", info.Extension) t.Fatalf("Got incorrect file extension: %v", info.Extension)
} else if info.MimeType != "image/png" { } else if info.MimeType != "image/png" {
t.Fatalf("Got incorrect mime type: %v", info.MimeType) t.Fatalf("Got incorrect mime type: %v", info.MimeType)
} else if !info.HasPreviewImage { } else if !info.HasPreviewImage {
@@ -49,7 +49,7 @@ func TestGetInfoForBytes(t *testing.T) {
} else if info.Size != 35 { } else if info.Size != 35 {
t.Fatalf("Got incorrect size: %v", info.Size) t.Fatalf("Got incorrect size: %v", info.Size)
} else if info.Extension != "gif" { } else if info.Extension != "gif" {
t.Fatalf("Git incorrect file extension: %v", info.Extension) t.Fatalf("Got incorrect file extension: %v", info.Extension)
} else if info.MimeType != "image/gif" { } else if info.MimeType != "image/gif" {
t.Fatalf("Got incorrect mime type: %v", info.MimeType) t.Fatalf("Got incorrect mime type: %v", info.MimeType)
} else if !info.HasPreviewImage { } else if !info.HasPreviewImage {
@@ -67,10 +67,24 @@ func TestGetInfoForBytes(t *testing.T) {
} else if info.Size != 38689 { } else if info.Size != 38689 {
t.Fatalf("Got incorrect size: %v", info.Size) t.Fatalf("Got incorrect size: %v", info.Size)
} else if info.Extension != "gif" { } else if info.Extension != "gif" {
t.Fatalf("Git incorrect file extension: %v", info.Extension) t.Fatalf("Got incorrect file extension: %v", info.Extension)
} else if info.MimeType != "image/gif" { } else if info.MimeType != "image/gif" {
t.Fatalf("Got incorrect mime type: %v", info.MimeType) t.Fatalf("Got incorrect mime type: %v", info.MimeType)
} else if info.HasPreviewImage { } else if info.HasPreviewImage {
t.Fatalf("Got HasPreviewImage = true for animated gif") t.Fatalf("Got HasPreviewImage = true for animated gif")
} }
if info, err := GetInfoForBytes("filewithoutextension", fakeFile); err != nil {
t.Fatal(err)
} else if info.Filename != "filewithoutextension" {
t.Fatalf("Got incorrect filename: %v", info.Filename)
} else if info.Size != 1000 {
t.Fatalf("Got incorrect size: %v", info.Size)
} else if info.Extension != "" {
t.Fatalf("Got incorrect file extension: %v", info.Extension)
} else if info.MimeType != "" {
t.Fatalf("Got incorrect mime type: %v", info.MimeType)
} else if info.HasPreviewImage {
t.Fatalf("Got HasPreviewImage = true for non-image file")
}
} }