Test Requirements and Assertions for WMS 1.1.1


ISSUE : v1.0

Copyright © 1999-2002 The Open Group Ltd. All Rights Reserved.


Preface

This document describes the requirements a WMS implementation must meet to be eligible for certification testing and the assertions that are tested.

For each assertion in the specifications, a corresponding entry in this test specification contains the following elements:

ID: The name by which the test is known
Class: An assertion Class as defined in IEEE Std 1003.3. These types are:
A A mandatory, testable assertion.
B A mandatory, but untestable assertion.
C An optional, testable assertion.
D An optional, but untestable assertion.
Scope: If an assertion is type C or D, this entry describes the option that needs to be supported in order to activate the test.
Text: The text of the assertion and a reference to the source specification from which the assertion is derived.
Note: Any supplementary information associated with the assertion. For example it may suggest a strategy for the test implementation of the assertion or it may propose rationale as to why a test is classified as untestable.

This specification uses the following conventions for convenience:


Table of Contents

   I. Test Requirements
      A. Certification Requirements
      B. Test Data Definition
      C. Assumptions


   II. Variables and Scopes
      A. User supplied variables
      B. User supplied scopes
      C. Calculated variables
      D. Calculated scopes


   III. Test Assertions
      Certification Profiles
         Basic Profile
         Queryable Profile

      6 Basic Service Elements
         6.1 Version Numbering and Negotiation
            6.1.4 Version Number Negotiation

         6.4 Request Parameter Rules
            6.4.1 Parameter Ordering and Case


      7 Web Map Service Operations
         7.1 GetCapabilities
            7.1.3 Request Parameters
               7.1.3.1 VERSION
               7.1.3.3 REQUEST
               7.1.3.4 UPDATESEQUENCE

            7.1.4 GetCapabilities Response
               7.1.4.2 General Service Metadata
               7.1.4.3 Capability Metadata
               7.1.4.5 Layer Properties
                  7.1.4.5.4 Style
                  7.1.4.5.5 SRS
                  7.1.4.5.6 LatLonBoundingBox
                  7.1.4.5.7 BoundingBox
                  7.1.4.5.9 Dimension and Extent
                  7.1.4.5.10 MetadataURL
                  7.1.4.5.12 Identifier and AuthorityURL

               7.1.4.6 Layer Attributes
                  7.1.4.6.2 Cascaded layers
                  7.1.4.6.4 Subsettable and resizable layers


            7.1.5 Output Formats

         7.2 GetMap
            7.2.3 Request Parameters
               7.2.3.1 VERSION
               7.2.3.2 REQUEST
               7.2.3.3 LAYERS
               7.2.3.4 STYLES
               7.2.3.5 SRS
               7.2.3.6 BBOX
               7.2.3.7 FORMAT
               7.2.3.8 WIDTH, HEIGHT
               7.2.3.9 TRANSPARENT
               7.2.3.10 BGCOLOR
               7.2.3.11 EXCEPTIONS


         7.3 GetFeatureInfo
            7.3.3 Request Parameters
               7.3.3.5 QUERY_LAYERS
               7.2.3.6 INFO_FORMAT
               7.2.3.7 FEATURE_COUNT
               7.2.3.9 EXCEPTIONS



      Annex C Multi-Dimensional Data
         C.2 Declaring Dimensions



I. Test Requirements

A. Certification Requirements

To be certifiable as a BASIC WMS, an implementation must meet the following requirements:


To be certifiable as a QUERYABLE WMS, the implementation must also meet the following requirements:

B. Test Data Definition

The majority of the CITE standard dataset is based on the Conformance Test Guidelines for OpenGIS Simple Features Specification for SQL, Revision 1.0 . This set of features makes up a map of a fictional location called Blue Lake. The features are as described in the Simple Features Specification for SQL document, except they have been converted to WGS84 coordinates and have been reoriented so the area is centered at 0 degrees latitude, 0 degrees longitude. Figure 1 shows an overview map of the area with the prominent features labeled. Figure 2 shows the location of each of the data points.

Figure 1: Overview of Blue Lake vicinity features

Figure 2: Blue Lake vicinity data points

Additional features have also been defined to test data at a larger scale. These consist of a diamond and two overlapping squares, as shown in figure 3. It does not matter which square appears on top.

Figure 3: Basic Polygon Features

The features are organized into layers as shown in table 1. The layers may be named in any fashion, but must be titled exactly as shown in table.

Table 1: Layer titles and features
Layer Title Features Contained
cite:BasicPolygons Contains all the featrues shown in figure 3
cite:Bridges Contains Cam Bridge
cite:Buildings Contains the two buildings along Main Street
cite:DividedRoutes Contains both lanes of Route 75
cite:Forests Contains the State Forest polygon
cite:Lakes Contains Blue Lake
cite:MapNeatline Contains the border surrounding the Blue Lake vicinity
cite:NamedPlaces Contains Ashton and Goose Island
cite:Ponds Contains both pools of Stock Pond
cite:RoadSegments Contains all the sections of Route 5, Main Street, and the dirt road
cite:Streams Contains Cam Stream and the unnamed stream south of Blue Lake

A sample capabilities document which implements these layers is available here.
The dataset is available in GML, MapInfo Interchange Format, and ESRI Shapefile format and can be downloaded here.

C. Assumptions

In some cases, the WMS 1.1.1 specification is a bit ambiguous. Where additional interpretation is needed, the tests described in this document assume the following:

II. Variables and Scopes

A. User supplied variables

These variables are supplied by the user.

Variable Name Prompt
VAR_HIGH_UPDATESEQUENCE A value that is lexically higher than the current updateSequence value
VAR_LOW_UPDATESEQUENCE A value that is lexically lower than the current updateSequence value

B. User supplied scopes

These scopes are options selected by the user.

Scope ID Description
auto_updatesequence The updateSequence tests use automatically generated updateSequence values
manual_updatesequence The updateSequence tests use the user supplied values
no_profile No tests for a certification profile were selected
basic_profile Tests for the BASIC profile were selected
queryable_profile Tests for the QUERYABLE profile were selected
recommended The recommendation support tests were selected
testgml Tests for GetFeatureInfo format application/vnd.ogc.gml were selected.
free The fees and access constraints tests were selected
loosebboxconstraints The LOOSE bounding box constraint test was selected
strictbboxconstraints The STRICT bounding box constraint test was selected
eitherbboxconstraint No bounding box constraint tests were selected

C. Calculated variables

These variables are extracted from the capabilities document using XPath expressions.

VAR_WMS_VERSION =
string('1.1.1')
VAR_WMS_GET_CAPABILITIES_HTTP_GET_URL =
citef:append-kvp(/WMT_MS_Capabilities/Capability/Request/GetCapabilities/DCPType
/HTTP/Get/OnlineResource/@*[local-name() = 'href'], '')
VAR_WMS_GET_MAP_HTTP_GET_URL =
citef:append-kvp(/WMT_MS_Capabilities/Capability/Request/GetMap/DCPType/HTTP/Get
/OnlineResource/@*[local-name() = 'href'], '')
VAR_WMS_GET_FEATURE_INFO_HTTP_GET_URL =
citef:append-kvp(/WMT_MS_Capabilities/Capability/Request/GetFeatureInfo/DCPType/
HTTP/Get/OnlineResource/@*[local-name() = 'href'], '')
VAR_CURRENT_UPDATESEQUENCE =
string(/WMT_MS_Capabilities/@updateSequence)
VAR_AUTO_HIGH_UPDATESEQUENCE =
citef:inc(/WMT_MS_Capabilities/@updateSequence, 1)
VAR_AUTO_LOW_UPDATESEQUENCE =
citef:inc(/WMT_MS_Capabilities/@updateSequence, -1)
VAR_IMAGE_FORMAT =
string(/WMT_MS_Capabilities/Capability/Request/GetMap/Format[1])
VAR_READABLE_IMAGE_FORMAT =
string((/WMT_MS_Capabilities/Capability/Request/GetMap/Format[. = 'image/gif' or
 .='image/png' or .='image/jpeg'])[1])
VAR_LOSSLESS_FORMAT =
string((/WMT_MS_Capabilities/Capability/Request/GetMap/Format[. = 'image/gif' or
 .='image/png'])[1])
VAR_TRANSPARENT_FORMAT =
string((/WMT_MS_Capabilities/Capability/Request/GetMap/Format[. = 'image/gif' or
 .='image/png'])[1])
