summaryrefslogtreecommitdiff
path: root/tests/client-manifest-public.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/client-manifest-public.scm')
-rw-r--r--tests/client-manifest-public.scm33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/client-manifest-public.scm b/tests/client-manifest-public.scm
new file mode 100644
index 0000000..e285782
--- /dev/null
+++ b/tests/client-manifest-public.scm
@@ -0,0 +1,33 @@
+(use-modules (webid-oidc client-manifest)
+ (webid-oidc testing)
+ (webid-oidc errors)
+ (web uri)
+ (srfi srfi-19)
+ (web response))
+
+(with-test-environment
+ "client-manifest-public"
+ (lambda ()
+ (define mf
+ (get-client-manifest
+ (string->uri "http://www.w3.org/ns/solid/terms#PublicOidcClient")
+ #:http-get
+ (lambda args
+ (exit 1))))
+ (define id (client-manifest-client-id mf))
+ (unless (equal? id (string->uri "http://www.w3.org/ns/solid/terms#PublicOidcClient"))
+ (exit 2))
+ (unless (client-manifest-check-redirect-uri mf "https://example.com")
+ (exit 3))
+ (with-exception-handler
+ (lambda (error)
+ (unless ((record-predicate &cannot-serve-public-manifest) error)
+ (exit 4)))
+ (lambda ()
+ (serve-client-manifest
+ (time-utc->date
+ (make-time time-utc 0 0))
+ mf)
+ (exit 5))
+ #:unwind? #t
+ #:unwind-for-type &cannot-serve-public-manifest)))