This repository has been archived by the owner on Sep 22, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
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 |