# Remote Framwork File formats

## Remote Framwork File format: Testsuite definitions

The main XML file specifies the files that contain the actual testcases, grouped as batches of tests, and their pass conditions.

Psuedo-code presentation of syntax:

    	<?xml version="1.0" encoding="utf-8" ?>
    	<testsuites>
    		<condition from="Mx" until="2.4.y" />
    		<testsuite>file1.xml</testsuite>
    		<testsuite>file2.xml</testsuite>
    	<testsuites>

### description of tags and parameters

testsuites

  Required: Yes.

  Top-level tag

  Declares the entire list of testsuites. Contains sequences of <condition> and <testsuite> segments. May also contain other elements handled by RemoteFrameworkMaster subclasses that override HandleUnknownKeyword().

condition

  Required: Optional

  In tags: testsuites

  Specifies which versions this group of testsuites is enabled for. Multiple items can be specified, the first allowing the test to be used is accepted.

  One or both of the "from" or "until" parameters have to be present (or the condition will be TRUE).

  The value of the from and until parameters are either a Core Milestone number, e.g. "17", or a fully qualified core version number, including the milestone, e.g. "2.4.17". The parameters specify the first or last version to match.

  For the core version syntax the following apply: In "from" the major and minor version number must match exactly, and for that core version the condition is true for all releases having a milestone number equal to or higher than the specified version; in "until" all core versions before the specified version matches, whatever their milestone number, and all releases with milestone number less than or equal to the specified number preceding.

disabled

  Required: Optional

  In tags: testsuites

  Specifies that this entire testsuite is disabled, which overrides the conditional. There SHOULD be a comment describing why it is disabled

testsuite

  Required: Yes (unless parser overrides)

  In tag: testsuites

  Specifies the URL to be for this specific testsuites. If it is a relative URL it is resolved with the XML document's URL as a base URL.

  The tag have a parameter "type" which will allow implementations to override the ProduceTestSuite function in RemoteFrameworkMaster without needing to add a parser.

## Remote Framwork File format: Testsuite definitions

The files identified by the <testsuites> elements in the main file declare each individual test as a member of a batch.

Psuedo-code presentation of syntax:

    	<?xml version="1.0" encoding="utf-8" ?>
    	<testsuite>
    	  <condition from="<Milstone>" until="<major>.<minor>.<milestone>" />
    	  <testbatch>
    		<condition from="<Milstone>" until="<major>.<minor>.<milestone>" />
    		<testconfig>updated preferences, such as proxies</testconfig> <!-- not implemented -->
    		<test>
    		  <condition from="<Milstone>" until="<major>.<minor>.<milestone>" />
    		  <url>http://www.opera.com/</url>
    		  <result type=security-level | passcontent | matchfile>
    			 <--security-level-case:--> 0
    			 <--passcontent :-->text
    			 <---matchcontent-->relative URL testfiles/dynamic/file1.html
    		  </result>
    		</test>
    		<test>
    		  <url>http://www.example.com/</url>
    		  <result type=security-level | passcontent | matchfile>
    			 <--security-level-case:--> 0
    			 <--passcontent :-->text
    			 <---matchcontent-->relative URL testfiles/dynamic/file1.html
    		  </result>
    		</test>
    	  </testbatch>
    	</testsuite>

### description of tags and parameters

testsuite

  Required: Yes.

  Top-level tag

  Declares the entire testsuite. Contains sequences of <condition> and <testbatch> segments. May also contain other elements handled by RemoteFrameworkTestSuites subclasses that override HandleUnknownTestBatch().

condition

  Required: Optional

  In tags: testsuite, testbatch, test

  Specifies which versions the testsuite, testbatch or test is enabled for. Multiple items can be specified, the first allowing the test to be used is accepted.

  One or both of the "from" or "until" parameters have to be present (or the condition will be TRUE).

  The value of the from and until parameters are either a Core Milestone number, e.g. "17", or a fully qualified core version number, including the milestone, e.g. "2.4.17". The parameters specify the first or last version to match.

  For the core version syntax the following apply: In "from" the major and minor version number must match exactly, and for that core version the condition is true for all releases having a milestone number equal to or higher than the specified version; in "until" all core versions before the specified version matches, whatever their milestone number, and all releases with milestone number less than or equal to the specified number preceding.

disabled

  Required: Optional

  In tags: testsuite, testbatch, test

  Specifies that this entire testsuite is disabled, which overrides the conditional. There SHOULD be a comment describing why it is disabled

testbatch

  Required: Yes (unless parser overrides)

  In tag: testsuite

  All testcases inside this element are grouped as a single list of testcases, to be run in parallel.

  Contains sequences of <condition> and <test> segments.

  May also contain other elements handled by RemoteFrameworkTestSuites subclasses that override HandleUnknownTestLevel()

test

  Required: Yes (unless parser overrides)

  In tag: testbatch

  This element specifies a single testcase to be included in the current batch of tests.

  Contains sequences of <condition>, <url> and <result> segments.

  May also contain other elements handled by RemoteFrameworkTestSuites subclasses that override ProduceTestcase().

url

  Required: Yes (unless parser overrides)

  In tag: test

  Specifies the URL to be loaded. If it is a relative URL it is resolved with the XML document's URL as a base URL.

result

  Required: Yes (unless parser overrides)

  In tag: test

  This tag contains the data that the test implementation will match the downloaded result against.

  Currently the following pass-data-types are recognized when provided in the "type" parameter of the tag:

  matchcontent

    The data is a URL, if relative resolved with the XML document's URL as base URL. The data in the specified URL must be a binary match with the data from the URL specified in the <url> tag.

  passcontent

    The data is a string (which will be UTF-8 encoded) that must be exist within the text-content downloaded from the URL specified in the <url> tag.

  uni-passcontent

    The data is a string that must be exist within the Unicode converted text-content content downloaded from the URL specified in the <url> tag.

  security-level

    The data is a single integer that specified the minimum security level that the downloaded URL must have to pass the test.

  The default is to just load the URL, and pass if it is loaded successfully.

  Additional testconditions may be added by RemoteFrameworkTestSuites subclasses that override ProduceTestcase().