VAR_INHERENT_STYLE =
string(//Layer[starts-with(Title, 'cite') and Style]/Style[1]/Name)
VAR_LAYER_WITH_INHERENT_STYLE =
string(//Layer[starts-with(Title, 'cite') and Style]/Name)
VAR_INHERITED_STYLE =
string(//Layer[starts-with(Title, 'cite') and not(Style)]/ancestor::Layer/Style[
1]/Name)
VAR_LAYER_WITH_INHERITED_STYLE =
string(//Layer[starts-with(Title, 'cite') and not(Style) and ancestor::Layer/Sty
le]/Name)
VAR_STYLE =
string(//Layer[starts-with(Title, 'cite')]/ancestor-or-self::Layer/Style[1]/Name
)
VAR_LAYER_WITH_STYLE =
string(//Layer[starts-with(Title, 'cite') and ancestor-or-self::Layer/Style]/Nam
e)
VAR_LAYER_WITH_INHERENT_SRS =
string((//Layer[starts-with(Title, 'cite') and SRS[contains(., 'EPSG:4326')]])[1
]/Name)
VAR_LAYER_WITH_INHERITED_SRS =
string((//Layer[starts-with(Title, 'cite') and not(SRS[contains(., 'EPSG:4326')]
)])[1]/Name)
VAR_UNQUERYABLE_LAYER =
string(//Layer[starts-with(Title, 'cite') and @queryable='0'][1]/Name)
VAR_STDDATA_EXISTS =
count(//Layer[(Title = 'cite:BasicPolygons' or Title = 'cite:Bridges' or Title =
 'cite:Buildings' or Title = 'cite:DividedRoutes' or Title = 'cite:Forests' or T
itle = 'cite:Lakes' or Title = 'cite:MapNeatline' or Title = 'cite:NamedPlaces' 
or Title = 'cite:Ponds' or Title = 'cite:RoadSegments' or Title = 'cite:Streams'
) and ancestor-or-self::Layer/SRS[contains(., 'EPSG:4326')] and not(@noSubsets =
 1) and (not(@fixedWidth) or @fixedWidth = 0) and (not(@fixedHeight) or @fixedHe
ight = 0)]) = 11
VAR_QUERYABLE_LAYERS_EXIST =
count(//Layer[Title = 'cite:BasicPolygons' and @queryable = '1']) > 0 and count(
//Layer[Title = 'cite:Forests' and @queryable = '1']) > 0 and count(//Layer[Titl
e = 'cite:Lakes' and @queryable = '1']) > 0 and count(//Layer[Title = 'cite:Name
dPlaces' and @queryable = '1']) > 0 and count(//Layer[Title = 'cite:Ponds' and @
queryable = '1']) > 0 and count(/WMT_MS_Capabilities/Capability/Request/GetFeatu
reInfo) > 0
VAR_BASIC_POLYGONS =
string(//Layer[Title = 'cite:BasicPolygons']/Name)
VAR_BRIDGES =
string(//Layer[Title = 'cite:Bridges']/Name)
VAR_BUILDINGS =
string(//Layer[Title = 'cite:Buildings']/Name)
VAR_DIVIDED_ROUTES =
string(//Layer[Title = 'cite:DividedRoutes']/Name)
VAR_FORESTS =
string(//Layer[Title = 'cite:Forests']/Name)
VAR_LAKES =
string(//Layer[Title = 'cite:Lakes']/Name)
VAR_MAP_NEATLINE =
string(//Layer[Title = 'cite:MapNeatline']/Name)
VAR_NAMED_PLACES =
string(//Layer[Title = 'cite:NamedPlaces']/Name)
VAR_PONDS =
string(//Layer[Title = 'cite:Ponds']/Name)
VAR_ROAD_SEGMENTS =
string(//Layer[Title = 'cite:RoadSegments']/Name)
VAR_STREAMS =
string(//Layer[Title = 'cite:Streams']/Name)
VAR_GET_FEATURE_INFO_FORMAT =
string((/WMT_MS_Capabilities/Capability/Request/GetFeatureInfo/Format[(position(
) = 1 and last() = 1) or . != 'application/vnd.ogc.gml'])[1])

D. Calculated scopes

These scopes are extracted from the capabilities document using XPath expressions.

wms:updatesequence -
string-length('[[VAR_CURRENT_UPDATESEQUENCE]]') > 0
wms:stddata -
[[VAR_STDDATA_EXISTS]]()
wms:queryable -
[[VAR_QUERYABLE_LAYERS_EXIST]]()
wms:namedstyle -
string-length('[[VAR_STYLE]]') > 0
wms:inherentstyle -
string-length('[[VAR_INHERENT_STYLE]]') > 0
wms:inheritedstyle -
string-length('[[VAR_INHERITED_STYLE]]') > 0
wms:inherentsrs -
string-length('[[VAR_LAYER_WITH_INHERENT_SRS]]') > 0
wms:inheritedsrs -
string-length('[[VAR_LAYER_WITH_INHERITED_SRS]]') > 0
wms:gif -
count(/WMT_MS_Capabilities/Capability/Request/GetMap[Format = 'image/gif']) > 0
wms:jpeg -
count(/WMT_MS_Capabilities/Capability/Request/GetMap[Format = 'image/jpeg']) > 0
wms:png -
count(/WMT_MS_Capabilities/Capability/Request/GetMap[Format = 'image/png']) > 0
wms:transparency -
count(/WMT_MS_Capabilities/Capability/Request/GetMap[Format = 'image/gif' or For
mat = 'image/png']) > 0
wms:readable -
count(/WMT_MS_Capabilities/Capability/Request/GetMap[Format = 'image/gif' or For
mat = 'image/png' or Format = 'image/jpeg']) > 0
wms:lossless -
count(/WMT_MS_Capabilities/Capability/Request/GetMap[Format = 'image/gif' or For
mat = 'image/png']) > 0
wms:se_inimage -
count(/WMT_MS_Capabilities/Capability/Exception[Format = 'application/vnd.ogc.se
_inimage']) > 0
wms:se_blank -
count(/WMT_MS_Capabilities/Capability/Exception[Format = 'application/vnd.ogc.se
_blank']) > 0
wms:getfeatureinfo -
count(/WMT_MS_Capabilities/Capability/Request/GetFeatureInfo) > 0
wms:unqueryablelayer -
string-length('[[VAR_UNQUERYABLE_LAYER]]') > 0
wms:gml -
count(/WMT_MS_Capabilities/Capability/Request/GetFeatureInfo/Format[. = 'applica
tion/vnd.ogc.gml']) > 0

III. Test Assertions

Certification Profiles

Basic Profile

ID: wms/profiles/basic/1
Class: C
Scope: Tests for the BASIC profile were selected
Text: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326. [Test Requirements and Assertions for WMS 1.1.1 section A.-Certification Requirements]
Note:
boolean([[VAR_STDDATA_EXISTS]]())

ID: wms/profiles/basic/2
Class: C
Scope: Tests for the BASIC profile were selected
Text: The server supports GetMap format image/gif and/or image/png. [Test Requirements and Assertions for WMS 1.1.1 section A.-Certification Requirements]
Note:
string-length("[[VAR_LOSSLESS_FORMAT]]") > 0

Queryable Profile

ID: wms/profiles/queryable/1
Class: C
Scope: Tests for the QUERYABLE profile were selected
Text: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326. [Test Requirements and Assertions for WMS 1.1.1 section A.-Certification Requirements]
Note:
boolean([[VAR_STDDATA_EXISTS]]())

ID: wms/profiles/queryable/2
Class: C
Scope: Tests for the QUERYABLE profile were selected
Text: The server supports GetMap format image/gif and/or image/png. [Test Requirements and Assertions for WMS 1.1.1 section A.-Certification Requirements]
Note:
string-length("[[VAR_LOSSLESS_FORMAT]]") > 0

ID: wms/profiles/queryable/3
Class: C
Scope: Tests for the QUERYABLE profile were selected
Text: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable. [Test Requirements and Assertions for WMS 1.1.1 section A.-Certification Requirements]
Note:
boolean([[VAR_QUERYABLE_LAYERS_EXIST]]() and string-length("[[VAR_WMS_GET_FEATURE_INFO_HTTP_GET_URL]]") > 0)

6 Basic Service Elements

6.1 Version Numbering and Negotiation

6.1.4 Version Number Negotiation

ID: wms/basic_elements/version/negotiation/1
Class: B
Text: When a GetCapabilities request is made without a version number, then the response is the highest version supported. [WMS 1.1.1 Specification section basic_elements.version.negotiation]
Note:
Not testable since the capabilities XML for highest version supported may have an unknown structure.

ID: wms/basic_elements/version/negotiation/2
Class: A
Text: When a GetCapabilities request is made for a supported version, then the response is the requested version. [WMS 1.1.1 Specification section basic_elements.version.negotiation]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where /WMT_MS_Capabilities/@version = [[VAR_WMS_VERSION]]

ID: wms/basic_elements/version/negotiation/3
Class: B
Text: When a GetCapabilities request is made for version 100.0.0, the response is between [[VAR_WMS_VERSION]] and 100.0.0, inclusive. [WMS 1.1.1 Specification section basic_elements.version.negotiation]
Note:
Not testable since the capabilities XML returned may have an unknown structure.

ID: wms/basic_elements/version/negotiation/4
Class: A
Text: When a GetCapabilities request is made for version 0.0.0, the response is between 0.0.0 and [[VAR_WMS_VERSION]], inclusive. [WMS 1.1.1 Specification section basic_elements.version.negotiation]
Note:
Request:
VERSION = 0.0.0
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where /WMT_MS_Capabilities/@version <= [[VAR_WMS_VERSION]]

6.4 Request Parameter Rules

6.4.1 Parameter Ordering and Case

ID: wms/basic_elements/param_rules/order_and_case/1
Class: B
Text: Parameter names are not case sensitive. [WMS 1.1.1 Specification section basic_elements.param_rules.order_and_case]
Note:
Not completely testable without an extremely large number of requests. However, the other tests will use MiXeD case for parameter names to ensure that implementations haven't hardcoded for upper or lower case.

ID: wms/basic_elements/param_rules/order_and_case/2
Class: B
Text: Parameters in a request may be specified in any order. [WMS 1.1.1 Specification section basic_elements.param_rules.order_and_case]
Note:
Not completely testable without an extremely large number of requests. However, the other tests will use a random order for parameter names rather than using alphabetical order or the order in which the spec lists the parameters.

ID: wms/basic_elements/param_rules/order_and_case/3
Class: A
Text: When a GetCapabilities request contains a parameter which is not defined by the spec, the result is valid. [WMS 1.1.1 Specification section basic_elements.param_rules.order_and_case]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
BOGUS = ignored
Results: XML where /WMT_MS_Capabilities exists.

ID: wms/basic_elements/param_rules/order_and_case/4
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains a parameter which is not defined by the spec, the result is valid. [WMS 1.1.1 Specification section basic_elements.param_rules.order_and_case]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
BOGUS = ignored
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/basic_elements/param_rules/order_and_case/5
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When a GetFeatureInfo request contains a parameter which is not defined by the spec, the result is valid. [WMS 1.1.1 Specification section basic_elements.param_rules.order_and_case]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_LAKES]]
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
X = 60
Y = 60
BOGUS = ignored
Results: Content-type header = [[VAR_GET_FEATURE_INFO_FORMAT]]

7 Web Map Service Operations

7.1 GetCapabilities

7.1.3 Request Parameters

7.1.3.1 VERSION
ID: wms/wmsops/getcapabilities/params/version/1
Class: A
Text: When a GetCapabilities request is made for the version in test using WMTVER instead of VERSION, then the response is the requested version. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.version]
Note:
Request:
WMTVER = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where /WMT_MS_Capabilities/@version = [[VAR_WMS_VERSION]]

ID: wms/wmsops/getcapabilities/params/version/2
Class: A
Text: When a GetCapabilities request is made for a supported version other than [[VAR_WMS_VERSION]] using WMTVER instead of VERSION, then the version returned is the version requested. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.version]
Note:
Request#1:
VERSION = 0.0.0
SERVICE = WMS
REQUEST = GetCapabilities
Request#2:
VERSION = 100.0.0
SERVICE = WMS
REQUEST = GetCapabilities
Request#3:
WMTVER = [[VAR_OTHER_VERSION]]
SERVICE = WMS
REQUEST = [[VAR_REQUEST_NAME]]
Results: VAR_OTHER_VERSION will be set to the version returned from request 1 if it is not ther version in test. Otherwise, it will be set to the version returned from request 2. The result from request 3 must be XML where /WMT_MS_Capabilities/@version = [[VAR_OTHER_VERSION]]

ID: wms/wmsops/getcapabilities/params/version/3
Class: A
Text: When a GetCapabilities request is made with VERSION set to [[VAR_WMS_VERSION]] and WMTVER set to 0.0.0 and VERSION precedes WMTVER, then the version returned is [[VAR_WMS_VERSION]]. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.version]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
WMTVER = 0.0.0
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where /WMT_MS_Capabilities/@version = [[VAR_WMS_VERSION]]

ID: wms/wmsops/getcapabilities/params/version/4
Class: A
Text: When a GetCapabilities request is made with VERSION set to [[VAR_WMS_VERSION]] and WMTVER set to 100.0.0 and VERSION precedes WMTVER, then the version returned is [[VAR_WMS_VERSION]]. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.version]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
WMTVER = 100.0.0
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where /WMT_MS_Capabilities/@version = [[VAR_WMS_VERSION]]

ID: wms/wmsops/getcapabilities/params/version/5
Class: A
Text: When a GetCapabilities request is made with VERSION set to [[VAR_WMS_VERSION]] and WMTVER set to 0.0.0 and WMTVER precedes VERSION, then the version returned is [[VAR_WMS_VERSION]]. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.version]
Note:
Request:
WMTVER = 0.0.0
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where /WMT_MS_Capabilities/@version = [[VAR_WMS_VERSION]]

ID: wms/wmsops/getcapabilities/params/version/6
Class: A
Text: When a GetCapabilities request is made with VERSION set to [[VAR_WMS_VERSION]] and WMTVER set to 100.0.0 and WMTVER precedes VERSION, then the version returned is [[VAR_WMS_VERSION]]. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.version]
Note:
Request:
WMTVER = 100.0.0
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where /WMT_MS_Capabilities/@version = [[VAR_WMS_VERSION]]
7.1.3.3 REQUEST
ID: wms/wmsops/getcapabilities/params/request/1
Class: A
Text: When REQUEST is "capabilities", then the response is capabilities XML. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.request]
Note:
Request:
SERVICE = WMS
REQUEST = capabilities
Results: XML where /WMT_MS_Capabilities exists
7.1.3.4 UPDATESEQUENCE
ID: wms/wmsops/getcapabilities/params/updatesequence/1
Class: C
Scope: The server does not advertise an UpdateSequence number
Text: When a GetCapabilities request is made with an UPDATESEQUENCE parameter, then the UPDATESEQUENCE parameter is ignored. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.updatesequence]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
UPDATESEQUENCE = ignored
Results: XML where /WMT_MS_Capabilities exists

ID: wms/wmsops/getcapabilities/params/updatesequence/2
Class: C
Scope: The server advertises an UpdateSequence number
Text: When a GetCapabilities request is made with an UPDATESEQUENCE parameter set to the current update sequence value, then the server returns a valid exception (code=CurrentUpdateSequence). [WMS 1.1.1 Specification section wmsops.getcapabilities.params.updatesequence]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
UPDATESEQUENCE = [[VAR_CURRENT_UPDATESEQUENCE]]
Results: Valid XML where /ServiceExceptionReport/ServiceException[@code="CurrentUpdateSequence"] exists

ID: wms/wmsops/getcapabilities/params/updatesequence/3
Class: C
Scopes:
  • The server advertises an UpdateSequence number
  • The updateSequence tests use the user supplied values
Text: When a GetCapabilities request is made with an UPDATESEQUENCE parameter set to a value lower than the current update sequence value, then the server returns capabilities XML. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.updatesequence]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
UPDATESEQUENCE = [[VAR_LOW_UPDATESEQUENCE]]
Results: XML where /WMT_MS_Capabilities exists

ID: wms/wmsops/getcapabilities/params/updatesequence/4
Class: C
Scopes:
  • The server advertises an UpdateSequence number
  • The updateSequence tests use the user supplied values
Text: When a GetCapabilities request is made with an UPDATESEQUENCE parameter set to a value higher than the current update sequence value, then the server returns an InvalidUpdateSequence exception. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.updatesequence]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
UPDATESEQUENCE = [[VAR_HIGH_UPDATESEQUENCE]]
Results: Valid XML where /ServiceExceptionReport/ServiceException[@code="InvalidUpdateSequence"] exists

ID: wms/wmsops/getcapabilities/params/updatesequence/5
Class: C
Scopes:
  • The server advertises an UpdateSequence number
  • The updateSequence tests use automatically generated updateSequence values
Text: When a GetCapabilities request is made with an UPDATESEQUENCE parameter set to a value lower than the current update sequence value, then the server returns capabilities XML. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.updatesequence]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
UPDATESEQUENCE = [[VAR_AUTO_LOW_UPDATESEQUENCE]]
Results: XML where /WMT_MS_Capabilities exists

ID: wms/wmsops/getcapabilities/params/updatesequence/6
Class: C
Scopes:
  • The server advertises an UpdateSequence number
  • The updateSequence tests use automatically generated updateSequence values
Text: When a GetCapabilities request is made with an UPDATESEQUENCE parameter set to a value higher than the current update sequence value, then the server returns an InvalidUpdateSequence exception. [WMS 1.1.1 Specification section wmsops.getcapabilities.params.updatesequence]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
UPDATESEQUENCE = [[VAR_AUTO_HIGH_UPDATESEQUENCE]]
Results: Valid XML where /ServiceExceptionReport/ServiceException[@code="InvalidUpdateSequence"] exists

7.1.4 GetCapabilities Response

ID: wms/wmsops/getcapabilities/response/1
Class: A
Text: When a GetCapabilities request is made, then the content-type header of the response is application/vnd.ogc.wms_xml [WMS 1.1.1 Specification section wmsops.getcapabilities.response], [WMS 1.1.1 Specification section basic_elements.result], [WMS 1.1.1 Specification section basic_elements.params.srs.undefined]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: Content-type header = application/vnd.ogc.wms_xml

ID: wms/wmsops/getcapabilities/response/2
Class: A
Text: The response to a GetCapabilities request references a valid copy of the DTD in Annex A.1 at a fully-quallified and accessible location and validates with the DTD. [WMS 1.1.1 Specification section wmsops.getcapabilities.response]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML that validates with the properly configured Galdos validator
7.1.4.2 General Service Metadata
ID: wms/wmsops/getcapabilities/response/general_metadata/1
Class: A
Text: The Service Name element in the capabilities document has the value "OGC:WMS". [WMS 1.1.1 Specification section wmsops.getcapabilities.response.general_metadata]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where /WMT_MS_Capabilities/Service/Name = "OGC:WMS"

ID: wms/wmsops/getcapabilities/response/general_metadata/2
Class: A
Text: The word "none" (case-insensitive) is used in the content of the Fees element and the AccessConstraints element of the capabilities document. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.general_metadata]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where LowerCase(/WMT_MS_Capabilities/Service/Fees) = "none" and LowerCase(/WMT_MS_Capabilities/Service/AccessConstraints) = "none"
7.1.4.3 Capability Metadata
ID: wms/wmsops/getcapabilities/response/capability_metadata/1
Class: A
Text: Each OnlineResource URL intended for HTTP Get requests in the capabilities document is a URL prefix [WMS 1.1.1 Specification section wmsops.getcapabilities.response.capability_metadata], [WMS 1.1.1 Specification section basic_elements.request_rules.get]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where each /WMT_MS_Capabilities/Capability/Request//OnlineResource@xlink:href ends in a ? or both contains a ? and ends in an &.

ID: wms/wmsops/getcapabilities/response/capability_metadata/2
Class: C
Scope: Tests for GetFeatureInfo format application/vnd.ogc.gml were selected.
Text: The output format application/vnd.ogc.gml is listed for the GetFeatureInfo operation. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.capability_metadata]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where count(/WMT_MS_Capabilities/Capability/Request/GetFeatureInfo/Format[. = 'application/vnd.ogc.gml']) > 0
7.1.4.5 Layer Properties
7.1.4.5.4 Style
ID: wms/wmsops/getcapabilities/response/layer_properties/style/1
Class: A
Text: There are no child layers in the capabilities document that redefine a Style with the same name as one inherited from one of its parents. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.style]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where no //Layer/Style/Name is redefined
7.1.4.5.5 SRS
ID: wms/wmsops/getcapabilities/response/layer_properties/srs/1
Class: A
Text: The root layer in the capabilities document has at least one SRS element. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.srs]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where at least one /WMT_MS_Capabilities/Capability/Layer/SRS exists
7.1.4.5.6 LatLonBoundingBox
ID: wms/wmsops/getcapabilities/response/layer_properties/latlonbbox/1
Class: A
Text: The root layer in the capabilities document has a LatLonBoundingBox. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.latlonbbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where /WMT_MS_Capabilities/Capability/Layer/LatLonBoundingBox exists

