mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2025-12-27 00:00:49 -05:00
41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package middleware
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"gotest.tools/v3/assert"
|
|
"gotest.tools/v3/assert/cmp"
|
|
)
|
|
|
|
func TestLoadCSPConfig(t *testing.T) {
|
|
// setup test env
|
|
presetYaml := `
|
|
directives:
|
|
frame-src:
|
|
- '''self'''
|
|
- 'https://embed.diagrams.net/'
|
|
- 'https://${ONLYOFFICE_DOMAIN|onlyoffice.opencloud.test}/'
|
|
- 'https://${COLLABORA_DOMAIN|collabora.opencloud.test}/'
|
|
`
|
|
|
|
customYaml := `
|
|
directives:
|
|
img-src:
|
|
- '''self'''
|
|
- 'data:'
|
|
frame-src:
|
|
- 'https://some.custom.domain/'
|
|
`
|
|
config, err := loadCSPConfig([]byte(presetYaml), []byte(customYaml))
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
assert.Assert(t, cmp.Contains(config.Directives["frame-src"], "'self'"))
|
|
assert.Assert(t, cmp.Contains(config.Directives["frame-src"], "https://embed.diagrams.net/"))
|
|
assert.Assert(t, cmp.Contains(config.Directives["frame-src"], "https://onlyoffice.opencloud.test/"))
|
|
assert.Assert(t, cmp.Contains(config.Directives["frame-src"], "https://collabora.opencloud.test/"))
|
|
|
|
assert.Assert(t, cmp.Contains(config.Directives["img-src"], "'self'"))
|
|
assert.Assert(t, cmp.Contains(config.Directives["img-src"], "data:"))
|
|
}
|