tests/code/README.txt
author bergi <bergi@axolotlfarm.org>
Thu, 17 Nov 2011 16:47:19 +0100
changeset 188 fd0df255e988
parent 187 98f652d92840
permissions -rw-r--r--
Marked optional test cases in diagram
	WebID Test Suite

1. About
This test suite dynamicly creates functional and broken WebIDs with
different characteristics. These WebIDs are used to login at the defined
endpoint. The endpoint should return EARL triples like defined in the
following vocabular:
www.w3.org/2005/Incubator/webid/earl/RelyingParty#
For every test case a SPARQL query is defined to check whether the endpoint
acts as expected or not.

2. Requirements
The source code is maintend in a subversion repository. To build the test
suite from the sources you will need a subversion client. A JDK version 5
or above is required to build the project. Also Maven is required for
building and fetching all required libraries from the web.

2.1. Requirements for FileFOAFPublisher (optional)
You should use the embedded web server. With the FileFOAFPublisher you
depend on the HTTP Server which could send for example corrupted headers!!
If you still want to use it a HTTP server with local files access is
required.

3. Compiling the test suite
With the command line subversion client you can check out the code with
the following command:
"svn co https://www.axolotlfarm.org/svn/bergi/bergnet/java/tests/webid/trunk/ WebIDTestSuite".
To compile the code with maven run: "mvn compile".

4. Configuration of the test suite
The file "default.properties" contains all default settings. Usually that
should work for you. But if you need to change something, the file contains
comments about all parameters.  

5. Running the tests
Use the exec:java plugin to run the test suite. Here an example: 
"mvn exec:java -Dexec.mainClass=org.bergnet.test.webid.WebIDTests -Dexec.args="-endpoint https://foafssl.org/test/WebId/n3 -stayalive -outputformat TTL" -X".
See the Command line parameters section for more details.

5.1. Command line parameters
Every parameter begins with a minus like "-example". If an additional
argument is required it must follow separated by space. Here is a list of
all parameters:

	-config $: Alernative configuration file
		default: -config default.properties
		example: -config example.properties

	-criterions: Outputs the description of the EARL tests
		default: not set
		example: -criterions

	-outputformat $: Defines the triple output format ("RDF/XML" or "TTL")
		default: -outputformat RDF/XML
		example: -outputforamt TTL

	-endpoint $: Url to the endpoint you want to test
		default: see properties file
		example: -endpoint https://foafssl.org/test/WebId/n3

	-baseurl $: The base directory where your FOAF will be published
		(only host and port is used for embedded Jetty server)
		default: -baseurl http://localhost:8080/
		example: -baseurl http://mypc:1234/

	-stayalive: Program doesn't terminate after tests are finished
		(if	you want to access the files from the embedded server)
		default: not set
		example: -stayalive

5.2. Repeating and verifying a test with curl
You can use curl to repeat a test. The output folder contains the
certificate (webid.pem) for every test case. So you just have to type:
"curl -k -E webid.pem:password -H "Accept: text/turtle" https://foafssl.org/test/WebId/n3 > out.n3"