mirror of
				https://github.com/cloudreve/cloudreve.git
				synced 2025-10-31 08:39:10 +08:00 
			
		
		
		
	 79b8784934
			
		
	
	79b8784934
	
	
	
		
			
			* Code: compatible with semantic import versioning * Tools & Docs: compatible with semantic import versioning * Clean go.mod & go.sum
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package middleware
 | |
| 
 | |
| import (
 | |
| 	"net/http"
 | |
| 	"net/http/httptest"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/cloudreve/Cloudreve/v3/pkg/conf"
 | |
| 	"github.com/cloudreve/Cloudreve/v3/pkg/util"
 | |
| 	"github.com/gin-gonic/gin"
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| func TestSession(t *testing.T) {
 | |
| 	asserts := assert.New(t)
 | |
| 
 | |
| 	{
 | |
| 		handler := Session("2333")
 | |
| 		asserts.NotNil(handler)
 | |
| 		asserts.NotNil(Store)
 | |
| 		asserts.IsType(emptyFunc(), handler)
 | |
| 	}
 | |
| 	{
 | |
| 		conf.RedisConfig.Server = "123"
 | |
| 		asserts.Panics(func() {
 | |
| 			Session("2333")
 | |
| 		})
 | |
| 		conf.RedisConfig.Server = ""
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| func emptyFunc() gin.HandlerFunc {
 | |
| 	return func(c *gin.Context) {}
 | |
| }
 | |
| 
 | |
| func TestCSRFInit(t *testing.T) {
 | |
| 	asserts := assert.New(t)
 | |
| 	rec := httptest.NewRecorder()
 | |
| 	sessionFunc := Session("233")
 | |
| 	{
 | |
| 		c, _ := gin.CreateTestContext(rec)
 | |
| 		c.Request, _ = http.NewRequest("GET", "/test", nil)
 | |
| 		sessionFunc(c)
 | |
| 		CSRFInit()(c)
 | |
| 		asserts.True(util.GetSession(c, "CSRF").(bool))
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestCSRFCheck(t *testing.T) {
 | |
| 	asserts := assert.New(t)
 | |
| 	rec := httptest.NewRecorder()
 | |
| 	sessionFunc := Session("233")
 | |
| 
 | |
| 	// 通过检查
 | |
| 	{
 | |
| 		c, _ := gin.CreateTestContext(rec)
 | |
| 		c.Request, _ = http.NewRequest("GET", "/test", nil)
 | |
| 		sessionFunc(c)
 | |
| 		CSRFInit()(c)
 | |
| 		CSRFCheck()(c)
 | |
| 		asserts.False(c.IsAborted())
 | |
| 	}
 | |
| 
 | |
| 	// 未通过检查
 | |
| 	{
 | |
| 		c, _ := gin.CreateTestContext(rec)
 | |
| 		c.Request, _ = http.NewRequest("GET", "/test", nil)
 | |
| 		sessionFunc(c)
 | |
| 		CSRFCheck()(c)
 | |
| 		asserts.True(c.IsAborted())
 | |
| 	}
 | |
| }
 |