| 88 | } |
| 89 | |
| 90 | void parseRequestThenVerify(char *headers[], char *data[]) { |
| 91 | parseRequest(headers, data); |
| 92 | |
| 93 | ASSERT_TRUE(body != NULL); |
| 94 | ASSERT_TRUE(body->parts != NULL); |
| 95 | ASSERT_TRUE(htp_list_size(body->parts) == 3); |
| 96 | |
| 97 | ASSERT_FALSE(body->flags & HTP_MULTIPART_INCOMPLETE); |
| 98 | |
| 99 | // Field 1 |
| 100 | htp_multipart_part_t *field1 = (htp_multipart_part_t *) htp_list_get(body->parts, 0); |
| 101 | ASSERT_TRUE(field1 != NULL); |
| 102 | ASSERT_EQ(MULTIPART_PART_TEXT, field1->type); |
| 103 | ASSERT_TRUE(field1->name != NULL); |
| 104 | ASSERT_TRUE(bstr_cmp_c(field1->name, "field1") == 0); |
| 105 | ASSERT_TRUE(field1->value != NULL); |
| 106 | ASSERT_TRUE(bstr_cmp_c(field1->value, "ABCDEF") == 0); |
| 107 | |
| 108 | // File 1 |
| 109 | htp_multipart_part_t *file1 = (htp_multipart_part_t *) htp_list_get(body->parts, 1); |
| 110 | ASSERT_TRUE(file1 != NULL); |
| 111 | ASSERT_EQ(MULTIPART_PART_FILE, file1->type); |
| 112 | ASSERT_TRUE(file1->name != NULL); |
| 113 | ASSERT_TRUE(bstr_cmp_c(file1->name, "file1") == 0); |
| 114 | ASSERT_TRUE(file1->file->filename != NULL); |
| 115 | ASSERT_TRUE(bstr_cmp_c(file1->file->filename, "file.bin") == 0); |
| 116 | |
| 117 | // Field 2 |
| 118 | htp_multipart_part_t *field2 = (htp_multipart_part_t *) htp_list_get(body->parts, 2); |
| 119 | ASSERT_TRUE(field2 != NULL); |
| 120 | ASSERT_EQ(MULTIPART_PART_TEXT, field2->type); |
| 121 | ASSERT_TRUE(field2->name != NULL); |
| 122 | ASSERT_TRUE(bstr_cmp_c(field2->name, "field2") == 0); |
| 123 | ASSERT_TRUE(field2->value != NULL); |
| 124 | ASSERT_TRUE(bstr_cmp_c(field2->value, "GHIJKL") == 0); |
| 125 | } |
| 126 | |
| 127 | void parseParts(char *parts[]) { |
| 128 | mpartp = htp_mpartp_create(cfg, bstr_dup_c("0123456789"), 0 /* flags */); |
nothing calls this directly
no test coverage detected