ID: wms/wmsops/getcapabilities/response/layer_properties/latlonbbox/2
Class: A
Text: The minx, miny, maxx, and maxy attributes on each LatLonBoundingBox are expressed in decimal degrees. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.latlonbbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where the attributes on each //LatLonBoundingBox are numeric (scientific notation is OK).
7.1.4.5.7 BoundingBox
ID: wms/wmsops/getcapabilities/response/layer_properties/bbox/1
Class: A
Text: For each of the layer elements in the capabilities document, each BoundingBox on the layer states a different SRS. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.bbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where count(//Layer/BoundingBox[@SRS = following-sibling::*/@SRS]) = 0
7.1.4.5.9 Dimension and Extent
ID: wms/wmsops/getcapabilities/response/layer_properties/dim_and_extent/1
Class: A
Text: There are no child Dimension elements in the capabilities document that use a name attribute that is defined in a parent layer. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.dim_and_extent], [WMS 1.1.1 Specification section dims.declaring]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where no //Layer/Dimension/@name is redefined

ID: wms/wmsops/getcapabilities/response/layer_properties/dim_and_extent/2
Class: A
Text: Each Extent element in the capabilities document uses a name that has been declared or inherited in a corresponding Dimension element. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.dim_and_extent]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where every //Layer/Extent/@name has a corresponding Layer/Dimension/@name
7.1.4.5.10 MetadataURL
ID: wms/wmsops/getcapabilities/response/layer_properties/metadataurl/1
Class: B
Text: Each MetadataURL element in the capabilities document references metadata in the standard format indicated by its type parameter. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.metadataurl]
Note:
Not testable
7.1.4.5.12 Identifier and AuthorityURL
ID: wms/wmsops/getcapabilities/response/layer_properties/identifier_and_authorityurl/1
Class: A
Text: There are no child Layer elements in the capabilities document that define an AuthorityURL with the same name attribute as one inherited from a parent layer. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.identifier_and_authorityurl]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where no //Layer/AuthorityURL/@name is redefined

