mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-03-19 16:07:23 -04:00
* add policies service add policies proxy middleware add policies event service add policies grpc service prepare ci and git environments (ci, make, readme, doc) * add webfinger to the drone conf * fix docs remove not used virus scan postprocessing step * relocate example rego file implicitly enable and disable proxy and postprocessing policy checking by setting the query. update configuration descriptions * move policies update readme * use converter func to convert pp environment to actual environment expose and test custom rego functions add engine unit tests add opa unit tests update policies readme Co-authored-by: Martin <github@diemattels.at> * relocate sample policies to the deployments folder change and document policies service port * update index.md and small fix * add health command add version command add debug server --------- Co-authored-by: Martin <github@diemattels.at>
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package engine_test
|
|
|
|
import (
|
|
"context"
|
|
"encoding/base64"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
"github.com/open-policy-agent/opa/rego"
|
|
"github.com/owncloud/ocis/v2/services/policies/pkg/engine"
|
|
)
|
|
|
|
var _ = Describe("Opa", func() {
|
|
Describe("Custom OPA function", func() {
|
|
Describe("GetResource", func() {
|
|
It("loads reva resources", func() {
|
|
ts := []byte("Lorem Ipsum is simply dummy text of the printing and typesetting")
|
|
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
w.Write(ts)
|
|
}))
|
|
defer srv.Close()
|
|
|
|
r := rego.New(rego.Query(`ocis_get_resource("`+srv.URL+`")`), engine.GetResource)
|
|
rs, err := r.Eval(context.Background())
|
|
Expect(err).ToNot(HaveOccurred())
|
|
|
|
data, err := base64.StdEncoding.DecodeString(rs[0].Expressions[0].String())
|
|
Expect(err).ToNot(HaveOccurred())
|
|
|
|
Expect(data).To(Equal(ts))
|
|
|
|
})
|
|
})
|
|
|
|
Describe("GetMimetype", func() {
|
|
It("is defined and returns a mimetype", func() {
|
|
r := rego.New(rego.Query(`ocis_get_mimetype("")`), engine.GetMimetype)
|
|
rs, err := r.Eval(context.Background())
|
|
Expect(err).ToNot(HaveOccurred())
|
|
Expect(rs[0].Expressions[0].String()).To(Equal("text/plain"))
|
|
})
|
|
})
|
|
})
|
|
})
|