mirror of
https://github.com/jetzig-framework/jetzig.git
synced 2025-05-14 22:16:08 +00:00
Merge pull request #26 from jetzig-framework/fix-Headers.getFirstValue
Fix Headers.getFirstValue
This commit is contained in:
commit
0bd26cd759
@ -20,10 +20,10 @@ pub fn deinit(self: *Self) void {
|
||||
|
||||
// Gets the first value for a given header identified by `name`. Case-insensitive string comparison.
|
||||
pub fn getFirstValue(self: *Self, name: []const u8) ?[]const u8 {
|
||||
for (self.headers.items) |header| {
|
||||
headers: for (self.headers.items) |header| {
|
||||
if (name.len != header.name.len) continue;
|
||||
for (name, header.name) |expected, actual| {
|
||||
if (std.ascii.toLower(expected) != std.ascii.toLower(actual)) continue;
|
||||
if (std.ascii.toLower(expected) != std.ascii.toLower(actual)) continue :headers;
|
||||
}
|
||||
return header.value;
|
||||
}
|
||||
@ -82,6 +82,15 @@ test "append" {
|
||||
try std.testing.expectEqualStrings(headers.getFirstValue("foo").?, "bar");
|
||||
}
|
||||
|
||||
test "getFirstValue with multiple headers (bugfix regression test)" {
|
||||
const allocator = std.testing.allocator;
|
||||
var headers = Self.init(allocator);
|
||||
defer headers.deinit();
|
||||
try headers.append("foo", "bar");
|
||||
try headers.append("bar", "baz");
|
||||
try std.testing.expectEqualStrings(headers.getFirstValue("bar").?, "baz");
|
||||
}
|
||||
|
||||
test "case-insensitive matching" {
|
||||
const allocator = std.testing.allocator;
|
||||
var headers = Self.init(allocator);
|
||||
|
Loading…
x
Reference in New Issue
Block a user