ID: wms/wmsops/getcapabilities/response/layer_properties/identifier_and_authorityurl/2
Class: A
Text: There are no Layer elements in the capabilities document that declare an Identifier without also declaring or inheriting a corresponding AuthorityURL. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.identifier_and_authorityurl]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where each //Layer/Identifier/@authority has a corresponding //Layer/AuthorityURL/@name
7.1.4.6 Layer Attributes
7.1.4.6.2 Cascaded layers
ID: wms/wmsops/getcapabilities/response/layer_attributes/cascaded/1
Class: D
Scope: The server cascades the content of another WMS
Text: For each layer in the capabilities document that is cascaded from another WMS, the value of the cascaded attribute is the value of the cascaded attribute from the originating WMS's Capabilities document incremented by one, or is one if there is no cascaded attribute in the originating WMS's Capabilities document. [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_attributes.cascaded]
Note:
Not testable because there is no way of knowing whether or not a cascaded layer is actually cascaded, or how deeply.
7.1.4.6.4 Subsettable and resizable layers
ID: wms/wmsops/getcapabilities/response/layer_attributes/subsettable_and_resizable/1
Class: B
Text: For each layer that does not have a well-defined coordinate system the SRS is declared as NONE (case-insensitive) [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_attributes.subsettable_and_resizable], [WMS 1.1.1 Specification section basic_elements.params.srs.undefined]
Note:
Not testable because there is no way of knowing whether the data has a a well-defined coordinate system or not.

7.1.5 Output Formats

ID: wms/wmsops/getcapabilities/output_formats/1
Class: A
Text: The application/vnd.ogc.se_xml exception format is listed in the capabilities document. [WMS 1.1.1 Specification section wmsops.getcapabilities.output_formats], [WMS 1.1.1 Specification section wmsops.getmap.params.exceptions]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where a /WMT_MS_Capabilities/Capability/Exception/Format = "application/vnd.ogc.se_xml"

7.2 GetMap

7.2.3 Request Parameters

