-
Notifications
You must be signed in to change notification settings - Fork 48
/
query.t
81 lines (56 loc) · 1.37 KB
/
query.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
use strict;
use warnings;
use Test::More tests => 23;
use URI ();
my $u = URI->new("", "http");
my @q;
$u->query_form(a => 3, b => 4);
is $u, "?a=3&b=4";
$u->query_form(a => undef);
is $u, "?a=";
$u->query_form("a[=&+#] " => " [=&+#]");
is $u, "?a%5B%3D%26%2B%23%5D+=+%5B%3D%26%2B%23%5D";
@q = $u->query_form;
is join(":", @q), "a[=&+#] : [=&+#]";
@q = $u->query_keywords;
ok !@q;
$u->query_keywords("a", "b");
is $u, "?a+b";
$u->query_keywords(" ", "+", "=", "[", "]");
is $u, "?%20+%2B+%3D+%5B+%5D";
@q = $u->query_keywords;
is join(":", @q), " :+:=:[:]";
@q = $u->query_form;
ok !@q;
$u->query(" +?=#");
is $u, "?%20+?=%23";
$u->query_keywords([qw(a b)]);
is $u, "?a+b";
$u->query_keywords([]);
is $u, "";
$u->query_form({ a => 1, b => 2 });
ok $u eq "?a=1&b=2" || $u eq "?b=2&a=1";
$u->query_form([ a => 1, b => 2 ]);
is $u, "?a=1&b=2";
$u->query_form({});
is $u, "";
$u->query_form([a => [1..4]]);
is $u, "?a=1&a=2&a=3&a=4";
$u->query_form([]);
is $u, "";
$u->query_form(a => { foo => 1 });
ok "$u" =~ /^\?a=HASH\(/;
$u->query_form(a => 1, b => 2, ';');
is $u, "?a=1;b=2";
$u->query_form(a => 1, c => 2);
is $u, "?a=1;c=2";
$u->query_form(a => 1, c => 2, '&');
is $u, "?a=1&c=2";
$u->query_form([a => 1, b => 2], ';');
is $u, "?a=1;b=2";
$u->query_form([]);
{
local $URI::DEFAULT_QUERY_FORM_DELIMITER = ';';
$u->query_form(a => 1, b => 2);
}
is $u, "?a=1;b=2";