Testing Tickets

RC-1 Testing

  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.
  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.
  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Defer to 5.1

  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.
  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.
  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.

RC-2 Testing

  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.
  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.
  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.
  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.
  • Unable to locate Jira server for this macro. It may be due to Application Link configuration.


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)

 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-2Success? RC-3

Notes

fcrepo-api-x-integration





fcrepo-api-x-demo (Docker)



Testing Plan

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

ProjectCommandPlatformTested ByRC 1RC 2RC 3Notes
fcrepo4mvn clean install

linux

(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)

fcrepo4mvn clean install mac (tick)(tick)(tick)Build successful
fcrepo4mvn clean installwindows

(tick)Build successful

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

    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

    java -jar target/testsuite-1.0-SNAPSHOT-shaded.jar -c config-local.yml
    1. 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: 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


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

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



 

Manual Tests

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

# 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

# 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

# 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

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












Database Tests

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

DatabasePlatformTested bySuccess RC1?Success RC2Success? RC-3Notes
MySQLmacOS(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.6linuxYinlin Chen(tick)

Ubuntu 16.04, Mysql 5.7.24
PostgreSQLwindows



version 11.0-2
MySQL5.6windows




fcr:backup/fcr:restore Functionality

These tests are designed to ensure the proper function of the 'fcr:backup/fcr:restore' features by testing them against various Fedora configurations.  The validity of the 'restore' can only be determined by crawling the repository and verifying the successful retrieval of the repository's content.

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 RC2?Success? RC-3

Notes                  

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

Danny BernsteinOSX 10.13.6JettyFile-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

vagrant destroy
vagrant up
Test stepsTested BySuccess RC2?Success? RC-3Notes

FEDORA_AUTH=true





Manual Tests

Same as above, plus:

(for reference: https://docs.google.com/presentation/d/1aU-qRVmU0lB18ywepk2AGYEmRe-HfIwhUaofHgathGQ/edit#slide=id.g11caa1fd99_0_0)

  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

    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 RC2Success? RC-3Notes









Resources

[1] Testing scripts

[2] Fedora 4 Release Test Suite

  • No labels