summaryrefslogtreecommitdiffstats
path: root/model
diff options
context:
space:
mode:
authorhmhealey <harrisonmhealey@gmail.com>2016-01-25 09:43:40 -0500
committerhmhealey <harrisonmhealey@gmail.com>2016-01-25 09:51:17 -0500
commit1cd25cf3806f6ceb2e47a3bc791569cedd0acf1d (patch)
treedfaa1acc75f089d58cdb4877dcdf9768197849be /model
parent93a4e85c2d183a48f84a269c38ad4b91e9c31c14 (diff)
downloadchat-1cd25cf3806f6ceb2e47a3bc791569cedd0acf1d.tar.gz
chat-1cd25cf3806f6ceb2e47a3bc791569cedd0acf1d.tar.bz2
chat-1cd25cf3806f6ceb2e47a3bc791569cedd0acf1d.zip
Fixed serverside errors occurring when getting files with no extension
Diffstat (limited to 'model')
-rw-r--r--model/file_info.go7
-rw-r--r--model/file_info_test.go22
2 files changed, 24 insertions, 5 deletions
diff --git a/model/file_info.go b/model/file_info.go
index 131baff6d..f785042b3 100644
--- a/model/file_info.go
+++ b/model/file_info.go
@@ -32,6 +32,11 @@ func GetInfoForBytes(filename string, data []byte) (*FileInfo, *AppError) {
mimeType = mime.TypeByExtension(extension)
}
+ if extension != "" && extension[0] == '.' {
+ // the client expects a file extension without the leading period
+ extension = extension[1:]
+ }
+
hasPreviewImage := isImage
if mimeType == "image/gif" {
// 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{
Filename: filename,
Size: size,
- Extension: extension[1:],
+ Extension: extension,
MimeType: mimeType,
HasPreviewImage: hasPreviewImage,
}, nil
diff --git a/model/file_info_test.go b/model/file_info_test.go
index ecf0d509c..e89681626 100644
--- a/model/file_info_test.go
+++ b/model/file_info_test.go
@@ -19,7 +19,7 @@ func TestGetInfoForBytes(t *testing.T) {
} else if info.Size != 1000 {
t.Fatalf("Got incorrect size: %v", info.Size)
} 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" {
t.Fatalf("Got incorrect mime type: %v", info.MimeType)
} else if info.HasPreviewImage {
@@ -33,7 +33,7 @@ func TestGetInfoForBytes(t *testing.T) {
} else if info.Size != 1000 {
t.Fatalf("Got incorrect size: %v", info.Size)
} 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" {
t.Fatalf("Got incorrect mime type: %v", info.MimeType)
} else if !info.HasPreviewImage {
@@ -49,7 +49,7 @@ func TestGetInfoForBytes(t *testing.T) {
} else if info.Size != 35 {
t.Fatalf("Got incorrect size: %v", info.Size)
} 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" {
t.Fatalf("Got incorrect mime type: %v", info.MimeType)
} else if !info.HasPreviewImage {
@@ -67,10 +67,24 @@ func TestGetInfoForBytes(t *testing.T) {
} else if info.Size != 38689 {
t.Fatalf("Got incorrect size: %v", info.Size)
} 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" {
t.Fatalf("Got incorrect mime type: %v", info.MimeType)
} else if info.HasPreviewImage {
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")
+ }
}