mirror of
https://github.com/Luzifer/go_helpers.git
synced 2024-12-25 21:41:20 +00:00
33 lines
846 B
Go
33 lines
846 B
Go
package http
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCSPClone(t *testing.T) {
|
|
c1 := CSP{"default-src": []CSPSourceValue{CSPSrcNone}}
|
|
c2 := c1.Clone()
|
|
|
|
c2.Add("default-src", CSPSrcSelf) // Makes no sense in real world!
|
|
|
|
assert.NotEqual(t, c1["default-src"], c2["default-src"], "expect c1 not to have changed")
|
|
}
|
|
|
|
func TestCSPToHeaderValue(t *testing.T) {
|
|
c := CSP{}
|
|
c.Set("default-src", CSPSrcNone)
|
|
|
|
c.Set("connect-src", CSPSrcSelf)
|
|
c.Set("font-src", CSPSrcSelf)
|
|
c.Set("img-src", CSPSrcSelf)
|
|
c.Add("img-src", CSPSrcSchemeData)
|
|
c.Set("script-src", CSPSrcSelf)
|
|
c.Add("script-src", CSPSrcUnsafeInline)
|
|
c.Set("style-src", CSPSrcSelf)
|
|
|
|
assert.Equal(t,
|
|
"connect-src 'self';default-src 'none';font-src 'self';img-src 'self' data:;script-src 'self' 'unsafe-inline';style-src 'self'",
|
|
c.ToHeaderValue())
|
|
}
|