From c3c019f19fd9252cf5f96c4ab855e7a9c3ecd23c Mon Sep 17 00:00:00 2001 From: Luna Date: Tue, 13 Apr 2021 21:32:36 -0300 Subject: [PATCH] add test for single body --- src/main.zig | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main.zig b/src/main.zig index e54a0c6..c2ef559 100644 --- a/src/main.zig +++ b/src/main.zig @@ -351,7 +351,7 @@ test "multipart" { "Hello!\n"; const PART2_REAL_BODY = - "{\"status\": \"OK\"}\n"; + "{\"status\": \"OK\"}"; const body = "--1234\r\n" ++ @@ -407,3 +407,42 @@ test "multipart" { try multipart.next(&hzzp_buffer, std.testing.allocator), ); } + +test "multipart single file" { + const PART1_REAL_BODY = + "Hello!"; + + const body = + "--1234\r\n" ++ + "Content-Type: text/plain\r\n" ++ + "Content-Disposition: form-data; name=file1; filename=ab.txt\r\n" ++ + "\r\n" ++ + PART1_REAL_BODY ++ + "--1234--\r\n"; + + var buf: [512]u8 = undefined; + var multipart = try Multipart.init( + body, + "multipart/form-data; boundary=1234", + &buf, + ); + + var hzzp_buffer: [1024]u8 = undefined; + var part1 = (try multipart.next(&hzzp_buffer, std.testing.allocator)).?; + defer part1.deinit(); + + std.debug.warn( + "\npart={}\n", + .{part1}, + ); + + std.testing.expectEqualSlices(u8, "text/plain", part1.content_type); + std.testing.expectEqualSlices(u8, "file1", part1.disposition.name); + std.testing.expectEqualSlices(u8, "ab.txt", part1.disposition.filename); + std.testing.expectEqualSlices(u8, PART1_REAL_BODY, part1.body); + + std.testing.expectEqual( + @as(?Part, null), + try multipart.next(&hzzp_buffer, std.testing.allocator), + ); +}