Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


Islandora (testing ticket)

 Project

Tested by

Success? RC-1Success? RC-32

Notes

Islandora 8

API-X

(tick)

 Project

Tested by

Success? RC-1Notes


Testing Plan

Code Block
git clone https://github.com/fcrepo/fcrepo
cd fcrepo4fcrepo
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-1

Sanity Builds

Scripts

https://github.com/awoods/fcrepo-build-scripts

...

linux

...

2

API-Test Suite

  1. 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/ -Dfcrepo.cache.webac.acl.timeout.minutes=0 -pl fcrepo-webapp/


  2. Run the API-Test suite with the following command

    Code Block
    java -jar target/testsuite-1.0-SNAPSHOT-shaded.jar -c config-local.yml


    1. 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



PlatformTest Suite VersionTested byResults RC-1 2 (#pass,fail,skip)Notes
Fedora Linux 27Ubuntu




Ubuntu



OSX5eca0de34c162205d66913b1979967d487619018===============================================
Fedora API Specification Test Suite
Total tests run: 241, Failures: 1, Skips: 28
===============================================
The -Dfcrepo.cache.webac.acl.timeout.minutes=0 setting was added to fcrepo.Mac 10.14Mac OSX 10.13.6

One-Click Run

cd fcrepo-webapp; mvn clean install -Pone-click
CommandPlatformTested ByRC-12Notes
java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jarLinux


java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jarFedora Linux 27Mac(tick)java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jarMac

java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jar

Windows

Manual Tests

Info

All of the below should take place in the HTML UI and non-vagrant tests should run against fcrepo-webapp.

  1. Create nested containers
  2. Create binary resources
  3. Run fixity on binary
  4. Update Properties:  Perform SPARQL-Update on container
  5. Update Properties:  Perform SPARQL-Update on binary
  6. Delete container
  7. Delete binary
  8. Use transactions
  9. Create versions
  10. View versions

WebAC Tests

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

...

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

...





Docker


Code Block
docker run -p8080:8080 -v /path/to/fedora_home:/fedora_home -v /path/to/fcrepo.properties:/fcrepo.properties -e CATALINA_OPTS="-Dfcrepo.config.file=/fcrepo.properties" --name=fcrepo-test fcrepo/fcrepo:6.0.0-RC-2


CommandPlatformTested ByRC-2Notes
java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jarLinux


java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jarMac(tick)

java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jar

Windows






Performance and Scalability Tests

Ensure tha the UI is performant with 2 million resources 

DatabaseTested ByRC-2

postgresql

(tick)
mariadb

mysql(tick)

Manual Tests

Info

All of the below should take place in the HTML UI.

  1. Create nested containers
  2. Create binary resources
  3. Run fixity on binary
  4. Update Properties:  Perform SPARQL-Update on container
  5. Update Properties:  Perform SPARQL-Update on binary
  6. Delete container
  7. Delete binary
  8. Use transactions
  9. Create versions
  10. View versions

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
  1. Create resource to protect
  2. Create ACL on protected resource (read/write)
  3. Create child of protected resource
  4. Verify expected access privileges on target and child


PlatformTested bySuccess? RC-
1
2Notes
Mac


Linux


Windows



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)PlatformTested bySuccess? RC-12Notes
proxy, redirect, copyMac












Resources

[1] Testing scripts

...