MCPcopy Create free account
hub / github.com/OISF/libhtp / TEST_F

Function TEST_F

test/test_multipart.cpp:208–304  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

206};
207
208TEST_F(Multipart, Test1) {
209 mpartp = htp_mpartp_create(cfg, bstr_dup_c("---------------------------41184676334"), 0 /* flags */);
210
211 char *parts[999];
212
213 size_t i = 0;
214 parts[i++] = (char *) "-----------------------------41184676334\r\n";
215 parts[i++] = (char *) "Content-Disposition: form-data;\n name=\"field1\"\r\n";
216 parts[i++] = (char *) "\r\n";
217 parts[i++] = (char *) "0123456789\r\n-";
218 parts[i++] = (char *) "-------------";
219 parts[i++] = (char *) "---------------41184676334\r\n";
220 parts[i++] = (char *) "Content-Disposition: form-data;\n name=\"field2\"\r\n";
221 parts[i++] = (char *) "\r\n";
222 parts[i++] = (char *) "0123456789\r\n-";
223 parts[i++] = (char *) "-------------";
224 parts[i++] = (char *) "--------------X\r\n";
225 parts[i++] = (char *) "-----------------------------41184676334\r\n";
226 parts[i++] = (char *) "Content-Disposition: form-data;\n";
227 parts[i++] = (char *) " ";
228 parts[i++] = (char *) "name=\"field3\"\r\n";
229 parts[i++] = (char *) "\r\n";
230 parts[i++] = (char *) "9876543210\r\n";
231 parts[i++] = (char *) "-----------------------------41184676334\r\n";
232 parts[i++] = (char *) "Content-Disposition: form-data; name=\"file1\"; filename=\"New Text Document.txt\"\r\nContent-Type: text/plain\r\n\r\n";
233 parts[i++] = (char *) "1FFFFFFFFFFFFFFFFFFFFFFFFFFF\r\n";
234 parts[i++] = (char *) "2FFFFFFFFFFFFFFFFFFFFFFFFFFE\r";
235 parts[i++] = (char *) "3FFFFFFFFFFFFFFFFFFFFFFFFFFF\r\n4FFFFFFFFFFFFFFFFFFFFFFFFF123456789";
236 parts[i++] = (char *) "\r\n";
237 parts[i++] = (char *) "-----------------------------41184676334\r\n";
238 parts[i++] = (char *) "Content-Disposition: form-data; name=\"file2\"; filename=\"New Text Document.txt\"\r\n";
239 parts[i++] = (char *) "Content-Type: text/plain\r\n";
240 parts[i++] = (char *) "\r\n";
241 parts[i++] = (char *) "FFFFFFFFFFFFFFFFFFFFFFFFFFFZ";
242 parts[i++] = (char *) "\r\n-----------------------------41184676334--";
243 parts[i++] = NULL;
244
245 i = 0;
246 for (;;) {
247 if (parts[i] == NULL) break;
248 htp_mpartp_parse(mpartp, parts[i], strlen(parts[i]));
249 i++;
250 }
251
252 htp_mpartp_finalize(mpartp);
253
254 // Examine the result
255 htp_multipart_t *body = htp_mpartp_get_multipart(mpartp);
256 ASSERT_TRUE(body != NULL);
257 ASSERT_TRUE(body->parts != NULL);
258 ASSERT_EQ(5, htp_list_size(body->parts));
259
260 for (size_t i = 0, n = htp_list_size(body->parts); i < n; i++) {
261 htp_multipart_part_t *part = (htp_multipart_part_t *) htp_list_get(body->parts, i);
262
263 switch (i) {
264 case 0:
265 ASSERT_TRUE(part->name != NULL);

Callers

nothing calls this directly

Calls 14

htp_mpartp_createFunction · 0.85
bstr_dup_cFunction · 0.85
htp_mpartp_parseFunction · 0.85
htp_mpartp_finalizeFunction · 0.85
htp_mpartp_get_multipartFunction · 0.85
bstr_cmp_cFunction · 0.85
htp_mpartp_destroyFunction · 0.85
htp_mpartp_find_boundaryFunction · 0.85
bstr_freeFunction · 0.85
htp_table_createFunction · 0.85
htp_table_addFunction · 0.85
htp_mpart_part_parse_c_dFunction · 0.85

Tested by

no test coverage detected