11const std = @import ("std" );
2- const url = @import ("url.zig" );
2+ const URL = @import ("url.zig" );
3+
34test "sample1" {
4- var values : std .StringHashMap (std .ArrayList ([]const u8 )) = std .StringHashMap (std .ArrayList ([]const u8 )).init (std .heap . page_allocator );
5+ var values : std .StringHashMap (std .ArrayList ([]const u8 )) = std .StringHashMap (std .ArrayList ([]const u8 )).init (std .testing . allocator );
56 defer values .deinit ();
6-
7- var name = std . ArrayList ([] const u8 ). init ( std . heap . page_allocator );
7+ var name = std . ArrayList ([] const u8 ). init ( std . testing . allocator );
8+ defer name . deinit ( );
89 try name .append ("Ava" );
910
10- var friend = std .ArrayList ([]const u8 ).init (std .heap .page_allocator );
11+ var friend = std .ArrayList ([]const u8 ).init (std .testing .allocator );
12+ defer friend .deinit ();
1113 try friend .append ("Jess" );
1214 try friend .append ("Sarah" );
1315 try friend .append ("Zoe" );
@@ -29,11 +31,30 @@ test "sample1" {
2931
3032test "sample2" {
3133 const text = "name=Ava&friend=Jess&friend=Sarah&friend=Zoe" ;
32- var values : std .StringHashMap (std .ArrayList ([]const u8 )) = std .StringHashMap (std .ArrayList ([]const u8 )).init (std .heap . page_allocator );
34+ var values : std .StringHashMap (std .ArrayList ([]const u8 )) = std .StringHashMap (std .ArrayList ([]const u8 )).init (std .testing . allocator );
3335 defer values .deinit ();
34- try url .parseQuery (& values , text );
36+ try URL .parseQuery (& values , text );
3537 try std .testing .expectEqualStrings ("Ava" , values .get ("name" ).? .items [0 ]);
3638 try std .testing .expectEqualStrings ("Jess" , values .get ("friend" ).? .items [0 ]);
3739 try std .testing .expectEqualStrings ("Sarah" , values .get ("friend" ).? .items [1 ]);
3840 try std .testing .expectEqualStrings ("Zoe" , values .get ("friend" ).? .items [2 ]);
3941}
42+
43+ test "sample3" {
44+ const text = "https://example.org/?a=1&a=2&b=&=3&&&&" ;
45+ var url = URL .init (.{});
46+ const result = try url .parseUri (text );
47+
48+ const values = result .values .? ;
49+
50+ const a1 = values .get ("a" ).? .items [0 ];
51+ const a2 = values .get ("a" ).? .items [1 ];
52+ try std .testing .expectEqual (2 , values .get ("a" ).? .items .len );
53+ try std .testing .expectEqualStrings ("1" , a1 );
54+ try std .testing .expectEqualStrings ("2" , a2 );
55+
56+ try std .testing .expectEqualStrings ("" , values .get ("b" ).? .items [0 ]);
57+ const v3 = values .get ("" ).? ;
58+ try std .testing .expectEqual (1 , v3 .items .len );
59+ try std .testing .expectEqualStrings ("3" , v3 .items [0 ]);
60+ }
0 commit comments