git.iko.soy/typeable/oauth2-proxy
on master help sign in
typeable/oauth2-proxy/providers/nextcloud_test.go
67 lines 1.8 kB history raw
1package providers
3import (
4 "net/url"
5 "testing"
7 "github.com/stretchr/testify/assert"
8)
10const formatJSON = "format=json"
12func testNextcloudProvider(hostname string) *NextcloudProvider {
13 p := NewNextcloudProvider(
14 &ProviderData{
15 ProviderName: "",
16 LoginURL: &url.URL{},
17 RedeemURL: &url.URL{},
18 ProfileURL: &url.URL{},
19 ValidateURL: &url.URL{},
20 Scope: ""})
21 if hostname != "" {
22 updateURL(p.Data().LoginURL, hostname)
23 updateURL(p.Data().RedeemURL, hostname)
24 updateURL(p.Data().ProfileURL, hostname)
25 updateURL(p.Data().ValidateURL, hostname)
26 }
27 return p
30func TestNextcloudProviderDefaults(t *testing.T) {
31 p := testNextcloudProvider("")
32 assert.NotEqual(t, nil, p)
33 assert.Equal(t, "Nextcloud", p.Data().ProviderName)
34 assert.Equal(t, "",
35 p.Data().LoginURL.String())
36 assert.Equal(t, "",
37 p.Data().RedeemURL.String())
38 assert.Equal(t, "",
39 p.Data().ValidateURL.String())
42func TestNextcloudProviderOverrides(t *testing.T) {
43 p := NewNextcloudProvider(
44 &ProviderData{
45 LoginURL: &url.URL{
46 Scheme: "https",
47 Host: "example.com",
48 Path: "/index.php/apps/oauth2/authorize"},
49 RedeemURL: &url.URL{
50 Scheme: "https",
51 Host: "example.com",
52 Path: "/index.php/apps/oauth2/api/v1/token"},
53 ValidateURL: &url.URL{
54 Scheme: "https",
55 Host: "example.com",
56 Path: "/test/ocs/v2.php/cloud/user",
57 RawQuery: formatJSON},
58 Scope: "profile"})
59 assert.NotEqual(t, nil, p)
60 assert.Equal(t, "Nextcloud", p.Data().ProviderName)
61 assert.Equal(t, "https://example.com/index.php/apps/oauth2/authorize",
62 p.Data().LoginURL.String())
63 assert.Equal(t, "https://example.com/index.php/apps/oauth2/api/v1/token",
64 p.Data().RedeemURL.String())
65 assert.Equal(t, "https://example.com/test/ocs/v2.php/cloud/user?"+formatJSON,
66 p.Data().ValidateURL.String())