From bae1843f1a1d644fb3bd4f8c40b1dbb900aa3325 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Sun, 1 Aug 2021 14:51:28 +0200 Subject: Use guile parameters With parameters, the API does not need to care about the directory where to load files and how to get the time. --- tests/token-endpoint-issue.scm | 72 ++++++++++++++++++++---------------------- 1 file changed, 35 insertions(+), 37 deletions(-) (limited to 'tests/token-endpoint-issue.scm') diff --git a/tests/token-endpoint-issue.scm b/tests/token-endpoint-issue.scm index 6f7d4dc..9438dfe 100644 --- a/tests/token-endpoint-issue.scm +++ b/tests/token-endpoint-issue.scm @@ -22,6 +22,7 @@ (webid-oidc jti) (webid-oidc testing) ((webid-oidc stubs) #:prefix stubs:) + ((webid-oidc parameters) #:prefix p:) (web uri) (web request) (web response) @@ -40,50 +41,27 @@ (define client (string->uri "https://token-endpoint-issue.scm/client/card#app")) (define issuer (string->uri "https://issuer.token-endpoint-issue.scm")) (define validity 3600) - (define jti-list (make-jti-list)) - (define authz (issue-authorization-code - alg key - (time-utc->date (make-time time-utc 0 120)) - subject - client)) - (define the-time 0) - (define (current-time) - (make-time time-utc 0 the-time)) - (define endpoint (make-token-endpoint - (string->uri "https://token-endpoint-issue.scm/token") - issuer alg key validity jti-list - #:current-time current-time)) + (define authz + (issue-authorization-code + alg key + (time-utc->date (make-time time-utc 0 120)) + subject + client)) + (define endpoint + (make-token-endpoint + (string->uri "https://token-endpoint-issue.scm/token") + issuer alg key validity)) (receive (response response-body user error) ;; The code is fake! (let ((dpop - (issue-dpop-proof - client-key - #:alg alg - #:htm 'POST - #:htu (string->uri - "https://token-endpoint-issue.scm/token") - #:iat (time-utc->date (make-time time-utc 0 0))))) - (set! the-time 0) - (endpoint - (build-request (string->uri - "http://localhost:8080/token") - #:headers `((content-type application/x-www-form-urlencoded) - (dpop . ,dpop)) - #:method 'POST - #:port #t) - "grant_type=authorization_code&code=fake")) - (unless (eq? (response-code response) 400) - (exit 3)) - (receive (response response-body user error) - (let ((dpop + (parameterize ((p:current-date 0)) (issue-dpop-proof client-key #:alg alg #:htm 'POST #:htu (string->uri - "https://token-endpoint-issue.scm/token") - #:iat (time-utc->date (make-time time-utc 0 10))))) - (set! the-time 10) + "https://token-endpoint-issue.scm/token"))))) + (parameterize ((p:current-date 0)) (endpoint (build-request (string->uri "http://localhost:8080/token") @@ -91,7 +69,27 @@ (dpop . ,dpop)) #:method 'POST #:port #t) - (string-append "grant_type=authorization_code&code=" authz))) + "grant_type=authorization_code&code=fake"))) + (unless (eq? (response-code response) 400) + (exit 3)) + (receive (response response-body user error) + (let ((dpop + (parameterize ((p:current-date 10)) + (issue-dpop-proof + client-key + #:alg alg + #:htm 'POST + #:htu (string->uri + "https://token-endpoint-issue.scm/token"))))) + (parameterize ((p:current-date 10)) + (endpoint + (build-request (string->uri + "http://localhost:8080/token") + #:headers `((content-type application/x-www-form-urlencoded) + (dpop . ,dpop)) + #:method 'POST + #:port #t) + (string-append "grant_type=authorization_code&code=" authz)))) (unless (eq? (response-code response) 200) (write response) (exit 4)) -- cgit v1.2.3