Versions Compared

Key

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

Testing Tickets

External Projects

...

RC-1 Testing

  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2934
  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2938
  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2932

Defer to 5.1

  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2935
  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2936
  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2937

RC-2 Testing

  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2961
  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2962
  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2963
  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2964
  • Jira
    serverDuraSpace JIRA
    serverIdc815ca92-fd23-34c2-8fe3-956808caf8c5
    keyFCREPO-2966


External Projects

Samvera (instructions)

Project

Tested by

Success? RC-1

Success? RC-2Success? RC-3

Notes

valkyrie(tick)(tick)(tick)Support merged into master branch


Islandora (testing ticket)

 RC-1

 Project

Tested by

Success? RC-2Success? RC-3

Notes

CLAW?(error)(tick)

Discovered FCREPO-2961 with regards to authentication

RC-3 works once https://github.com/Islandora-CLAW/Syn/pull/14 is merged.

API-X

 Project

Tested by

Success? RC-
1
2Success? RC-3

Notes

fcrepo-api-x-integration





fcrepo-api-x-demo (Docker)



Testing Plan

Code Block
git clone https://github.com/fcrepo4/fcrepo4
cd fcrepo4
git checkout fcrepo-5.0.0-RC-3


# or pull pre-built resources from https://github.com/fcrepo4/fcrepo4/releases/tag/fcrepo-5.0.0-RC-2

Sanity Builds

Scripts

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

fcrepo-webapp-plus -Pwebac
ProjectCommandPlatformTested ByRC 1NotesRC 2RC 3Notes
mvn clean install

linux

 fcrepo4mvn clean install mac fcrepo4mvn clean installwindowsfcrepo-mintmvn clean install 

linux

 fcrepo-mintmvn clean install 

(tick)

(tick)




(tick)



(tick)

(tick)

 Build successful on Ubuntu Server 16.04 LTS (HVM)


Build successful on Fedora Linux 27; openjdk version "1.8.0_191"; Maven 3.5.0 (Red Hat 3.5.0-6)

fcrepo4macfcrepo-mintmvn clean installwindows fcrepo-webapp-plusmvn clean install linux fcrepo-webapp-plusmvn clean install 

mac

fcrepo-webapp-plusmvn clean install windowsmac  fcrepo-webapp-plusmvn clean install -Pwebac linux

 

(tick)(tick)(tick)Build successful
fcrepo4mvn clean installmacwindows

(tick)Build successfulfcrepo-webapp-plusmvn clean install -Pwebacwindows 

Note (18 January 2018): The victims database warnings are due to the victi.ms site currently returning a 503 error. Jared Whiklo has reported this issue upstream: https://github.com/victims/victims-web/issues/155

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/ -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: 5.0.0-RC
      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: 5.0.0-RC



