summaryrefslogtreecommitdiffstats
path: root/utils/file_backend_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'utils/file_backend_test.go')
-rw-r--r--utils/file_backend_test.go287
1 files changed, 0 insertions, 287 deletions
diff --git a/utils/file_backend_test.go b/utils/file_backend_test.go
deleted file mode 100644
index f7ce7ca61..000000000
--- a/utils/file_backend_test.go
+++ /dev/null
@@ -1,287 +0,0 @@
-// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
-// See License.txt for license information.
-
-package utils
-
-import (
- "bytes"
- "fmt"
- "io/ioutil"
- "os"
- "testing"
-
- "github.com/stretchr/testify/require"
- "github.com/stretchr/testify/suite"
-
- "github.com/mattermost/mattermost-server/mlog"
- "github.com/mattermost/mattermost-server/model"
-)
-
-type FileBackendTestSuite struct {
- suite.Suite
-
- settings model.FileSettings
- backend FileBackend
-}
-
-func TestLocalFileBackendTestSuite(t *testing.T) {
- // Setup a global logger to catch tests logging outside of app context
- // The global logger will be stomped by apps initalizing but that's fine for testing. Ideally this won't happen.
- mlog.InitGlobalLogger(mlog.NewLogger(&mlog.LoggerConfiguration{
- EnableConsole: true,
- ConsoleJson: true,
- ConsoleLevel: "error",
- EnableFile: false,
- }))
-
- dir, err := ioutil.TempDir("", "")
- require.NoError(t, err)
- defer os.RemoveAll(dir)
-
- suite.Run(t, &FileBackendTestSuite{
- settings: model.FileSettings{
- DriverName: model.NewString(model.IMAGE_DRIVER_LOCAL),
- Directory: dir,
- },
- })
-}
-
-func TestS3FileBackendTestSuite(t *testing.T) {
- runBackendTest(t, false)
-}
-
-func TestS3FileBackendTestSuiteWithEncryption(t *testing.T) {
- runBackendTest(t, true)
-}
-
-func runBackendTest(t *testing.T, encrypt bool) {
- s3Host := os.Getenv("CI_HOST")
- if s3Host == "" {
- s3Host = "dockerhost"
- }
-
- s3Port := os.Getenv("CI_MINIO_PORT")
- if s3Port == "" {
- s3Port = "9001"
- }
-
- s3Endpoint := fmt.Sprintf("%s:%s", s3Host, s3Port)
-
- suite.Run(t, &FileBackendTestSuite{
- settings: model.FileSettings{
- DriverName: model.NewString(model.IMAGE_DRIVER_S3),
- AmazonS3AccessKeyId: model.MINIO_ACCESS_KEY,
- AmazonS3SecretAccessKey: model.MINIO_SECRET_KEY,
- AmazonS3Bucket: model.MINIO_BUCKET,
- AmazonS3Endpoint: s3Endpoint,
- AmazonS3SSL: model.NewBool(false),
- AmazonS3SSE: model.NewBool(encrypt),
- },
- })
-}
-
-func (s *FileBackendTestSuite) SetupTest() {
- TranslationsPreInit()
-
- backend, err := NewFileBackend(&s.settings, true)
- require.Nil(s.T(), err)
- s.backend = backend
-}
-
-func (s *FileBackendTestSuite) TestConnection() {
- s.Nil(s.backend.TestConnection())
-}
-
-func (s *FileBackendTestSuite) TestReadWriteFile() {
- b := []byte("test")
- path := "tests/" + model.NewId()
-
- written, err := s.backend.WriteFile(bytes.NewReader(b), path)
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
- defer s.backend.RemoveFile(path)
-
- read, err := s.backend.ReadFile(path)
- s.Nil(err)
-
- readString := string(read)
- s.EqualValues(readString, "test")
-}
-
-func (s *FileBackendTestSuite) TestReadWriteFileImage() {
- b := []byte("testimage")
- path := "tests/" + model.NewId() + ".png"
-
- written, err := s.backend.WriteFile(bytes.NewReader(b), path)
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
- defer s.backend.RemoveFile(path)
-
- read, err := s.backend.ReadFile(path)
- s.Nil(err)
-
- readString := string(read)
- s.EqualValues(readString, "testimage")
-}
-
-func (s *FileBackendTestSuite) TestFileExists() {
- b := []byte("testimage")
- path := "tests/" + model.NewId() + ".png"
-
- _, err := s.backend.WriteFile(bytes.NewReader(b), path)
- s.Nil(err)
- defer s.backend.RemoveFile(path)
-
- res, err := s.backend.FileExists(path)
- s.Nil(err)
- s.True(res)
-
- res, err = s.backend.FileExists("tests/idontexist.png")
- s.Nil(err)
- s.False(res)
-}
-
-func (s *FileBackendTestSuite) TestCopyFile() {
- b := []byte("test")
- path1 := "tests/" + model.NewId()
- path2 := "tests/" + model.NewId()
-
- written, err := s.backend.WriteFile(bytes.NewReader(b), path1)
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
- defer s.backend.RemoveFile(path1)
-
- err = s.backend.CopyFile(path1, path2)
- s.Nil(err)
- defer s.backend.RemoveFile(path2)
-
- _, err = s.backend.ReadFile(path1)
- s.Nil(err)
-
- _, err = s.backend.ReadFile(path2)
- s.Nil(err)
-}
-
-func (s *FileBackendTestSuite) TestCopyFileToDirectoryThatDoesntExist() {
- b := []byte("test")
- path1 := "tests/" + model.NewId()
- path2 := "tests/newdirectory/" + model.NewId()
-
- written, err := s.backend.WriteFile(bytes.NewReader(b), path1)
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
- defer s.backend.RemoveFile(path1)
-
- err = s.backend.CopyFile(path1, path2)
- s.Nil(err)
- defer s.backend.RemoveFile(path2)
-
- _, err = s.backend.ReadFile(path1)
- s.Nil(err)
-
- _, err = s.backend.ReadFile(path2)
- s.Nil(err)
-}
-
-func (s *FileBackendTestSuite) TestMoveFile() {
- b := []byte("test")
- path1 := "tests/" + model.NewId()
- path2 := "tests/" + model.NewId()
-
- written, err := s.backend.WriteFile(bytes.NewReader(b), path1)
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
- defer s.backend.RemoveFile(path1)
-
- s.Nil(s.backend.MoveFile(path1, path2))
- defer s.backend.RemoveFile(path2)
-
- _, err = s.backend.ReadFile(path1)
- s.Error(err)
-
- _, err = s.backend.ReadFile(path2)
- s.Nil(err)
-}
-
-func (s *FileBackendTestSuite) TestRemoveFile() {
- b := []byte("test")
- path := "tests/" + model.NewId()
-
- written, err := s.backend.WriteFile(bytes.NewReader(b), path)
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
- s.Nil(s.backend.RemoveFile(path))
-
- _, err = s.backend.ReadFile(path)
- s.Error(err)
-
- written, err = s.backend.WriteFile(bytes.NewReader(b), "tests2/foo")
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
-
- written, err = s.backend.WriteFile(bytes.NewReader(b), "tests2/bar")
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
-
- written, err = s.backend.WriteFile(bytes.NewReader(b), "tests2/asdf")
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
-
- s.Nil(s.backend.RemoveDirectory("tests2"))
-}
-
-func (s *FileBackendTestSuite) TestListDirectory() {
- b := []byte("test")
- path1 := "19700101/" + model.NewId()
- path2 := "19800101/" + model.NewId()
-
- written, err := s.backend.WriteFile(bytes.NewReader(b), path1)
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
- defer s.backend.RemoveFile(path1)
-
- written, err = s.backend.WriteFile(bytes.NewReader(b), path2)
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
- defer s.backend.RemoveFile(path2)
-
- paths, err := s.backend.ListDirectory("")
- s.Nil(err)
-
- found1 := false
- found2 := false
- for _, path := range *paths {
- if path == "19700101" {
- found1 = true
- } else if path == "19800101" {
- found2 = true
- }
- }
- s.True(found1)
- s.True(found2)
-}
-
-func (s *FileBackendTestSuite) TestRemoveDirectory() {
- b := []byte("test")
-
- written, err := s.backend.WriteFile(bytes.NewReader(b), "tests2/foo")
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
-
- written, err = s.backend.WriteFile(bytes.NewReader(b), "tests2/bar")
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
-
- written, err = s.backend.WriteFile(bytes.NewReader(b), "tests2/aaa")
- s.Nil(err)
- s.EqualValues(len(b), written, "expected given number of bytes to have been written")
-
- s.Nil(s.backend.RemoveDirectory("tests2"))
-
- _, err = s.backend.ReadFile("tests2/foo")
- s.Error(err)
- _, err = s.backend.ReadFile("tests2/bar")
- s.Error(err)
- _, err = s.backend.ReadFile("tests2/asdf")
- s.Error(err)
-}