As a test designer, I want to verify that the Status-Line produced by the SUT conforms to the specifications. In particular, I want to constrain the elements of the Status-Line of an HTTP response. For each of these elements, I shall be able to define a set of rules.
As a reminder, HTTP Status-Line consists in HTTP-Version, Status-Code, and a Reason-Phrase. (From RFC2616: Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF)
For the HTTP-Version, I shall be able to select the authorized value from a list of versions of HTTP supported by the HTTP Validator;
For the Status-Code,
- I shall be able to list the authorized values by picking them from a value set, by entering them manually, or by writing a regular expression;
- I shall be able to list the forbidden values by picking them from a value set, by entering them manually, or by writing a regular expression;
- I shall be able to allow or not the SUT to use other codes that are not mentioned (opened/closed list).
If the specifications constraints the Reason-phrase, I shall be able to enter a list of accepted values, or a regular expression.
Status-Code and reason-phrase are tighly linked, I should be able to say which Reason-phrase values are authorized for each (or a set of) authorized Status-Code values.
When the user is logged in as a test designer (current test_editor role), when he creates a new rule for an HTTP response message, he is invited to select which element of the HTTP Status-Line he wants to contrain. It includes:
- HTTP version
- Status code
- Reason phrase