PlatformTest Suite VersionTested byResults RC-2 (#pass,fail,skip)Results RC-3 (#pass,fail,skip)Notes
Fedora Linux 27f3dd201

Total tests run: 238, Failures: 12, Skips: 23

Total tests run: 238, Failures: 12, Skips: 23

Ubuntu

Total tests run: 220, Failures: 13, Skips: 16



Mac 10.14

Total tests run: 238, Failures: 44, Skips: 16


View file
nametestsuite-execution-report.html
height150
View file
nametestng-local.xml
height150
View file
nameconfig-local.yml
height150

Mac OSX 10.13.6a40ce88Danny BernsteinTotal tests run: 238, Failures: 12, Skips: 23

View file
nameFedora API Test Suite Report.pdf
height250

One-Click Run

cd fcrepo-webapp; mvn clean install -Pone-click
CommandPlatformTested ByRC-1RC-2RC-3Notes
java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jarLinux
(tick)

Ran one-click and successfully performed manual tests

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

Built and ran one-click, successfully performed manual tests

 

java -jar fcrepo-webapp-<version>-SNAPSHOT-jetty-console.jarMac (tick)(tick)(tick)Build and start One-Click run successfully

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

Windows



 

...

Info

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

  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
  11. Rollback versions

Database Tests

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


PlatformTested bySuccess? RC-2Success? RC-3Notes
MacDanny Bernstein(tick)(tick)
Fedora Linux 27(tick)








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


PlatformTested bySuccess? RC-2Success? RC-3Notes
MacDanny Bernstein(tick)(tick)
Fedora Linux 27(tick)







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-2Success? RC-3Notes
Mac(tick)(tick)
Fedora Linux 27(tick)







External Content

Create and verify all three modes of external content handling: proxy, redirect, copy

Code Block
#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.


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-2Success? RC-3Notes
proxy, redirect, copyMacDanny Bernstein
(tick)












Database Tests

With Tomcat8 With Tomcat7 deployment, run above manual tests with alternate backend databases (Configuring JDBC Object Store)

DatabasePlatformTested bySuccess RC1?Success RC2Success? RC-3Notes
MySQL
 osxPostgreSQLosxPostgreSQL linux
macOS(tick)

High Sierra 10.13.6, MySQL 8.0.13
PostgreSQLmacOS(tick)

High Sierra 10.13.6, PostgreSQL 9.6.2
PostgreSQLlinux(tick)(tick)
Ubuntu 16.04, PostgreSQL 9.4.20
MySQL5.6
 linux
linuxYinlin Chen(tick)

Ubuntu 16.04, Mysql 5.7.24
PostgreSQL
windows



version 11.0-2
 linux
MySQL5.6
 linux
windows




fcr:backup/fcr:restore Functionality

...

If the anticipated Fedora release is not backwards compatible with the previous version of Fedora, then the "From Fedora Version" should be the previous version.  Otherwise, it is sufficient to test the fcr:backup/fcr:restore functionality using the same version.

See: RESTful HTTP API - Backup and Restore

# Backup
curl -X POST localhost:8080/rest/fcr:backup
 
# Restore
curl -X POST -d "/path/to/backup/directory" localhost:8080/rest/fcr:restore

Resources

  • These python scripts - fcrepo-testing - can be used to load RDF content and binary content to a Fedora repository and verify the integrity of the loaded resources.  Output from the load process can be used to verify the integrity of a 'restored' repository.  See the README for more info.
  • This script can be used to walk your repository, failing if a non-success response is encountered.

 

Tested by

Platform

Container

(Tomcat/Jetty)

Database

Backend

From Fedora
Version

To Fedora 
Version

Number of

RDF Resources

Number of

Binaries

Size of Backup (du -h .)

Success
RC1
RC2?Success
RC2
? RC-3

Notes                  

OSX 10.13.6JettyFile-simple5.0.0-RC-25.0.0-RC-228210500K(tick)

Danny BernsteinOSX 10.13.6
Linux
JettyFile-simple5.0.0-RC-25.0.0-RC-2256425642.6 GB(tick)


LinuxTomcatPostgres








LinuxTomcatPostgres








LinuxTomcatPostgres








LinuxTomcatMysql








LinuxTomcatMysql 5.6








LinuxTomcatPostgres







NB: "Success" is measured not by receiving a "204 No Content" message after the 'fcr:restore' command, but by performing a GET on every resource in the repository and receiving "200 OK" messages. 

Vagrant Tests

Code Block
vagrant destroy
vagrant up

...

FEDORA_AUTH=false
FEDORA_AUDIT=false=true
FEDORA_AUDIT
Test stepsTested BySuccess RC2?Notes

FEDORA_AUTH=true
FEDORA_AUDIT=false

Success? RC-3Notes

FEDORA_AUTH

=true

FEDORA_AUTH=false
FEDORA_AUDIT=true





Manual Tests

Same as above, plus:

...

  1. Verify audit events are in triplestore
  2. Verify resources are in triplestore
  3. Verify resources are in Solr
  4. Verify authorization works for the two auth-enabled configurations
  5. Verify reindexing to triplestore works

    Code Block
    vagrant ssh
    sudo service tomcat7 stop
    sudo rm -rf /etc/fuseki/databases/test_data/*
    sudo service tomcat7 start
    curl -XPOST localhost:9080/reindexing/ -H"Content-Type: application/json" -d '["activemq:queue:triplestore.reindex"]'


Backwards Compatibility Tests

  1. Start 5.0.0 one-click
  2. Load sample datasets via /fcr:restore
  3. Run test scripts on 5.0.0
  4. Stop 5.0.0
  5. Start RC one-click
  6. Run test scripts on RC
  7. ReStart RC
  8. Run test scripts on RC
Tested bySuccess RC1RC2Success? RC-3Notes









Resources

[1] Testing scripts

...