package middleware import ( "net/http" "net/http/httptest" "testing" "github.com/gin-gonic/gin" "github.com/stretchr/testify/assert" ) func TestCCPA_NoHeader(t *testing.T) { gin.SetMode(gin.TestMode) router := gin.New() router.Use(CCPA()) router.GET("/test", func(c *gin.Context) { val, ok := c.Get(CCPAContextKey) assert.False(t, ok) assert.Nil(t, val) c.Status(http.StatusOK) }) req := httptest.NewRequest("GET", "/test", nil) w := httptest.NewRecorder() router.ServeHTTP(w, req) assert.Equal(t, http.StatusOK, w.Code) assert.Empty(t, w.Header().Get("GPC")) } func TestCCPA_SecGPCHeader(t *testing.T) { gin.SetMode(gin.TestMode) router := gin.New() router.Use(CCPA()) router.GET("/test", func(c *gin.Context) { val, ok := c.Get(CCPAContextKey) assert.True(t, ok) assert.True(t, val.(bool)) c.Status(http.StatusOK) }) req := httptest.NewRequest("GET", "/test", nil) req.Header.Set("Sec-GPC", "1") w := httptest.NewRecorder() router.ServeHTTP(w, req) assert.Equal(t, http.StatusOK, w.Code) assert.Equal(t, "1", w.Header().Get("GPC")) }