Skip to content

Commit

Permalink
Adding tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dravenk committed Aug 21, 2024
1 parent 95332e9 commit 999a532
Showing 1 changed file with 28 additions and 7 deletions.
35 changes: 28 additions & 7 deletions src/values_test.zig
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
const std = @import("std");
const url = @import("url.zig");
const URL = @import("url.zig");

test "sample1" {
var values: std.StringHashMap(std.ArrayList([]const u8)) = std.StringHashMap(std.ArrayList([]const u8)).init(std.heap.page_allocator);
var values: std.StringHashMap(std.ArrayList([]const u8)) = std.StringHashMap(std.ArrayList([]const u8)).init(std.testing.allocator);
defer values.deinit();

var name = std.ArrayList([]const u8).init(std.heap.page_allocator);
var name = std.ArrayList([]const u8).init(std.testing.allocator);
defer name.deinit();
try name.append("Ava");

var friend = std.ArrayList([]const u8).init(std.heap.page_allocator);
var friend = std.ArrayList([]const u8).init(std.testing.allocator);
defer friend.deinit();
try friend.append("Jess");
try friend.append("Sarah");
try friend.append("Zoe");
Expand All @@ -29,11 +31,30 @@ test "sample1" {

test "sample2" {
const text = "name=Ava&friend=Jess&friend=Sarah&friend=Zoe";
var values: std.StringHashMap(std.ArrayList([]const u8)) = std.StringHashMap(std.ArrayList([]const u8)).init(std.heap.page_allocator);
var values: std.StringHashMap(std.ArrayList([]const u8)) = std.StringHashMap(std.ArrayList([]const u8)).init(std.testing.allocator);
defer values.deinit();
try url.parseQuery(&values, text);
try URL.parseQuery(&values, text);
try std.testing.expectEqualStrings("Ava", values.get("name").?.items[0]);
try std.testing.expectEqualStrings("Jess", values.get("friend").?.items[0]);
try std.testing.expectEqualStrings("Sarah", values.get("friend").?.items[1]);
try std.testing.expectEqualStrings("Zoe", values.get("friend").?.items[2]);
}

test "sample3" {
const text = "https://example.org/?a=1&a=2&b=&=3&&&&";
var url = URL.init(.{});
const result = try url.parseUri(text);

const values = result.values.?;

const a1 = values.get("a").?.items[0];
const a2 = values.get("a").?.items[1];
try std.testing.expectEqual(2, values.get("a").?.items.len);
try std.testing.expectEqualStrings("1", a1);
try std.testing.expectEqualStrings("2", a2);

try std.testing.expectEqualStrings("", values.get("b").?.items[0]);
const v3 = values.get("").?;
try std.testing.expectEqual(1, v3.items.len);
try std.testing.expectEqualStrings("3", v3.items[0]);
}

0 comments on commit 999a532

Please sign in to comment.