7.2.3.1 VERSION
ID: wms/wmsops/getmap/params/version/1
Class: C
Scopes:
  • The recommendation support tests were selected
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request is made using WMTVER instead of VERSION, the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.version]
Note:
Request:
WMTVER = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]
7.2.3.2 REQUEST
ID: wms/wmsops/getmap/params/request/1
Class: C
Scopes:
  • The recommendation support tests were selected
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request is made using REQUEST=map instead of REQUEST=GetMap, the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.request]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = map
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]
7.2.3.3 LAYERS
ID: wms/wmsops/getmap/params/layers/1
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains a single layer name, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.layers]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/layers/2
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains two layer names (separated by a comma), then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.layers]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]], [[VAR_STREAMS]]
STYLES =
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/layers/3
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains three layer names (separated by commas), then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.layers]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_MAP_NEATLINE]], [[VAR_ROAD_SEGMENTS]], [[VAR_DIVIDED_ROUTES]]
STYLES =
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/layers/4
Class: C
Scopes:
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
  • The server supports an image format which the test software can read (gif, png, or jpeg)
Text: When a GetMap request contains multiple layers, then the response renders the requested layers by drawing the leftmost in the list bottommost, and the next one over that. [WMS 1.1.1 Specification section wmsops.getmap.params.layers]
Note:
The user will be asked to manually verify that for request #1, Goose Island, Blue Lake, and Ashton are above State Forest. For request #2, State Forest is above Ashton, and Blue Lake and Goose Island are not visible. If it is not be possible to tell which feature is on top of another, the test will pass.

ID: wms/wmsops/getmap/params/layers/5
Class: A
Text: When the layer in a GetMap request is invalid, then the response is an exception (code="LayerNotDefined"). [WMS 1.1.1 Specification section wmsops.getmap.params.layers], [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.name]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = NonExistant
STYLES =
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Valid XML where /ServiceExceptionReport/ServiceException[@code="LayerNotDefined"] exists

ID: wms/wmsops/getmap/params/layers/6
Class: A
Text: When a GetMap request contains two layers where the first is valid and the second is invalid, then the response is an exception (code="LayerNotDefined"). [WMS 1.1.1 Specification section wmsops.getmap.params.layers], [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.name]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]], NonExistant
STYLES =
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Valid XML where /ServiceExceptionReport/ServiceException[@code="LayerNotDefined"] exists

ID: wms/wmsops/getmap/params/layers/7
Class: A
Text: When a GetMap request contains two layers where the first is invalid and the second is valid, then the response is an exception (code="LayerNotDefined"). [WMS 1.1.1 Specification section wmsops.getmap.params.layers], [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_properties.name]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = NonExistant, [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Valid XML where /ServiceExceptionReport/ServiceException[@code="LayerNotDefined"] exists

ID: wms/wmsops/getmap/params/layers/8
Class: B
Text: For each of the Layers in the capabilities document, when a GetMap request is made with the LAYERS parameter set to the element of the layer, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.layers]
Note:
Not testable without dynamic testing capability
7.2.3.4 STYLES
ID: wms/wmsops/getmap/params/styles/1
Class: C
Scopes:
  • The server contains a standard layer with a named style where the style is contained directly in the layer definition
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains a single layer and a single style where the style is contained directly in the layer in the capabilities document, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAYER_WITH_INHERENT_STYLE]]
STYLES = [[VAR_INHERENT_STYLE]]
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/styles/2
Class: C
Scopes:
  • The server contains a standard layer with a named style where the style is inherited from a parent layer definition
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains a single layer and a single style where the style is inherited by the layer in the capabilities document, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAYER_WITH_INHERITED_STYLE]]
STYLES = [[VAR_INHERITED_STYLE]]
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/styles/3
Class: C
Scopes:
  • The server contains a standard layer that is available in a named style
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains two layers and two styles (separated by a comma), then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAYER_WITH_STYLE]], [[VAR_LAYER_WITH_STYLE]]
STYLES = [[VAR_STYLE]], [[VAR_STYLE]]
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/styles/4
Class: C
Scopes:
  • The server contains a standard layer that is available in a named style
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains three layers and three styles (separated by commas), then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAYER_WITH_STYLE]], [[VAR_LAYER_WITH_STYLE]], [[VAR_LAYER_WITH_STYLE]]
STYLES = [[VAR_STYLE]], [[VAR_STYLE]], [[VAR_STYLE]]
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/styles/5
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains an unadvertised Style, then the response is an exception (code=StyleNotDefined). [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES = UndefinedStyle
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Valid XML where /ServiceExceptionReport/ServiceException[@code="StyleNotDefined"] exists

ID: wms/wmsops/getmap/params/styles/6
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains a single layer and a null style value (as in "STYLES="), then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_PONDS]]
STYLES =
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/styles/7
Class: C
Scopes:
  • The server contains a standard layer that is available in a named style
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains multiple layers and a mixture of named and default styles (as in "STYLES=style1,,style2,,"), then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAYER_WITH_STYLE]], [[VAR_BRIDGES]], [[VAR_LAYER_WITH_STYLE]], [[VAR_ROAD_SEGMENTS]], [[VAR_DIVIDED_ROUTES]]
STYLES = [[VAR_STYLE]], , [[VAR_STYLE]], ,
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/styles/8
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains multiple layers and requests all layers to be shown in the default style by using null values between commas (as in "STYLES=,,,"), then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_BRIDGES]], [[VAR_ROAD_SEGMENTS]], [[VAR_DIVIDED_ROUTES]], [[VAR_BUILDINGS]]
STYLES = , , ,
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/styles/9
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains multiple layers and requests all layers to be shown in the default style by using a single null value (as in "STYLES="), then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_BRIDGES]], [[VAR_ROAD_SEGMENTS]], [[VAR_DIVIDED_ROUTES]], [[VAR_BUILDINGS]]
STYLES =
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/styles/10
Class: C
Scopes:
  • The server contains a standard layer that is available in a named style
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains two layers, where one of the styles is valid and one is not, then the response is an exception (code=StyleNotDefined). [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAYER_WITH_STYLE]], [[VAR_LAKES]]
STYLES = [[VAR_STYLE]], UndefinedStyle
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Valid XML where /ServiceExceptionReport/ServiceException[@code="StyleNotDefined"] exists

ID: wms/wmsops/getmap/params/styles/11
Class: B
Text: For each of the Styles in the capabilities document, when a GetMap request is made with the STYLES parameter set to the element of the style, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.styles]
Note:
Not testable without dynamic testing capability
7.2.3.5 SRS
ID: wms/wmsops/getmap/params/srs/1
Class: C
Scopes:
  • The server contains a named layer where the EPSG:4326 SRS is contained directly in the layer definition
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains a single layer and a SRS where the SRS is contained directly in the layer in the capabilities document, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.srs]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAYER_WITH_INHERENT_SRS]]
STYLES =
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/srs/2
Class: C
Scopes:
  • The server contains a named layer where the EPSG:4326 SRS is inherited from a parent layer definition
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains a single layer and a SRS where the SRS is inherited by the layer in the capabilities document, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.srs]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAYER_WITH_INHERITED_SRS]]
STYLES =
SRS = EPSG:4326
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = [[VAR_IMAGE_FORMAT]]

ID: wms/wmsops/getmap/params/srs/3
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When the SRS parameter in a GetMap request contains a SRS that is not valid for any of the layers being requested, then the server shall throw a Service Exception (code = "InvalidSRS"). [WMS 1.1.1 Specification section wmsops.getmap.params.srs], [WMS 1.1.1 Specification section basic_elements.params.srs]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = UndefinedSRS
BBOX = -0.0042, -0.0024, 0.0042, 0.0024
WIDTH = 168
HEIGHT = 96
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Valid XML where /ServiceExceptionReport/ServiceException[@code="InvalidSRS"] exists

ID: wms/wmsops/getmap/params/srs/4
Class: B
Text: When the SRS parameter in a GetMap request contains a SRS that is valid for some, but not all of the layers being requested, then the server shall throw a Service Exception (code = "InvalidSRS"). [WMS 1.1.1 Specification section wmsops.getmap.params.srs], [WMS 1.1.1 Specification section basic_elements.params.srs]
Note:
Will not be tested since all the standard dataset layers require support for EPSG:4326 and none require support for any other SRS.

ID: wms/wmsops/getmap/params/srs/5
Class: D
Scope: The server contains a layer that is not associated with an SRS
Text: When a GetMap request contains a SRS=NoNe for a layer that has defined NONE, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.srs], [WMS 1.1.1 Specification section basic_elements.params.srs]
Note:
Not testable since if SRS=NONE, it is not clear from the spec what would be a valid value for the BBOX parameter.

