diff options
author | Vivien Kraus <vivien@planete-kraus.eu> | 2021-09-21 19:49:24 +0200 |
---|---|---|
committer | Vivien Kraus <vivien@planete-kraus.eu> | 2021-09-21 22:34:45 +0200 |
commit | 0d74f8c1ca9c1e9bf9a04b85f598ba7a175d1d86 (patch) | |
tree | bcac166559940b2785e5925aedd2ce39e751d9fa /tests/oidc-configuration.scm | |
parent | 3be4b418a4ec1e94d28401810ff8629ddc86adf9 (diff) |
OIDC configuration: use GOOPS and document it
Diffstat (limited to 'tests/oidc-configuration.scm')
-rw-r--r-- | tests/oidc-configuration.scm | 58 |
1 files changed, 33 insertions, 25 deletions
diff --git a/tests/oidc-configuration.scm b/tests/oidc-configuration.scm index 7f76280..736c3f8 100644 --- a/tests/oidc-configuration.scm +++ b/tests/oidc-configuration.scm @@ -14,16 +14,19 @@ ;; You should have received a copy of the GNU Affero General Public License ;; along with this program. If not, see <https://www.gnu.org/licenses/>. -(use-modules (webid-oidc oidc-configuration) - (webid-oidc jwk) - (webid-oidc cache) - (webid-oidc testing) - ((webid-oidc stubs) #:prefix stubs:) - (web uri) - (web response) - (srfi srfi-19) - (ice-9 receive) - (oop goops)) +(define-module (tests oidc-configuration) + #:use-module (webid-oidc oidc-configuration) + #:use-module (webid-oidc jwk) + #:use-module (webid-oidc cache) + #:use-module (webid-oidc testing) + #:use-module ((webid-oidc stubs) #:prefix stubs:) + #:use-module ((webid-oidc parameters) #:prefix p:) + #:use-module (web uri) + #:use-module (web response) + #:use-module (srfi srfi-19) + #:use-module (ice-9 receive) + #:use-module (oop goops) + #:duplicates (merge-generics)) (with-test-environment "oidc-configuration" @@ -120,26 +123,31 @@ (define cache-http-get (with-cache #:http-get respond)) - (define cfg (get-oidc-configuration - "example.com" - #:http-get cache-http-get)) - (define jwks (oidc-configuration-jwks - cfg - #:http-get cache-http-get)) - (unless (oidc-configuration? cfg) + (define cfg + (make <oidc-configuration> + #:server "example.com" + #:http-request cache-http-get)) + (define my-jwks + (parameterize ((p:anonymous-http-request cache-http-get)) + (jwks cfg))) + (unless (is-a? cfg <oidc-configuration>) (exit 3)) - (unless (is-a? jwks <jwks>) + (unless (is-a? my-jwks <jwks>) (exit 4)) - (let ((my-oidc `((jwks_uri . "https://example.com/keys") - (authorization_endpoint . "https://example.com/authorize") - (token_endpoint . "https://example.com/token") - (solid_oidc_supported . "https://solidproject.org/TR/solid-oidc")))) + (let ((my-oidc + (make <oidc-configuration> + #:jwks-uri "https://example.com/keys" + #:authorization-endpoint "https://example.com/authorize" + #:token-endpoint "https://example.com/token" + #:solid-oidc-supported "https://solidproject.org/TR/solid-oidc"))) (receive (response response-body) - (serve-oidc-configuration (time-utc->date (make-time time-utc 0 3600)) - my-oidc) + (serve my-oidc (time-utc->date (make-time time-utc 0 3600))) (unless (eqv? (car (response-content-type response)) 'application/json) (exit 5)) - (let ((parsed (the-oidc-configuration (stubs:json-string->scm response-body)))) + (let ((parsed + (->json-data + (make <oidc-configuration> + #:json-data (stubs:json-string->scm response-body))))) (unless (equal? (assq-ref parsed 'jwks_uri) "https://example.com/keys") (exit 7)) |