mirror of
				https://github.com/cloudreve/cloudreve.git
				synced 2025-10-31 08:39:10 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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)
 | |
| }
 | 
