summaryrefslogtreecommitdiffstats
path: root/api4/apitestlib.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-02-17 10:31:21 -0500
committerGitHub <noreply@github.com>2017-02-17 10:31:21 -0500
commit91fe8bb2c0d520f13269b2eadc2717a5ec4eea1c (patch)
tree088fc7015274975c4f1494a5b5afe72af84b6966 /api4/apitestlib.go
parent4e7dbc3bb0e93bafa684594b19c5648dc030ee17 (diff)
downloadchat-91fe8bb2c0d520f13269b2eadc2717a5ec4eea1c.tar.gz
chat-91fe8bb2c0d520f13269b2eadc2717a5ec4eea1c.tar.bz2
chat-91fe8bb2c0d520f13269b2eadc2717a5ec4eea1c.zip
Implement upload and get file endpoints for APIv4 (#5396)
* Implement POST /files endpoint for APIv4 * Implement GET /files/{file_id} endpoint for APIv4
Diffstat (limited to 'api4/apitestlib.go')
-rw-r--r--api4/apitestlib.go68
1 files changed, 68 insertions, 0 deletions
diff --git a/api4/apitestlib.go b/api4/apitestlib.go
index 08ca338c5..27bf83f10 100644
--- a/api4/apitestlib.go
+++ b/api4/apitestlib.go
@@ -4,7 +4,10 @@
package api4
import (
+ "bytes"
+ "io"
"net/http"
+ "os"
"reflect"
"runtime/debug"
"strconv"
@@ -17,6 +20,8 @@ import (
"github.com/mattermost/platform/model"
"github.com/mattermost/platform/store"
"github.com/mattermost/platform/utils"
+
+ s3 "github.com/minio/minio-go"
)
type TestHelper struct {
@@ -398,3 +403,66 @@ func CheckErrorMessage(t *testing.T, resp *model.Response, errorId string) {
t.Fatal("incorrect error message")
}
}
+
+func readTestFile(name string) ([]byte, error) {
+ path := utils.FindDir("tests")
+ file, err := os.Open(path + "/" + name)
+ if err != nil {
+ return nil, err
+ }
+ defer file.Close()
+
+ data := &bytes.Buffer{}
+ if _, err := io.Copy(data, file); err != nil {
+ return nil, err
+ } else {
+ return data.Bytes(), nil
+ }
+}
+
+func cleanupTestFile(info *model.FileInfo) error {
+ if utils.Cfg.FileSettings.DriverName == model.IMAGE_DRIVER_S3 {
+ endpoint := utils.Cfg.FileSettings.AmazonS3Endpoint
+ accessKey := utils.Cfg.FileSettings.AmazonS3AccessKeyId
+ secretKey := utils.Cfg.FileSettings.AmazonS3SecretAccessKey
+ secure := *utils.Cfg.FileSettings.AmazonS3SSL
+ s3Clnt, err := s3.New(endpoint, accessKey, secretKey, secure)
+ if err != nil {
+ return err
+ }
+ bucket := utils.Cfg.FileSettings.AmazonS3Bucket
+ if err := s3Clnt.RemoveObject(bucket, info.Path); err != nil {
+ return err
+ }
+
+ if info.ThumbnailPath != "" {
+ if err := s3Clnt.RemoveObject(bucket, info.ThumbnailPath); err != nil {
+ return err
+ }
+ }
+
+ if info.PreviewPath != "" {
+ if err := s3Clnt.RemoveObject(bucket, info.PreviewPath); err != nil {
+ return err
+ }
+ }
+ } else if utils.Cfg.FileSettings.DriverName == model.IMAGE_DRIVER_LOCAL {
+ if err := os.Remove(utils.Cfg.FileSettings.Directory + info.Path); err != nil {
+ return err
+ }
+
+ if info.ThumbnailPath != "" {
+ if err := os.Remove(utils.Cfg.FileSettings.Directory + info.ThumbnailPath); err != nil {
+ return err
+ }
+ }
+
+ if info.PreviewPath != "" {
+ if err := os.Remove(utils.Cfg.FileSettings.Directory + info.PreviewPath); err != nil {
+ return err
+ }
+ }
+ }
+
+ return nil
+}