mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-05 03:40:01 -06:00
* initial webfinger stub Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * add webfinger to proxy, return current host Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * some cleanup Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * allow passing multiple rel params Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * introduce interfaces Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * parse oidc auth token Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * add templating, drop chain, use map of relation providers Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * fix ocis url yaml Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * fix typos Co-authored-by: Dominik Schmidt <dschmidt@owncloud.com> * switch to userinfo claims Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * readme cleanup Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * add TODO.md with ideas Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * replace subject on authenticated request responses Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * Apply suggestions from code review Co-authored-by: Martin <github@diemattels.at> * markdown lint Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * return a 401 when bearer token expired, some more docs Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * Apply suggestions from code review Co-authored-by: Martin <github@diemattels.at> * fix docs Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * clarify env var Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * extract handler func Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * use correct service in reflex.conf Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * test relations Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> * Update services/webfinger/pkg/config/config.go --------- Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de> Co-authored-by: Dominik Schmidt <dschmidt@owncloud.com> Co-authored-by: Martin <github@diemattels.at>
66 lines
2.0 KiB
Go
66 lines
2.0 KiB
Go
package relations
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/owncloud/ocis/v2/ocis-pkg/oidc"
|
|
"github.com/owncloud/ocis/v2/services/webfinger/pkg/config"
|
|
"github.com/owncloud/ocis/v2/services/webfinger/pkg/webfinger"
|
|
)
|
|
|
|
func TestOwnCloudInstanceErr(t *testing.T) {
|
|
_, err := OwnCloudInstance([]config.Instance{}, "http://\n\rinvalid")
|
|
if err == nil {
|
|
t.Errorf("provider did not err on invalid url: %v", err)
|
|
}
|
|
_, err = OwnCloudInstance([]config.Instance{{Regex: "("}}, "http://docis.tld")
|
|
if err == nil {
|
|
t.Errorf("provider did not err on invalid regex: %v", err)
|
|
}
|
|
_, err = OwnCloudInstance([]config.Instance{{Href: "{{invalid}}ee"}}, "http://docis.tld")
|
|
if err == nil {
|
|
t.Errorf("provider did not err on invalid href template: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestOwnCloudInstanceAddLink(t *testing.T) {
|
|
provider, err := OwnCloudInstance([]config.Instance{{
|
|
Claim: "customclaim",
|
|
Regex: ".+@.+\\..+",
|
|
Href: "https://{{.otherclaim}}.domain.tld",
|
|
Titles: map[string]string{
|
|
"foo": "bar",
|
|
},
|
|
Break: true,
|
|
}}, "http://docis.tld")
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
ctx := context.Background()
|
|
ctx = oidc.NewContext(ctx, map[string]interface{}{
|
|
"customclaim": "some@fizz.buzz",
|
|
"otherclaim": "someone",
|
|
})
|
|
jrd := webfinger.JSONResourceDescriptor{}
|
|
provider.Add(ctx, &jrd)
|
|
|
|
if len(jrd.Links) != 1 {
|
|
t.Errorf("provider returned wrong number of links: %v, expected 1", len(jrd.Links))
|
|
}
|
|
if jrd.Links[0].Href != "https://someone.domain.tld" {
|
|
t.Errorf("provider returned wrong issuer link href: %v, expected %v", jrd.Links[0].Href, "https://someone.domain.tld")
|
|
}
|
|
if jrd.Links[0].Rel != OwnCloudInstanceRel {
|
|
t.Errorf("provider returned owncloud server instance rel: %v, expected %v", jrd.Links[0].Rel, OwnCloudInstanceRel)
|
|
}
|
|
if len(jrd.Links[0].Titles) != 1 {
|
|
t.Errorf("provider returned wrong number of titles: %v, expected 1", len(jrd.Links[0].Titles))
|
|
}
|
|
if jrd.Links[0].Titles["foo"] != "bar" {
|
|
t.Errorf("provider returned wrong title: %v, expected bar", len(jrd.Links[0].Titles["foo"]))
|
|
}
|
|
|
|
}
|