Testing Tickets
External Projects
Samvera (instructions)
Project | Tested by | Success? RC-1 | Notes | ||
---|---|---|---|---|---|
valkyrie |
Islandora (testing ticket)
Project | Tested by | Success? RC-1 | Success? RC-3 | Notes |
---|---|---|---|---|
Islandora 8 |
API-X
Project | Tested by | Success? RC-1 | Notes |
---|---|---|---|
Testing Plan
git clone https://github.com/fcrepo/fcrepo cd fcrepo4 git checkout fcrepo-6.0.0-RC-1 # or pull pre-built resources from https://github.com/fcrepo/fcrepo/releases/tag/fcrepo-6.0.0-RC-1
Sanity Builds
Scripts
https://github.com/awoods/fcrepo-build-scripts
Project | Command | Platform | Tested By | RC 1 | Notes |
---|---|---|---|---|---|
fcrepo | mvn clean install | linux | |||
fcrepo | mvn clean install | mac | |||
fcrepo4= | mvn clean install | windows |
API-Test Suite
Start Fedora with the following command
mvn jetty:run -Dfcrepo.external.content.allowed=fcrepo-http-api/src/test/resources/allowed_external_paths.txt -Dfcrepo.auth.webac.userAgent.baseUri=http://example.com/ -pl fcrepo-webapp/
Run the API-Test suite with the following command
java -jar target/testsuite-1.0-SNAPSHOT-shaded.jar -c config-local.yml
Where "config-local.yml" is something like the following
default: rooturl: http://localhost:8080/rest/ root-controller-user-webid: http://example.com/fedoraAdmin root-controller-user-name: fedoraAdmin root-controller-user-password: fedoraAdmin permissionless-user-webid: http://example.com/testuser permissionless-user-name: testuser permissionless-user-password: testpass broker-url: tcp://127.0.0.1:61616 topic-name: fedora queue-name: implementation-name: Fedora implementation-version: 6.0.0-RC-1 tomcat: rooturl: http://localhost:8080/fcrepo/rest/ root-controller-user-webid: http://example.com/fedoraAdmin root-controller-user-name: fedoraAdmin root-controller-user-password: secret3 permissionless-user-webid: http://example.com/testuser permissionless-user-name: testuser permissionless-user-password: password1 broker-url: tcp://127.0.0.1:61616 topic-name: fedora queue-name: implementation-name: Fedora implementation-version: 6.0.0-RC-1
Platform | Test Suite Version | Tested by | Results RC-1 (#pass,fail,skip) | Notes |
---|---|---|---|---|
Fedora Linux 27 | ||||
Ubuntu | ||||
Mac 10.14 | ||||
Mac OSX 10.13.6 |
One-Click Run
cd fcrepo-webapp; mvn clean install -Pone-click
Command | Platform | Tested By | RC-1 | Notes |
---|---|---|---|---|
java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jar | Linux | |||
java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jar | Fedora Linux 27 | |||
java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jar | Mac | |||
java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jar | Windows |
Manual Tests
All of the below should take place in the HTML UI and non-vagrant tests should run against fcrepo-webapp.
- Create nested containers
- Create binary resources
- Run fixity on binary
- Update Properties: Perform SPARQL-Update on container
- Update Properties: Perform SPARQL-Update on binary
- Delete container
- Delete binary
- Use transactions
- Create versions
- View versions
WebAC Tests
Use the following recipes to create WebAC-protected resources
Default ACL
# root container should be read-only by default curl -i -u testuser:testpass -X PUT http://localhost:8080/rest/test-default # expect 403 # create a resource with admin curl -i -u fedoraAdmin:fedoraAdmin -X PUT http://localhost:8080/rest/test-default # expect 201 # resources inheriting the default acl should be read-only curl -i -u testuser:testpass -X GET http://localhost:8080/rest/test-default # expect 200 curl -i -u testuser:testpass -X PUT http://localhost:8080/rest/test-default/child # expect 403
Platform | Tested by | Success? RC-1 | Notes |
---|---|---|---|
Mac | |||
Linux | |||
Simple read-only
# create a resources with admin curl -i -u fedoraAdmin:fedoraAdmin -X PUT http://localhost:8080/rest/test-read-only curl -i -u fedoraAdmin:fedoraAdmin -X PUT http://localhost:8080/rest/test-read-only/child # put read-only acl on parent echo " @prefix acl: <http://www.w3.org/ns/auth/acl#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . <#restricted> a acl:Authorization ; acl:agent 'testuser' ; acl:mode acl:Read; acl:default <http://localhost:8080/rest/test-read-only> ; acl:accessTo <http://localhost:8080/rest/test-read-only> . " | curl -i -u fedoraAdmin:fedoraAdmin -d @- -X PUT -H "Content-Type: text/turtle" http://localhost:8080/rest/test-read-only/fcr:acl # Verify expected access privileges on target and child - ie read but not write curl -i -u testuser:testpass -X GET http://localhost:8080/rest/test-read-only/child # expect 200 curl -i -u testuser:testpass -X POST http://localhost:8080/rest/test-read-only/child # expect 403
Platform | Tested by | Success? RC-1 | Notes |
---|---|---|---|
Mac | Danny Bernstein | ||
Linux | |||
Simple read-write
# create a resources with admin curl -i -u fedoraAdmin:fedoraAdmin -X PUT http://localhost:8080/rest/test-read-write curl -i -u fedoraAdmin:fedoraAdmin -X PUT http://localhost:8080/rest/test-read-write/child # put read-only acl on parent echo " @prefix acl: <http://www.w3.org/ns/auth/acl#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . <#restricted> a acl:Authorization ; acl:agent 'testuser' ; acl:mode acl:Read, acl:Write; acl:default <http://localhost:8080/rest/test-read-write> ; acl:accessTo <http://localhost:8080/rest/test-read-write> . " | curl -i -u fedoraAdmin:fedoraAdmin -d @- -X PUT -H "Content-Type: text/turtle" http://localhost:8080/rest/test-read-write/fcr:acl # Verify expected access privileges on target and child - ie read and write curl -i -u testuser:testpass -X GET http://localhost:8080/rest/test-read-write/child # expect 200 curl -i -u testuser:testpass -X POST http://localhost:8080/rest/test-read-write/child # expect 201
- Create resource to protect
- Create ACL on protected resource (read/write)
- Create child of protected resource
- Verify expected access privileges on target and child
Platform | Tested by | Success? RC-1 | Notes |
---|---|---|---|
Mac | |||
Linux | |||
External Content
Create and verify all three modes of external content handling: proxy, redirect, copy
#Proxy curl -i -H"Link: <file:///local/file/storage/photo.png>; rel=\"http://fedora.info/definitions/fcrepo#ExternalContent\"; handling=\"proxy\"; type=\"image/png\"" -XPUT -ufedoraAdmin:fedoraAdmin http://localhost:8080/rest/test_proxy_local_file #verify that the binary is returned. curl -i -u fedoraAdmin:fedoraAdmin -XGET -ufedoraAdmin:fedoraAdmin http://localhost:8080/rest/test_proxy_local_file #remove the file one disk, repeat the previous command and verify that an error code is returned.
#Redirect curl -i -H"Link: <https://duraspace.org/wp-content/themes/duraspace/assets/images/fedora/fedora-logo-black.png>; rel=\"http://fedora.info/definitions/fcrepo#ExternalContent\"; handling=\"redirect\"; type=\"image/png\"" -XPUT -ufedoraAdmin:fedoraAdmin http://localhost:8080/rest/test_redirect_remote_file #Get the file and verify a 307 is returned curl -i -ufedoraAdmin:fedoraAdmin http://localhost:8080/rest/test_redirect_remote_file
#Copy curl -i -H"Link: <https://duraspace.org/wp-content/themes/duraspace/assets/images/fedora/fedora-logo-black.png>; rel=\"http://fedora.info/definitions/fcrepo#ExternalContent\"; handling=\"copy\"; type=\"image/png\"" -XPUT -ufedoraAdmin:fedoraAdmin http://localhost:8080/rest/test_copy_remote_file #verify copied file returns 200. curl -i -ufedoraAdmin:fedoraAdmin http://localhost:8080/rest/test_copy_remote_file
Handling (proxy,redirect,copy) | Platform | Tested by | Success? RC-1 | Notes |
---|---|---|---|---|
proxy, redirect, copy | Mac | |||
Resources
[1] Testing scripts