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) }