|
1 T_HTTPONLINE |
|
2 |
|
3 This is a test suite of all the online unit tests for HTTP. It consists of the following tests |
|
4 |
|
5 1 Single POST transaction, with request body submitted in chunks |
|
6 2 Multiple simultaneous transactions |
|
7 3 Persistent connections |
|
8 4 Proxies |
|
9 5 TCP Transport Handler |
|
10 6 TCP Transport Handler Server Time-out |
|
11 7 Response Chunk Size variation |
|
12 8 Cancellation of single transactions |
|
13 9 Cancellation of multiple transactions |
|
14 |
|
15 |
|
16 |
|
17 1 Single POST transaction, with request body submitted in chunks |
|
18 ---------------------------------------------------------------- |
|
19 Requires: http://<test server>/perl/dumpform.pl |
|
20 |
|
21 Tests client API, protocol handler and transport handler mechanisms for transmitting a request |
|
22 whose body is submitted by the client in three data chunks, each separated by a time interval |
|
23 |
|
24 1.1 Runs the test using a 1 second delay between each chunk |
|
25 |
|
26 |
|
27 |
|
28 2 Multiple simultaneous transactions |
|
29 ------------------------------------ |
|
30 Requires: http://<test server>/http_tests/prothnd/1.txt through 8.txt |
|
31 |
|
32 Launches a number of transactions in parallel, each to a different URL. The response body data |
|
33 is checked to ensure that each block of data is associated with the correct transaction. This is |
|
34 easily done by using test files where a repeated single character is present in each file - i.e. |
|
35 1.txt contains repeated '1' characters, etc. |
|
36 |
|
37 2.1 Test 1 transaction |
|
38 2.2 Test 2 concurrent transactions |
|
39 2.3 Test 3 concurrent transactions |
|
40 2.4 Test 4 concurrent transactions |
|
41 2.5 Test 5 concurrent transactions |
|
42 2.6 Test 6 concurrent transactions |
|
43 2.7 Test 7 concurrent transactions |
|
44 2.8 Test 8 concurrent transactions |
|
45 |
|
46 |
|
47 |
|
48 3 Persistent Connections |
|
49 ------------------------ |
|
50 Requires: http://<test server>/perl/dumpform.pl |
|
51 |
|
52 Launches a number of transactions sequentially. Each one is identical (ie. the same method and URL) |
|
53 but the last in a sequence includes the 'Connection: close' header. Since HTTP/1.1 is used for all |
|
54 transactions the sequence should re-use a single socket connection. This must be verified by |
|
55 checking the log-file C:\logs\http\httptcphnd.txt manually; the message 'Socket closed by local host' |
|
56 or 'Socket closed by remote host' should only be seen following the final transaction in the sequence |
|
57 |
|
58 3.1 Test 1 transaction |
|
59 3.2 Test 2 sequential transactions |
|
60 3.3 Test 3 sequential transactions |
|
61 3.4 Test 4 sequential transactions |
|
62 3.5 Test 5 sequential transactions |
|
63 |
|
64 |
|
65 |
|
66 4 Proxies |
|
67 --------- |
|
68 Requires: http://<test server>/perl/dumpform.pl and a proxy at 10.35.2.4:9003 |
|
69 |
|
70 Tests the protocol handler's ability to form correct requests based on the session's proxy settings, |
|
71 the presence/absence of a Host header and the type of URL. |
|
72 |
|
73 4.1 Absolute URL; compatible Host header; proxy on |
|
74 4.2 Absolute URL; incorrect Host header; proxy on |
|
75 4.3 Absolute URL; missing Host header; proxy on |
|
76 4.4 Relative URL; correct Host header; proxy on |
|
77 4.5 Relative URL; missing Host header; proxy on |
|
78 4.6 Absolute URL; compatible Host header; proxy off |
|
79 4.7 Absolute URL; incorrect Host header; proxy off |
|
80 4.8 Absolute URL; missing Host header; proxy off |
|
81 4.9 Relative URL; correct Host header; proxy off |
|
82 4.10 Relative URL; missing Host header; proxy off |
|
83 |
|
84 |
|
85 |
|
86 5 TCP Transport Handler |
|
87 ----------------------- |
|
88 Requires: http://<test server 1>/http_tests/tcphnd/testxy.html where x := 1->15 and y := a|b |
|
89 and http://<test server 2>/http_tests/tcphnd/testxy.html where x := 1->15 and y := a|b |
|
90 |
|
91 Tests the TCP Transport Handler's ability to correctly queue submissions and maintain the socket |
|
92 connection appropriately. This is done by issuing individual and paired requests in a variety of |
|
93 situations - HTTP/1.0 or HTTP/1.1 mode; persistent or non-persistent; queued or separate; same or |
|
94 different hosts. |
|
95 |
|
96 | HTTP Level | Persistent? | No. requests | use queuing? | same host? |
|
97 -------+------------+-------------+--------------+--------------+------------ |
|
98 5.1 | 1.0 | / | 1 | / | / |
|
99 5.2 | 1.0 | / | 2 | y | y |
|
100 5.3 | 1.0 | / | 2 | y | n |
|
101 5.4 | 1.0 | / | 2 | n | y |
|
102 5.5 | 1.0 | / | 2 | n | n |
|
103 5.6 | 1.1 | n | 1 | / | / |
|
104 5.7 | 1.1 | n | 2 | y | y |
|
105 5.8 | 1.1 | n | 2 | y | n |
|
106 5.9 | 1.1 | n | 2 | n | y |
|
107 5.10 | 1.1 | n | 2 | n | n |
|
108 5.11 | 1.1 | y | 1 | / | / |
|
109 5.12 | 1.1 | y | 2 | y | y |
|
110 5.13 | 1.1 | y | 2 | y | n |
|
111 5.14 | 1.1 | y | 2 | n | y |
|
112 5.15 | 1.1 | y | 2 | n | n |
|
113 |
|
114 |
|
115 |
|
116 6 TCP Transport Handler Server Time-out |
|
117 --------------------------------------- |
|
118 Requires: http://<test server>/http_tests/tcphnd/test12a.html |
|
119 and http://<test server>/http_tests/tcphnd/test12b.html |
|
120 |
|
121 Tests the TCP Transport Handler's ability to correctly detect the end of a persistent connection |
|
122 when the server times out and drops it. With Apache, this seems to happen at around 17s but this |
|
123 may vary; so the first two or three tests should use a persistent connection and the remainder will |
|
124 make a new connection for the second transaction. |
|
125 |
|
126 | HTTP Level | Persistent? | No. requests | use queuing? | same host? | time-out between trans |
|
127 -------+------------+-------------+--------------+--------------+------------+------------------------ |
|
128 6.1 | 1.1 | y | 2 | y | y | 5 |
|
129 6.2 | 1.1 | y | 2 | y | y | 10 |
|
130 6.3 | 1.1 | y | 2 | y | y | 15 |
|
131 6.4 | 1.1 | y | 2 | y | y | 20 |
|
132 6.5 | 1.1 | y | 2 | y | y | 25 |
|
133 |
|
134 |
|
135 |
|
136 |
|
137 7 Response Chunk Size variation |
|
138 ------------------------------- |
|
139 Requires: (EPOC) C:\req1.txt and C:\resp1.txt - which contain a dummy SyncML request and the |
|
140 matching response to send if the request is correctly validated . |
|
141 |
|
142 The test uses a dummy proxy server running on the EPOC device (as part of the test harness) to check |
|
143 that the client request is valid, and to return an appropriate response if it is. The proxy is |
|
144 configured by the test harness to return the response in data chunks of a preset size. This test |
|
145 exercises the protocol handler's independence of operation from the size of the data chunks being |
|
146 sent to it. |
|
147 |
|
148 6.1 Chunk size = 8 bytes |
|
149 6.2 Chunk size = 16 bytes |
|
150 6.3 Chunk size = 24 bytes |
|
151 6.4 Chunk size = 32 bytes |
|
152 ... |
|
153 6.30 Chunk size = 240 bytes |
|
154 6.31 Chunk size = 248 bytes |
|
155 6.32 Chunk size = 256 bytes |
|
156 |
|
157 |
|
158 |
|
159 8 Cancellation of single transactions |
|
160 ------------------------------------- |
|
161 Requires: http://<test server>/http_tests/prothnd/rfc2616.txt |
|
162 |
|
163 The test issues a transaction then cancels it after a preset time interval. This time interval is |
|
164 initially set small then gradually increased, to cover a variety of points in the transaction |
|
165 processing. |
|
166 |
|
167 7.1 Interval length = 50 ms |
|
168 7.2 Interval length = 100 ms |
|
169 7.3 Interval length = 150 ms |
|
170 7.4 Interval length = 200 ms |
|
171 ... |
|
172 7.48 Interval length = 2400 ms |
|
173 7.49 Interval length = 2450 ms |
|
174 7.50 Interval length = 2500 ms |
|
175 |
|
176 |
|
177 |
|
178 9 Cancellation of multiple transactions |
|
179 --------------------------------------- |
|
180 Requires: http://<test server>/http_tests/prothnd/1.txt through 9.txt |
|
181 |
|
182 Launches a number of transactions in parallel, each to a different URL. One of the transactions |
|
183 will be cancelled after a particular time interval. The data received from the remaining |
|
184 transactions is checked to ensure that no data is obtained from the cancelled transaction. |
|
185 |
|
186 2.1 Test with: 1 transaction launched; 1st transaction gets cancelled after 50 ms |
|
187 2.2 Test with: 1 transaction launched; 1st transaction gets cancelled after 100 ms |
|
188 2.3 Test with: 2 transactions launched; 1st transaction gets cancelled after 50 ms |
|
189 2.4 Test with: 2 transactions launched; 1st transaction gets cancelled after 100 ms |
|
190 2.5 Test with: 2 transactions launched; 2nd transaction gets cancelled after 50 ms |
|
191 2.6 Test with: 2 transactions launched; 2nd transaction gets cancelled after 100 ms |
|
192 2.7 Test with: 3 transactions launched; 1st transaction gets cancelled after 50 ms |
|
193 2.8 Test with: 3 transactions launched; 1st transaction gets cancelled after 100 ms |
|
194 2.9 Test with: 3 transactions launched; 2nd transaction gets cancelled after 50 ms |
|
195 2.10 Test with: 3 transactions launched; 2nd transaction gets cancelled after 100 ms |
|
196 2.11 Test with: 3 transactions launched; 3rd transaction gets cancelled after 50 ms |
|
197 2.12 Test with: 3 transactions launched; 3rd transaction gets cancelled after 100 ms |
|
198 ... |
|
199 2.58 Test with: 9 transactions launched; 7th transaction gets cancelled after 100ms |
|
200 2.59 Test with: 9 transactions launched; 8th transaction gets cancelled after 50ms |
|
201 2.60 Test with: 9 transactions launched; 8th transaction gets cancelled after 100ms |