Abstract Test Suite for WFS 1.1

Revision History
Revision 0.1 2007-12-14
Draft containing abstract test cases for WFS-XLink conformance.


This document is an abstract test suite (ATS): a compendium of test assertions pertaining to implementations of the Web Feature Service (WFS) specification, version 1.1. It provides a basis for developing an executable test suite (ETS) to verify that the implementation under test (IUT) conforms to all applicable functional specifications.

The assertions (abstract test cases) are gleaned from a set of specification documents; the dependencies among these specifications are shown in Figure 1, “WFS 1.1 dependencies”, where each specification is represented as a UML package.

The abstract test cases are organized into test groups (conformance levels) that reflect distinct sets of capabilities. Three conformance levels are distinguished:

  1. WFS-Basic (required) - Provides facilities for searching and retrieving feature data

  2. WFS-Transaction - Provides facilities for managing (inserting, updating, deleting) feature data

  3. WFS-XLink - Provides facilities for resolving links between related resources.

Source documents

Table of Contents

XLink tests


The XLink test group includes assertions concerning XLink processing in GetGmlObject amd GetFeature requests. Referents may reside in local and/or remote locations. XLink conformance is not required; the degree of support is advertised in the capabilities document.

Table 1. GetGmlObject request
Identifier http://www.opengis.net/wfs/1.1/atc/xlink/GetGmlObject
Purpose Confirm that the GetGmlObject request has been implemented.
Assertion The GetGmlObject request must be implemented (using POST or GET methods) if the IUT claims to provide XLink resolution capabilities.
Table 2. GetGmlObject - Exceptions
Identifier http://www.opengis.net/wfs/1.1/atc/xlink/GetGmlObject-Exceptions
Purpose Verify that exceptions arising while processing GetGmlObject requests are correctly reported.

An exception must be returned in response to any of the following situations:

Table 3. XLink resolution
Identifier http://www.opengis.net/wfs/1.1/atc/xlink/XLinkResolution
Purpose Verify that an XLink reference has been resolved correctly.

An XLink reference is processed if it can be found (successfully resolved); otherwise an exception must be reported (see Target resource not found).

All of the following conditions must be true after successfully resolving an XLink reference:

  1. the correct target resource (referent) has been inserted as a child of the link element;

  2. the locator attribute (@xlink:href) has been removed from the link element;

  3. the locator attribute is included in the text of a comment contained in the link element.

Table 4. XLink resolution - Depth
Identifier http://www.opengis.net/wfs/1.1/atc/xlink/XLinkResolution-LinkDepth
Purpose Verify that links are resolved to the correct depth.

XLink references must be resolved to a depth corresponding to one of the following cases:

Table 5. XLink resolution - Domain
Identifier http://www.opengis.net/wfs/1.1/atc/xlink/XLinkResolution-Domain
Purpose Confirm that links in supported domains are processed.

An XLink reference is processed only if its domain (as indicated by the authority component of the @xlink:href value) is supported; otherwise an exception must be reported (see Unsupported URI domain).

The capabilities document must indicate whether local and/or remote domains are supported using the LocalTraverseXlinkScope and RemoteTraverseXlinkScope constraints.

Table 6. GetFeature - Non-selective XLink resolution
Identifier http://www.opengis.net/wfs/1.1/atc/xlink/GetFeature-NonSelectiveXLinkResolution
Purpose Confirm that non-selective XLink resolution is supported for the GetFeature request.
Assertion All XLink elements in a GetFeature response must be resolved according to the value of the traverseXlinkDepth request parameter (see XLink resolution - Depth).
Table 7. GetFeature - Selective XLink resolution
Identifier http://www.opengis.net/wfs/1.1/atc/xlink/GetFeature-SelectiveXLinkResolution
Purpose Verify that selected link elements are processed as requested in a GetFeature response (optional capability).
Assertion An XLink element (feature property) specified by the value of the <wfs:XlinkPropertyName> element must be processed according to the values of the traverseXlinkDepth and traverseXlinkExpiry parameters specified either (1) for this feature property, or (2) globally for the request as a whole.