ID: wms/wmsops/getmap/params/srs/6
Class: B
Text: For each SRS in the capabilities document, when a GetMap request uses the SRS, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.srs], [WMS 1.1.1 Specification section basic_elements.params.srs]
Note:
Not testable without dynamic testing capability
7.2.3.6 BBOX
ID: wms/wmsops/getmap/params/bbox/1
Class: C
Scopes:
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
  • The server supports an image format which the test software can read (gif, png, or jpeg)
Text: When a GetMap request uses integer values for the BBOX parameter, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
The user will be asked to manually verify that the image contains a diamond polygon that fills the picture.

ID: wms/wmsops/getmap/params/bbox/2
Class: C
Scopes:
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
  • The server supports an image format which the test software can read (gif, png, or jpeg)
Text: When a GetMap request uses decimal values for the BBOX parameter, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
The user will be asked to manually verify that image #1 contains a map of the Blue Lake vicinity with a surrounding neatline and image #2 contains a slightly closer view of the same area where the surrounding neatline is not visible.

ID: wms/wmsops/getmap/params/bbox/3
Class: C
Scopes:
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
  • The server supports a lossless image format (gif or png)
Text: When a GetMap request uses scientific notation values for the BBOX parameter, then the response is valid. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
Request#1:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_STREAMS]], [[VAR_LAKES]], [[VAR_PONDS]], [[VAR_BRIDGES]], [[VAR_ROAD_SEGMENTS]], [[VAR_DIVIDED_ROUTES]], [[VAR_BUILDINGS]], [[VAR_MAP_NEATLINE]]
STYLES =
SRS = EPSG:4326
BBOX = -0.005, -0.0025, 0.005, 0.0025
WIDTH = 400
HEIGHT = 200
FORMAT = [[VAR_LOSSLESS_FORMAT]]
Request#2:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_STREAMS]], [[VAR_LAKES]], [[VAR_PONDS]], [[VAR_BRIDGES]], [[VAR_ROAD_SEGMENTS]], [[VAR_DIVIDED_ROUTES]], [[VAR_BUILDINGS]], [[VAR_MAP_NEATLINE]]
STYLES =
SRS = EPSG:4326
BBOX = -.0005E1, -25E-4, +05E-3, .00025E+1
WIDTH = 400
HEIGHT = 200
FORMAT = [[VAR_LOSSLESS_FORMAT]]
Results: Images where checksum(image#1) = checksum(image#2)

ID: wms/wmsops/getmap/params/bbox/4
Class: C
Scopes:
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
  • The server supports a lossless image format (gif or png)
Text: The server interprets the bounding box as going around the "outside" of the pixels of the image rather than through the centers of the border pixels. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0.0016, -0.0012, 0.0026, -0.0005
WIDTH = 10
HEIGHT = 7
FORMAT = [[VAR_LOSSLESS_FORMAT]]
Results: The test verifies that none of the border pixels in the image returned are white

ID: wms/wmsops/getmap/params/bbox/5
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When the BBOX parameter's minimum X is greater than the maximum X, then the server throws an exception. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 1, -1, -1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Valid XML where /ServiceExceptionReport/ServiceException exists

ID: wms/wmsops/getmap/params/bbox/6
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When the BBOX parameter's minimum X is equal to the maximum X, then the server throws an exception. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 1, -1, 1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Valid XML where /ServiceExceptionReport/ServiceException exists

ID: wms/wmsops/getmap/params/bbox/7
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When the BBOX parameter's minimum Y is greater than the maximum Y, then the server throws an exception. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = -1, 1, 1, -1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Valid XML where /ServiceExceptionReport/ServiceException exists

ID: wms/wmsops/getmap/params/bbox/8
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When the BBOX parameter's minimum Y is equal to the maximum Y, then the server throws an exception. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = -1, 1, 1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Valid XML where /ServiceExceptionReport/ServiceException exists

ID: wms/wmsops/getmap/params/bbox/9
Class: C
Scopes:
  • The recommendation support tests were selected
  • The server supports a lossless image format (gif or png)
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a request contains a Bounding Box whose area does not overlap at all with the BoundingBox advertised, then the server returns empty content. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_PONDS]]
STYLES =
SRS = EPSG:4326
BBOX = -180, -90, -179, -89
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_LOSSLESS_FORMAT]]
Results: Image where all pixels are white

ID: wms/wmsops/getmap/params/bbox/10
Class: C
Scopes:
  • The recommendation support tests were selected
  • The server supports a lossless image format (gif or png)
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a request contains a Bounding Box with y values that are beyond 90 degrees, then the server returns empty content for the area beyond 90 degrees. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_PONDS]]
STYLES =
SRS = EPSG:4326
BBOX = -5, 90, 5, 100
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_LOSSLESS_FORMAT]]
Results: Image where all pixels are white

ID: wms/wmsops/getmap/params/bbox/11
Class: C
Scopes:
  • The STRICT bounding box constraint test was selected
  • The server supports a lossless image format (gif or png)
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a request contains a Bounding Box with x values that are beyond 180 degrees, then the server returns empty content for the area beyond 180 degrees. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_PONDS]]
STYLES =
SRS = EPSG:4326
BBOX = 359.9978, 0.0014, 359.9988, 0.0022
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_LOSSLESS_FORMAT]]
Results: Image where all pixels are white

ID: wms/wmsops/getmap/params/bbox/12
Class: C
Scopes:
  • The LOOSE bounding box constraint test was selected
  • The server supports a lossless image format (gif or png)
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a request contains a Bounding Box with x values that are beyond 180 degrees, then the server returns content that spans the anti-meridian. [WMS 1.1.1 Specification section wmsops.getmap.params.bbox], [WMS 1.1.1 Specification section basic_elements.params.bbox]
Note:
Request#1:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_PONDS]]
STYLES =
SRS = EPSG:4326
BBOX = -0.0022, 0.0014, -0.0012, 0.0022
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_LOSSLESS_FORMAT]]
Request#2:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_PONDS]]
STYLES =
SRS = EPSG:4326
BBOX = 359.9978, 0.0014, 359.9988, 0.0022
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_LOSSLESS_FORMAT]]
Results: Two identical images
7.2.3.7 FORMAT
ID: wms/wmsops/getmap/params/format/1
Class: C
Scope: The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request contains a Format that is not advertised, then the server throws a Service Exception (code="InvalidFormat"). [WMS 1.1.1 Specification section wmsops.getmap.params.format], [WMS 1.1.1 Specification section basic_elements.params.format]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = -1, -1, 1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = UnknownFormat
Results: Valid XML where /ServiceExceptionReport/ServiceException[@code="InvalidFormat"] exists

ID: wms/wmsops/getmap/params/format/2
Class: C
Scopes:
  • The server supports gif images
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request is made using format=image/gif, then the response is a valid gif. [WMS 1.1.1 Specification section wmsops.getmap.params.format]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = image/gif
Results: Content-type header = "image/gif" and response is a genuine image

ID: wms/wmsops/getmap/params/format/3
Class: C
Scopes:
  • The server supports jpeg images
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request is made using format=image/jpeg, then the response is a valid jpeg. [WMS 1.1.1 Specification section wmsops.getmap.params.format]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = image/jpeg
Results: Content-type header = "image/jpeg" and response is a genuine image

ID: wms/wmsops/getmap/params/format/4
Class: C
Scopes:
  • The server supports png images
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request is made using format=image/png, then the response is a valid png. [WMS 1.1.1 Specification section wmsops.getmap.params.format]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = image/png
Results: Content-type header = "image/png" and response is a genuine image

ID: wms/wmsops/getmap/params/format/5
Class: B
Text: For each image format advertised in capabilities, When a GetMap request is made using the image format, then the Content-type entity header returned is the format requested. [WMS 1.1.1 Specification section wmsops.getmap.params.format]
Note:
Not testable without dynamic testing capability
7.2.3.8 WIDTH, HEIGHT
ID: wms/wmsops/getmap/params/width_height/1
Class: C
Scopes:
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
  • The server supports an image format which the test software can read (gif, png, or jpeg)
Text: When a request is made with WIDTH=1024 and HEIGHT=768, the image returned is exactly the size requested. [WMS 1.1.1 Specification section wmsops.getmap.params.width_height]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]], [[VAR_STREAMS]], [[VAR_PONDS]]
STYLES =
SRS = EPSG:4326
BBOX = -0.0022, -0.0024, 0.0042, 0.0024
WIDTH = 1024
HEIGHT = 768
FORMAT = [[VAR_READABLE_IMAGE_FORMAT]]
Results: Image where width=1024 and height=768

