Versions Compared

Key

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

...

  • 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 branchUsing 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

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


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

...

ProjectCommandPlatformTested ByRC 1RC 2RC 3Notes
fcrepo4mvn clean install

linux

(tick)

(tick)




(tick)



(tick)

(tick)

 Build successfully in 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 successfullysuccessful
fcrepo4mvn clean installwindows

(tick)Build successfulDoes not compile on Windows 10 https://gist.github.com/robyj/ac6de53305cf8e903cf63268ad736a9b

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

...

  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 27
a40ce88src/main/resources/testng.xml to ./testng-local.xml, or remove testngxml directive to use provided default testng.xml file.
f3dd201

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

If using recommended config-local.yml above, you must either copy
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 Mac(tick)(tick) Build and start One-Click run successfully

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

Windows



 

...

Use the following recipes to create WebAC-protected resources

Default ACL

  1. Create resource
  2. Verify expected access privileges based on default (root) ACL

...

Simple read-only

  1. Create resource to protect
  2. Create ACL on protected resource (read-only)
  3. Create child of protected resource
  4. Verify expected access privileges on target and child

...

Simple read-write

  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

...

External Content

...

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 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
PostgreSQLwindowsJon Roby



version 11.0-2
MySQL5.6windowsJon Roby




fcr:backup/fcr:restore Functionality

...

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?

Notes                  

Linux

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

Code Block
vagrant destroy
vagrant up

...

Test stepsTested BySuccess RC2?Success? RC-3Notes

FEDORA_AUTH=true





Manual Tests

...

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









Resources

[1] Testing scripts

...