You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudreve/pkg/filesystem/filesystem_test.go

66 lines
1.3 KiB

package filesystem
import (
model "github.com/HFO4/cloudreve/models"
"github.com/HFO4/cloudreve/pkg/filesystem/local"
"github.com/gin-gonic/gin"
"github.com/stretchr/testify/assert"
"net/http/httptest"
"testing"
)
func TestNewFileSystem(t *testing.T) {
asserts := assert.New(t)
user := model.User{
Policy: model.Policy{
Type: "local",
},
}
fs, err := NewFileSystem(&user)
asserts.NoError(err)
asserts.NotNil(fs.Handler)
user.Policy.Type = "unknown"
fs, err = NewFileSystem(&user)
asserts.Error(err)
}
func TestNewFileSystemFromContext(t *testing.T) {
asserts := assert.New(t)
c, _ := gin.CreateTestContext(httptest.NewRecorder())
c.Set("user", &model.User{
Policy: model.Policy{
Type: "local",
},
})
fs, err := NewFileSystemFromContext(c)
asserts.NotNil(fs)
asserts.NoError(err)
c, _ = gin.CreateTestContext(httptest.NewRecorder())
fs, err = NewFileSystemFromContext(c)
asserts.Nil(fs)
asserts.Error(err)
}
func TestDispatchHandler(t *testing.T) {
asserts := assert.New(t)
fs := &FileSystem{
User: &model.User{Policy: model.Policy{
Type: "local",
}},
}
// 未指定,使用用户默认
err := fs.dispatchHandler()
asserts.NoError(err)
asserts.IsType(local.Handler{}, fs.Handler)
// 已指定,发生错误
fs.Policy = &model.Policy{Type: "unknown"}
err = fs.dispatchHandler()
asserts.Error(err)
}