ID: wms/wmsops/getmap/params/width_height/2
Class: C
Scopes:
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
  • The server supports an image format which the test software can read (gif, png, or jpeg)
Text: When a request is made with WIDTH=16 and HEIGHT=16, the image returned is exactly the size requested. [WMS 1.1.1 Specification section wmsops.getmap.params.width_height]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_BASIC_POLYGONS]]
STYLES =
SRS = EPSG:4326
BBOX = -1, -1, 1, 1
WIDTH = 16
HEIGHT = 16
FORMAT = [[VAR_READABLE_IMAGE_FORMAT]]
Results: Image where width=16 and height=16

ID: wms/wmsops/getmap/params/width_height/3
Class: C
Scopes:
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
  • The server supports an image format which the test software can read (gif, png, or jpeg)
Text: When a GetMap request is made where the aspect ratio of the BBOX and the aspect ratio of the WIDTH/HEIGHT parameters is different, then the map returned is stretched. [WMS 1.1.1 Specification section wmsops.getmap.params.width_height]
Note:
The user will be asked to manually verify that the two images look the same, except that the image #2 is stretched so it is twice as tall as image #1.
7.2.3.9 TRANSPARENT
ID: wms/wmsops/getmap/params/transparent/1
Class: C
Scopes:
  • The server supports an image format which supports transparency (gif or png)
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request is made with no TRANSPARENT parameter and a FORMAT that supports transparency over a BBOX that is not completely covered, then the response contains no transparent pixels. [WMS 1.1.1 Specification section wmsops.getmap.params.transparent]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_TRANSPARENT_FORMAT]]
Results: An image with no transparent pixels

ID: wms/wmsops/getmap/params/transparent/2
Class: C
Scopes:
  • The server supports an image format which supports transparency (gif or png)
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request is made with TRANSPARENT=fAlSe and a FORMAT that supports transparency over a BBOX that is not completely covered, then the response contains no transparent pixels. [WMS 1.1.1 Specification section wmsops.getmap.params.transparent]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_TRANSPARENT_FORMAT]]
TRANSPARENT = fAlSe
Results: An image with no transparent pixels

ID: wms/wmsops/getmap/params/transparent/3
Class: C
Scopes:
  • The server supports an image format which supports transparency (gif or png)
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request is made with TRANSPARENT=TRUE and a FORMAT that supports transparency over a BBOX that is not completely covered, then the response contains transparent pixels. [WMS 1.1.1 Specification section wmsops.getmap.params.transparent]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_TRANSPARENT_FORMAT]]
TRANSPARENT = TRUE
Results: An image that contains transparent pixels
7.2.3.10 BGCOLOR
ID: wms/wmsops/getmap/params/bgcolor/1
Class: C
Scopes:
  • The server supports a lossless image format (gif or png)
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request is made with no BGCOLOR parameter, then areas which are not covered contain white (0xFFFFFF) pixels. [WMS 1.1.1 Specification section wmsops.getmap.params.bgcolor]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_LOSSLESS_FORMAT]]
Results: An image with white pixels in the background of the image

ID: wms/wmsops/getmap/params/bgcolor/2
Class: C
Scopes:
  • The server supports a lossless image format (gif or png)
  • The server implements the CITE standard dataset in subsettable, resizable layers that support EPSG:4326
Text: When a GetMap request is made with a BGCOLOR parameter, then areas which are not covered are set to the value of BGCOLOR. [WMS 1.1.1 Specification section wmsops.getmap.params.bgcolor], [WMS 1.1.1 Specification section wmsops.getmap.params.transparent]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_LOSSLESS_FORMAT]]
BGCOLOR = 0x0000FF
Results: An image with white pixels in the background of the image
7.2.3.11 EXCEPTIONS
ID: wms/wmsops/getmap/params/exceptions/1
Class: A
Text: When an exception is raised without specifying the EXCEPTIONS parameter, then the Content-type of the return header is application/vnd.ogc.se_xml. [WMS 1.1.1 Specification section wmsops.getmap.params.exceptions]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = NonExistant
STYLES =
SRS = EPSG:4326
BBOX = -1, -1, 1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
Results: Content-type header = "application/vnd.ogc.se_xml"

ID: wms/wmsops/getmap/params/exceptions/2
Class: A
Text: When an exception is raised and EXCEPTIONS=application/vnd.ogc.se_xml, then the Content-type of the return header is application/vnd.ogc.se_xml. [WMS 1.1.1 Specification section wmsops.getmap.params.exceptions]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = NonExistant
STYLES =
SRS = EPSG:4326
BBOX = -1, -1, 1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
EXCEPTIONS = application/vnd.ogc.se_xml
Results: Content-type header = "application/vnd.ogc.se_xml"

ID: wms/wmsops/getmap/params/exceptions/3
Class: C
Scopes:
  • The server supports the application/vnd.ogc.se_inimage exception format
  • The server supports an image format which the test software can read (gif, png, or jpeg)
Text: When an exception is raised and EXCEPTIONS=application/vnd.ogc.se_inimage, then the error messages are graphically returned as part of the content. [WMS 1.1.1 Specification section wmsops.getmap.params.exceptions]
Note:
The user will be asked to verify that an image containing an error message indicating that the layer requested was not defined is returned.

ID: wms/wmsops/getmap/params/exceptions/4
Class: C
Scope: The server supports the application/vnd.ogc.se_inimage exception format
Text: When an exception is raised and EXCEPTIONS=application/vnd.ogc.se_inimage, then the Content-type of the return header is the same as the FORMAT requested. [WMS 1.1.1 Specification section wmsops.getmap.params.exceptions]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = NonExistant
STYLES =
SRS = EPSG:4326
BBOX = -1, -1, 1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
EXCEPTIONS = application/vnd.ogc.se_inimage
Results: Content-type header = "[[VAR_IMAGE_FORMAT]]"

ID: wms/wmsops/getmap/params/exceptions/5
Class: C
Scopes:
  • The server supports the application/vnd.ogc.se_blank exception format
  • The server supports a lossless image format (gif or png)
Text: When an exception is raised and EXCEPTIONS=application/vnd.ogc.se_blank, TRANSPRENT=FALSE, and BGCOLOR=0xFF0000, then the image returned contains only red pixels. [WMS 1.1.1 Specification section wmsops.getmap.params.exceptions]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = NonExistant
STYLES =
SRS = EPSG:4326
BBOX = -1, -1, 1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_LOSSLESS_FORMAT]]
BGCOLOR = 0xFF0000
EXCEPTIONS = application/vnd.ogc.se_blank
Results: Image where all the pixels are red

ID: wms/wmsops/getmap/params/exceptions/6
Class: C
Scopes:
  • The server supports the application/vnd.ogc.se_blank exception format
  • The server supports an image format which supports transparency (gif or png)
Text: When an exception is raised and EXCEPTIONS=application/vnd.ogc.se_blank and TRANSPRENT=TRUE, then the image returned contains only transparent pixels. [WMS 1.1.1 Specification section wmsops.getmap.params.exceptions]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = NonExistant
STYLES =
SRS = EPSG:4326
BBOX = -1, -1, 1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_TRANSPARENT_FORMAT]]
TRANSPARENT = TRUE
EXCEPTIONS = application/vnd.ogc.se_blank
Results: Image where all the pixels are transparent

ID: wms/wmsops/getmap/params/exceptions/7
Class: C
Scope: The server supports the application/vnd.ogc.se_blank exception format
Text: When an exception is raised and EXCEPTIONS=application/vnd.ogc.se_blank, then the Content-type of the return header is the same as the FORMAT requested. [WMS 1.1.1 Specification section wmsops.getmap.params.exceptions]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetMap
LAYERS = NonExistant
STYLES =
SRS = EPSG:4326
BBOX = -1, -1, 1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
EXCEPTIONS = application/vnd.ogc.se_blank
Results: Content-type header = "[[VAR_IMAGE_FORMAT]]"

7.3 GetFeatureInfo

7.3.3 Request Parameters

7.3.3.5 QUERY_LAYERS
ID: wms/wmsops/getfeatureinfo/params/query_layers/1
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When a GetFeatureInfo request contains a single layer, then the response is valid. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.query_layers]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_LAKES]]
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
X = 60
Y = 60
Results: Content-type header = [[VAR_GET_FEATURE_INFO_FORMAT]]

