This repository was archived by the owner on Sep 22, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 12
Client Test Cases
squirrelfm edited this page Feb 24, 2014
·
13 revisions
Note: Please update status field with "in progress" when you grab the test and mark "complete" after test check in.
###Framing Tests
| 1. | DATA Frame | Status (in progress/complete) |
|---|---|---|
| 1.1 | Client receives DATA frame with payload size > 0 | MSOT (in progress) |
| 1.2 | Client receives DATA frame with no payload | |
| 1.3 | Client receives DATA frame with max payload | |
| 1.4 | Client receives DATA frame with length < payload size | |
| 1.5 | Client receives DATA frame with length > payload size | |
| 1.6 | Client receives DATA frame with zero stream id, expect PROTOCOL_ERROR | Done |
| 1.7 | Client receives DATA frame size > max size, expect FRAME_SIZE_ERROR error | Done |
| 2. | HEADERS Frame | |
| 2.1 | Client sends HEADERS frame to server, server validate frame format (i.e. Frame Type = 0x1, non-zero stream id) | Done |
| 2.2 | Client sends HEADERS frame to server, server validate header fields (i.e. compressed correctly, lowercase names, no empty/duplicate names, no empty values, includes ":method", ":scheme", ":authority", ":path" mandatory header fields with valid value, not include Connection, Keep-Alive, Proxy-Connection, TE, Transfer-Encoding, and Upgrade header fields) | Done |
| 2.2 | Client receives HEADERS frame without header block | |
| 2.3 | Client receives HEADERS frame without priority | |
| 2.4 | Client receives HEADERS frame without priority and header block | Done |
| 2.5 | Client receives HEADERS frame with length < payload size | |
| 2.6 | Client not accepts malformed HEADERS frame with uppercase header and end the stream | Done |
| 2.7 | Client not accepts malformed HEADERS frame with empty header name and end the stream | |
| 2.8 | Client not accepts malformed HEADERS frame with empty header value and end the stream | Done |
| 2.9 | Client not accepts malformed HEADERS frame with duplicate header names and end the stream | |
| 2.10 | Client not accepts malformed HEADERS frame with no ":status" header and end the stream | Done |
| 2.11 | Client not accepts malformed HEADERS frame with bad zlib data and end the stream | |
| 2.12 | Client accepts HEADERS frame with "set-cookie" header with either a comma-separated list or single concatenated value | Done |
| 3. | PRIORITY Frame | |
| 3.1 | Client receives PRIORITY frame with zero priority | |
| 3.2 | Client receives PRIORITY frame with lowest priority | |
| 3.3 | Client receives PRIORITY frame with zero stream id, expect PROTOCOL_ERROR | Done |
| 4. | RST_STREAM Frame | |
| 4.1 | Client receives RST_STREAM frame | |
| 4.2 | Client receives RST_STREAM frame with zero stream id, expect PROTOCOL_ERROR | Done |
| 4.3 | Client receives RST_STREAM frame with stream id in the idle state, expect PROTOCOL_ERROR | |
| 5. | SETTINGS Frame | |
| 5.1 | Client receives SETTINGS frame to server | |
| 5.2 | Client receives SETTINGS frame with ACK | |
| 5.3 | Client receives SETTINGS frame with zero SETTINGS_MAX_CONCURRENT_STREAMS value | |
| 5.4 | Client receives SETTINGS frame with no payload | |
| 5.5 | Client receives SETTINGS frame with non-zero stream id, expect PROTOCOL_ERROR | Done |
| 5.6 | Client ignores SETTINGS frame received with invalid setting id | Done |
| 5.7 | Client receives SETTINGS frame with ACK and payload, expect FRAME_SIZE_ERROR | |
| 5.8 | Client receives SETTINGS frame with missing value | |
| 6. | PUSH_PROMISE Frame | |
| 6.1 | Client receives PUSH_PROMISE frame with zero stream id, expect PROTOCOL_ERROR | Done |
| 6.1 | Client receives PUSH_PROMISE frame with invalid Promised-Stream-ID | Done |
| 6.2 | Client ignores PUSH_PROMISE frame with invalid flag | |
| 7. | PING Frame | |
| 7.1 | Client receives PING frame to server, server validate frame format | |
| 7.2 | Client receives PING frame to server with ACK | |
| 7.3 | Client receives PING frame with length > 8, expect FRAME_SIZE_ERROR | |
| 7.4 | Client receives PING frame with length < 8, expect FRAME_SIZE_ERROR | |
| 7.5 | Client receives PING frame with non-zero stream id, expect PROTOCOL_ERROR | Done |
| 8. | GOAWAY Frame | |
| 8.1 | Client receives GOAWAY frame | |
| 8.2 | Client receives GOAWAY frame with no debug data | |
| 8.3 | Client receives GOAWAY frame with zero last-stream-id | |
| 8.4 | Client receives GOAWAY frame with incorrect Last-Stream-Id | |
| 8.5 | Client receives GOAWAY frame with unknown error code | Done |
| 8.6 | Client receives GOAWAY frame with non-zero Stream Id | Done |
| 8.7 | Client receives GOAWAY frame with missing Last-Stream-Id | Done |
| 8.8 | Client receives GOAWAY frame with missing error code | Done |
| 9. | WINDOW_UPDATE Frame | |
| 9.1 | Client receives WINDOW_UPDATE frame | |
| 9.2 | Client receives WINDOW_UPDATE frame with minimum size | |
| 9.3 | Client receives WINDOW_UPDATE frame with max size | |
| 9.4 | Client receives WINDOW_UPDATE frame with zero stream id | |
| 9.5 | Client receives WINDOW_UPDATE frame with non-zero stream id | |
| 9.6 | Client receives WINDOW_UPDATE frame with invalid size | |
| 9.7 | Client receives WINDOW_UPDATE frame with no payload | |
| 9.8 | Client receives WINDOW_UPDATE frame with payload > 4 bytes | |
| 10. | CONTINUATION Frame | |
| 10.1 | Client receives CONTINUATION frame | |
| 10.2 | Client receives CONTINUATION frame with END_HEADERS flag | |
| 10.3 | Client receives CONTINUATION frame with zero stream id, expect PROTOCOL_ERROR | |
| 10.4 | Client ignores CONTINUATION frame received with invalid flag | |
| 10.5 | Client receives CONTINUATION frame with no payload | |
| 11. | Malformed Frame | |
| 11.1 | Client ignores frame received with unknown frame type | |
| 11.2 | Client ignores frame received with non-zero reserve bit | Done |
| 11.3 | Client ignores frame received with without stream id |
###Sample Stream Tests
| 1. | Test cases | Status |
|---|---|---|
| 1.1 | Receive stream with push_promise after data received | |
| 1.2 | Verify client sends stream with even stream id | |
| 1.3 | Decreasing stream id | |
| 1.4 | Duplicate stream id is used | |
| 1.5 | DATA after RST_STREAM | |
| 1.6 | FLOW_CONTROL_ERROR after bad WINDOW_UPDATE size |