;; webid-oidc, implementation of the Solid specification ;; Copyright (C) 2020, 2021 Vivien Kraus ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU Affero General Public License as ;; published by the Free Software Foundation, either version 3 of the ;; License, or (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU Affero General Public License for more details. ;; You should have received a copy of the GNU Affero General Public License ;; along with this program. If not, see . (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/disfluid/server/content/6/8OMG_V5x-KmI6TI")) (false-if-exception ;; This is the etag of /wtf (delete-file "tests/server-content.home/disfluid/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)))))))