summaryrefslogtreecommitdiff
path: root/tests/server-content.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/server-content.scm')
-rw-r--r--tests/server-content.scm54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/server-content.scm b/tests/server-content.scm
new file mode 100644
index 0000000..c546dea
--- /dev/null
+++ b/tests/server-content.scm
@@ -0,0 +1,54 @@
+(use-modules (webid-oidc server resource content)
+ (webid-oidc fetch)
+ (webid-oidc testing)
+ (webid-oidc errors)
+ (web uri)
+ (web response)
+ (rnrs bytevectors)
+ (ice-9 optargs)
+ (ice-9 receive)
+ (oop goops))
+
+(with-test-environment
+ "server-content"
+ (lambda ()
+ (false-if-exception
+ ;; This is the etag of the root with the seed of the test
+ (delete-file "tests/server-content.home/webid-oidc/server/content/6/8OMG_V5x-KmI6TI"))
+ (false-if-exception
+ ;; This is the etag of /wtf
+ (delete-file "tests/server-content.home/webid-oidc/server/content/X/hqM_2Avn5_egTzs"))
+ (receive (/ /wtf)
+ (with-session
+ (lambda (content-type contained static-content create delete)
+ (let ((/ (create 'text/turtle '("/whatever" "/you" "/want")
+ "# This is the content of the root"))
+ (/wtf (create 'text/plain '() "This is the content of the wtf")))
+ (unless (equal? (static-content /wtf)
+ (string->utf8 "This is the content of the wtf"))
+ (exit 1))
+ (delete /wtf)
+ (unless (eq? (content-type /wtf) 'text/plain)
+ ;; It has survived in the cache
+ (exit 2))
+ (values / /wtf))))
+ (with-session
+ (lambda (content-type contained static-content create delete)
+ (unless
+ (with-exception-handler
+ (lambda (error)
+ ;; Good, we can’t load /wtf
+ #t)
+ (lambda ()
+ (content-type /wtf)
+ #f)
+ #:unwind? #t)
+ ;;We could read /wtf, it has not been deleted
+ (exit 3))
+ (unless (eq? (content-type /) 'text/turtle)
+ (exit 4))
+ (unless (equal? (contained /) '("/whatever" "/you" "/want"))
+ (exit 5))
+ (unless (equal? (static-content /)
+ (string->utf8 "# This is the content of the root"))
+ (exit 6)))))))