ID: wms/wmsops/getfeatureinfo/params/query_layers/2
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When a GetFeatureInfo request contains two layers, then the response is valid. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.query_layers]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_NAMED_PLACES]], [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_NAMED_PLACES]], [[VAR_LAKES]]
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
X = 60
Y = 60
Results: Content-type header = [[VAR_GET_FEATURE_INFO_FORMAT]]

ID: wms/wmsops/getfeatureinfo/params/query_layers/3
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When a GetFeatureInfo request contains three layers, then the response is valid. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.query_layers]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_NAMED_PLACES]], [[VAR_LAKES]], [[VAR_FORESTS]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_NAMED_PLACES]], [[VAR_LAKES]], [[VAR_FORESTS]]
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
X = 60
Y = 60
Results: Content-type header = [[VAR_GET_FEATURE_INFO_FORMAT]]

ID: wms/wmsops/getfeatureinfo/params/query_layers/4
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When a GetFeatureInfo request contains fewer layers in the QUERY_LAYERS parameter than it does in the LAYERS parameter, then the response is valid. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.query_layers]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_NAMED_PLACES]], [[VAR_LAKES]], [[VAR_STREAMS]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_LAKES]]
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
X = 60
Y = 60
Results: Content-type header = [[VAR_GET_FEATURE_INFO_FORMAT]]

ID: wms/wmsops/getfeatureinfo/params/query_layers/5
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When a layer requested is not contained in the Capabilities XML of the WMS, then the server issues a Service Exception. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.query_layers]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = UndefinedLayer
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
X = 60
Y = 60
Results: Valid XML where /ServiceExceptionReport/ServiceException exists

ID: wms/wmsops/getfeatureinfo/params/query_layers/6
Class: C
Scopes:
  • The server supports GetFeatureInfo requests
  • The server contains a standard layer that is not queryable
Text: When GetFeatureInfo is requested on a Layer that is not queryable, then the server issues a Service Exception (code="LayerNotQueryable"). [WMS 1.1.1 Specification section wmsops.getmap.params.srs], [WMS 1.1.1 Specification section wmsops.getcapabilities.response.layer_attributes.queryable]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_UNQUERYABLE_LAYER]]
STYLES =
SRS = EPSG:4326
BBOX = -1, -1, 1, 1
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_UNQUERYABLE_LAYER]]
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
X = 50
Y = 50
Results: Valid XML where /ServiceExceptionReport/ServiceException[code='LayerNotQueryable'] exists
7.2.3.6 INFO_FORMAT
ID: wms/wmsops/getfeatureinfo/params/info_format/1
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When the INFO_FORMAT parameter is missing, then the Content-type header returned is one of the formats advertised. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.info_format]
Note:
Request#1:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_LAKES]]
X = 60
Y = 60
Request#2:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: The response from request #2 is XML where one of the /WMT_MS_Capabilities//Capability/Request/GetFeatureInfo/Format values = the content-type header for request #1

ID: wms/wmsops/getfeatureinfo/params/info_format/2
Class: C
Scopes:
  • The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
  • The server supports the application/vnd.ogc.gml GetFeatureInfo format
  • Tests for GetFeatureInfo format application/vnd.ogc.gml were selected.
Text: When the INFO_FORMAT parameter is application/vnd.ogc.gml, then the Content-type header returned is the same. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.info_format]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_LAKES]]
INFO_FORMAT = application/vnd.ogc.gml
X = 60
Y = 60
Results: Content-type header = "application/vnd.ogc.gml"

ID: wms/wmsops/getfeatureinfo/params/info_format/3
Class: C
Scopes:
  • The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
  • The server supports the application/vnd.ogc.gml GetFeatureInfo format
  • Tests for GetFeatureInfo format application/vnd.ogc.gml were selected.
Text: When the INFO_FORMAT parameter is application/vnd.ogc.gml, then the response validates with the Galdos GML instance document validator. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.info_format]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_LAKES]]
INFO_FORMAT = application/vnd.ogc.gml
X = 60
Y = 60
Results: Valid GML

ID: wms/wmsops/getfeatureinfo/params/info_format/4
Class: D
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: For each advertised GetFeatureInfo format, when a GetFeatureInfo request is made with the INFO_FORMAT parameter set to the format, then the Content-type header returned is the same. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.info_format]
Note:
Not testable without dynamic testing capability
7.2.3.7 FEATURE_COUNT
ID: wms/wmsops/getfeatureinfo/params/feature_count/1
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When the FEATURE_COUNT parameter is not specified, then less data is returned than when FEATURE_COUNT is 2. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.feature_count]
Note:
Request#1:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_BASIC_POLYGONS]]
STYLES =
SRS = EPSG:4326
BBOX = -2, 2, 2, 6
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_BASIC_POLYGONS]]
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
X = 50
Y = 50
Request#2:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_BASIC_POLYGONS]]
STYLES =
SRS = EPSG:4326
BBOX = -2, 2, 2, 6
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_BASIC_POLYGONS]]
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
FEATURE_COUNT = 2
X = 50
Y = 50
Results: Request 2 returns more bytes than request 1

ID: wms/wmsops/getfeatureinfo/params/feature_count/2
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When the FEATURE_COUNT parameter is 1, then less data is returned than when FEATURE_COUNT is 2. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.feature_count]
Note:
Request#1:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_BASIC_POLYGONS]]
STYLES =
SRS = EPSG:4326
BBOX = -2, 2, 2, 6
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_BASIC_POLYGONS]]
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
FEATURE_COUNT = 1
X = 50
Y = 50
Request#2:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_BASIC_POLYGONS]]
STYLES =
SRS = EPSG:4326
BBOX = -2, 2, 2, 6
WIDTH = 100
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = [[VAR_BASIC_POLYGONS]]
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
FEATURE_COUNT = 2
X = 50
Y = 50
Results: Request 2 returns more bytes than request 1
7.2.3.9 EXCEPTIONS
ID: wms/wmsops/getfeatureinfo/params/exceptions/1
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When an exception is raised and the EXCEPTIONS parameter is absent from the request, then the Content-type header of the response is application/vnd.ogc.se_xml. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.exceptions]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = UndefinedLayer
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
X = 100
Y = 50
Results: Content-type header = "application/vnd.ogc.se_xml"

ID: wms/wmsops/getfeatureinfo/params/exceptions/2
Class: C
Scope: The server supports GetFeatureInfo requests and the CITE standard dataset layers containing polygons are queryable
Text: When an exception is raised and EXCEPTIONS=application/vnd.ogc.se_xml, then the Content-type header of the response is application/vnd.ogc.se_xml. [WMS 1.1.1 Specification section wmsops.getfeatureinfo.params.exceptions]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
REQUEST = GetFeatureInfo
LAYERS = [[VAR_LAKES]]
STYLES =
SRS = EPSG:4326
BBOX = 0, -0.0020, 0.0040, 0
WIDTH = 200
HEIGHT = 100
FORMAT = [[VAR_IMAGE_FORMAT]]
QUERY_LAYERS = UndefinedLayer
INFO_FORMAT = [[VAR_GET_FEATURE_INFO_FORMAT]]
X = 100
Y = 50
EXCEPTIONS = application/vnd.ogc.se_xml
Results: Content-type header = "application/vnd.ogc.se_xml"

Annex C Multi-Dimensional Data

C.2 Declaring Dimensions

ID: wms/dims/declaring/1
Class: C
Scope: The recommendation support tests were selected
Text: No dimension name values in the capabilities document contain whitespace. [WMS 1.1.1 Specification section dims.declaring]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where no //Layer/Dimension/@name contains whitespace

ID: wms/dims/declaring/2
Class: B
Text: Dimension units and unitSymbol values in the capabilities document are from Unified Code for Units of Measure (UCUM). [WMS 1.1.1 Specification section dims.declaring]
Note:
Will not be tested since the UCUM may be modified independently of the WMS specification.

ID: wms/dims/declaring/3
Class: A
Text: All declarations for the time dimension use 'ISO8601' for units. [WMS 1.1.1 Specification section dims.declaring]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where count(//Layer/Dimension[@name = 'time' and @units != 'ISO8601']) = 0

ID: wms/dims/declaring/4
Class: A
Text: All declarations for the elevation dimension use an EPSG vertical datum for units. [WMS 1.1.1 Specification section dims.declaring]
Note:
Request:
VERSION = [[VAR_WMS_VERSION]]
SERVICE = WMS
REQUEST = GetCapabilities
Results: XML where count(//Layer/Dimension[@name = 'elevation' and not(starts-with(@units,'EPSG:'))]) = 0