refactoring: now detecting file type using filename from form data. Also, only one accepted content type

This commit is contained in:
Julien Neuhart
2018-04-08 21:49:02 +02:00
parent cdeef33ff7
commit bca02f6198
14 changed files with 119 additions and 400 deletions

View File

@@ -2,6 +2,7 @@ package file
import (
"bytes"
"fmt"
"os"
"path/filepath"
"testing"
@@ -11,56 +12,27 @@ func TestNewFile(t *testing.T) {
workingDir := "test"
os.Mkdir(workingDir, 0666)
// case 1: uses an empty reader.
if _, err := NewFile(workingDir, new(bytes.Buffer)); err == nil {
t.Error("File should not have been instantiated!")
}
// case 2: uses a reader from a wrong file type.
path, _ := filepath.Abs("../../../_tests/configurations/gotenberg.yml")
r, _ := os.Open(path)
defer r.Close()
if _, err := NewFile(workingDir, r); err == nil {
// case 2: uses a wrong file name.
if _, err := NewFile(workingDir, new(bytes.Buffer), "file.yml"); err == nil {
t.Error("File should not have been instantiated!")
}
// case 3: uses a reader from a correct file type.
path, _ = filepath.Abs("../../../_tests/file.pdf")
r, _ = os.Open(path)
filePath, _ := filepath.Abs("../../../_tests/file.pdf")
r, _ := os.Open(filePath)
defer r.Close()
if _, err := NewFile(workingDir, r); err != nil {
if _, err := NewFile(workingDir, r, "file.pdf"); err != nil {
t.Error("File should have been instantiated!")
}
os.RemoveAll(workingDir)
}
func TestReworkFilePath(t *testing.T) {
workingDir := "test"
os.Mkdir(workingDir, 0666)
f := &File{
Path: MakeFilePath(workingDir),
Type: 999,
}
if _, err := reworkFilePath(workingDir, f); err == nil {
t.Error("It should not have been able to found the file extension!")
}
os.RemoveAll(workingDir)
}
func TestFileTypeNotFoundError(t *testing.T) {
err := &fileTypeNotFoundError{}
if err.Error() != fileTypeNotFoundErrorMessage {
t.Errorf("Error returned a wrong message: got %s want %s", err.Error(), fileTypeNotFoundErrorMessage)
}
}
fileName := "file.wp"
err := &fileTypeNotFoundError{fileName: fileName}
expected := fmt.Sprintf("File type was not found for '%s'", fileName)
func TestFileExtNotFoundError(t *testing.T) {
err := &fileExtNotFoundError{}
if err.Error() != fileExtNotFoundErrorMessage {
t.Errorf("Error returned a wrong message: got %s want %s", err.Error(), fileExtNotFoundErrorMessage)
if err.Error() != expected {
t.Errorf("Error returned a wrong message: got %s want %s", err.Error(), expected)
}
}