summaryrefslogtreecommitdiff
path: root/tests/crud.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/crud.scm')
-rw-r--r--tests/crud.scm80
1 files changed, 80 insertions, 0 deletions
diff --git a/tests/crud.scm b/tests/crud.scm
new file mode 100644
index 0000000..422b1da
--- /dev/null
+++ b/tests/crud.scm
@@ -0,0 +1,80 @@
+(use-modules (webid-oidc server create)
+ (webid-oidc server resource content)
+ (webid-oidc server resource path)
+ (webid-oidc errors)
+ (webid-oidc testing)
+ (web http)
+ (web request)
+ (web response)
+ (web uri))
+
+(with-test-environment
+ "crud"
+ (lambda ()
+ (for-each
+ (lambda (f)
+ (false-if-exception
+ (delete-file
+ (string-append
+ "tests/crud.home/webid-oidc/server/content/"
+ f))))
+ '("6/8OMG_V5x-KmI6TI"
+ "X/hqM_2Avn5_egTzs"
+ "5/n1KPgAd3ng4wSqn"
+ "D/wxU0ogx5rzRrvu2"
+ "F/BQKBGrtq6U_M0L7"
+ "n/U46BXbknEaLWZpH"
+ "A/fkGTJRCHc-jHk-V"
+ "a/68pTwiImTWTpjQl"
+ "H/y4S5p1BqTEJi-Jb"))
+ (for-each
+ (lambda (f)
+ (false-if-exception
+ (delete-file
+ (string-append
+ "tests/crud.home/webid-oidc/server/path/"
+ f))))
+ '("L/uhr1159jdGYjIj_tpM6FDiW4rUZDQQKUnT35lhAR-s"
+ "8/jgewChguz6YRPCTBOkx_9CW94iH_X88rP6Os4aM8jg"
+ "n/PQ_3L8lXCsqpz1tkUhsJnVC9rcyqgDD41DnFPIDG1Q"
+ "i/l7asoJjJEMhngUeSt4tHVu8Zxx4EFG_FDeJfL3-oPE"))
+ (let ((server-name (string->uri "https://example.com"))
+ (owner (string->uri "https://alice.databox.me")))
+ (unless
+ (create-root server-name owner)
+ (exit 1))
+ (let ((inbox (create server-name owner owner "/"
+ (list (string->uri "http://www.w3.org/ns/ldp#BasicContainer"))
+ "inbox"
+ 'text/turtle
+ "")))
+ (unless (equal? inbox (string->uri "https://example.com/inbox/"))
+ (exit 2))
+ (let ((inbox-2 (create server-name owner owner "/"
+ (list (string->uri "http://www.w3.org/ns/ldp#BasicContainer"))
+ "inbox"
+ 'text/turtle
+ "")))
+ (when (equal? inbox-2 (string->uri "https://example.com/inbox/"))
+ (exit 3)))
+ (let ((notif-1 (create server-name owner owner "/inbox"
+ '()
+ #f
+ 'text/turtle
+ "")))
+ (unless (equal? notif-1
+ (string->uri "https://example.com/inbox/NgnO8RAS9FpPiO5j"))
+ (format (current-error-port) "Notif 1: ~s\n" notif-1)
+ (exit 4))))
+ (for-each
+ (lambda (slug)
+ (with-exception-handler
+ (lambda (error)
+ (unless (path-is-auxiliary? error)
+ (raise-exception error)))
+ (lambda ()
+ (create server-name owner owner "/" '() slug 'text/turtle "")
+ (exit 5))
+ #:unwind? #t
+ #:unwind-for-type &path-is-auxiliary))
+ '(".acl" ".meta")))))