...
Project | Tested by | Success? RC-12 | Notes | ||
---|---|---|---|---|---|
valkyrie |
Islandora (testing ticket)
Project | Tested by | Success? RC-1Success? RC-32 | Notes | |
---|---|---|---|---|
Islandora 8 |
API-X
Project | Tested by | Success? RC-12 | Notes |
---|---|---|---|
Testing Plan
Code Block |
---|
git clone https://github.com/fcrepo/fcrepo cd fcrepo4 git checkout fcrepo-6.0.0-RC-1 2 # or pull pre-built resources from https://github.com/fcrepo/fcrepo/releases/tag/fcrepo-6.0.0-RC-12 |
Sanity Builds
Scripts
https://github.com/awoods/fcrepo-build-scripts
...
Start Fedora with the following command
Code Block 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
Code Block java -jar target/testsuite-1.0-SNAPSHOT-shaded.jar -c config-local.yml
Where "config-local.yml" is something like the following
No Format 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 2 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-12
Platform | Test Suite Version | Tested by | Results RC-1 2 (#pass,fail,skip) | Notes | ||
---|---|---|---|---|---|---|
Fedora Linux 27 | ||||||
Ubuntu | ||||||
Mac 10.14 | MacOSX | 10.13.6
One-Click Run
cd fcrepo-webapp; mvn clean install -Pone-click
Command | Platform | Tested By | RC-12 | Notes | |||
---|---|---|---|---|---|---|---|
java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jar | Linux | ||||||
java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jar | Fedora Linux 27Mac | ||||||
java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jar | Mac | java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jar | WindowsWindows |
Performance and Scalability Tests
Ensure tha the UI is performant with 2 million resources
Database | Tested By | RC-2 |
---|---|---|
postgresql | ||
mariadb | ||
mysql |
Manual Tests
Info |
---|
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
...
Use the following recipes to create WebAC-protected resources
Default ACL
Code Block |
---|
# 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- |
---|
2 | Notes | ||
---|---|---|---|
Mac | |||
Linux |
Simple read-only
Code Block |
---|
# 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 |
...
Windows |
...
Simple read-write
Code Block |
---|
# 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
...
External Content
Create and verify all three modes of external content handling: proxy, redirect, copy
...
Code Block |
---|
#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 |
Code Block |
---|
#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-12 | Notes |
---|---|---|---|---|
proxy, redirect, copy | Mac | |||
Resources
[1] Testing scripts
...