105 lines
2.7 KiB
Go
105 lines
2.7 KiB
Go
package middleware
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestRequireSession_NoSession_Cov3b(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
w := httptest.NewRecorder()
|
|
c, _ := gin.CreateTestContext(w)
|
|
c.Request = httptest.NewRequest("GET", "/", nil)
|
|
mw := RequireSession()
|
|
mw(c)
|
|
assert.True(t, c.IsAborted())
|
|
assert.Equal(t, http.StatusUnauthorized, w.Code)
|
|
}
|
|
|
|
func TestRequireSession_WithSession_Cov3b(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
w := httptest.NewRecorder()
|
|
c, _ := gin.CreateTestContext(w)
|
|
c.Request = httptest.NewRequest("GET", "/", nil)
|
|
c.Set("session_id", "test-session")
|
|
mw := RequireSession()
|
|
mw(c)
|
|
assert.False(t, c.IsAborted())
|
|
}
|
|
|
|
func TestRequireSession_EmptySession_Cov3b(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
w := httptest.NewRecorder()
|
|
c, _ := gin.CreateTestContext(w)
|
|
c.Request = httptest.NewRequest("GET", "/", nil)
|
|
c.Set("session_id", "")
|
|
mw := RequireSession()
|
|
mw(c)
|
|
assert.True(t, c.IsAborted())
|
|
}
|
|
|
|
func TestSuperAdminOrAdministrator_NoContext_Cov3b(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
w := httptest.NewRecorder()
|
|
c, _ := gin.CreateTestContext(w)
|
|
c.Request = httptest.NewRequest("GET", "/", nil)
|
|
mw := SuperAdminOrAdministrator()
|
|
mw(c)
|
|
assert.True(t, c.IsAborted())
|
|
}
|
|
|
|
func TestSuperAdminOrAdministrator_SuperAdmin_Cov3b(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
w := httptest.NewRecorder()
|
|
c, _ := gin.CreateTestContext(w)
|
|
c.Request = httptest.NewRequest("GET", "/", nil)
|
|
c.Set("user_type", "SuperAdmin")
|
|
mw := SuperAdminOrAdministrator()
|
|
mw(c)
|
|
assert.False(t, c.IsAborted())
|
|
}
|
|
|
|
func TestSuperAdminOrAdministrator_Administrator_Cov3b(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
w := httptest.NewRecorder()
|
|
c, _ := gin.CreateTestContext(w)
|
|
c.Request = httptest.NewRequest("GET", "/", nil)
|
|
c.Set("policy_context", nil)
|
|
mw := SuperAdminOrAdministrator()
|
|
mw(c)
|
|
assert.True(t, c.IsAborted())
|
|
}
|
|
|
|
func TestUploadSecurityMiddleware_NilConfig_Cov3b(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
w := httptest.NewRecorder()
|
|
c, _ := gin.CreateTestContext(w)
|
|
c.Request = httptest.NewRequest("GET", "/", nil)
|
|
mw := UploadSecurityMiddleware(nil)
|
|
mw(c)
|
|
assert.False(t, c.IsAborted())
|
|
}
|
|
|
|
func TestUploadSecurityMiddleware_NoMultipart_Cov3b(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
w := httptest.NewRecorder()
|
|
c, _ := gin.CreateTestContext(w)
|
|
c.Request = httptest.NewRequest("GET", "/", nil)
|
|
cfg := DefaultUploadSecurityConfig()
|
|
mw := UploadSecurityMiddleware(cfg)
|
|
mw(c)
|
|
assert.False(t, c.IsAborted())
|
|
}
|
|
|
|
func TestInspectZipArchive_NotZip_Cov3b(t *testing.T) {
|
|
r := strings.NewReader("not a zip file")
|
|
cfg := DefaultUploadSecurityConfig()
|
|
err := inspectZipArchive(r, 14, cfg)
|
|
assert.Error(t, err)
|
|
}
|