summaryrefslogtreecommitdiff
path: root/tests/oidc-configuration.scm
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2021-09-21 19:49:24 +0200
committerVivien Kraus <vivien@planete-kraus.eu>2021-09-21 22:34:45 +0200
commit0d74f8c1ca9c1e9bf9a04b85f598ba7a175d1d86 (patch)
treebcac166559940b2785e5925aedd2ce39e751d9fa /tests/oidc-configuration.scm
parent3be4b418a4ec1e94d28401810ff8629ddc86adf9 (diff)
OIDC configuration: use GOOPS and document it
Diffstat (limited to 'tests/oidc-configuration.scm')
-rw-r--r--tests/oidc-configuration.scm58
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))