Merge branch 'v2.6.x'
[m6w6/ext-http] / tests / querystring002.phpt
1 --TEST--
2 query string
3 --SKIPIF--
4 <?php
5 include "skipif.inc";
6 ?>
7 --FILE--
8 <?php
9 echo "Test\n";
10
11 $s = "a=b&r[]=0&r[]=1&r[]=2&rr[][]=00&rr[][]=01&1=2";
12 $e = "a=b&r%5B0%5D=0&r%5B1%5D=1&r%5B2%5D=2&rr%5B0%5D%5B0%5D=00&rr%5B0%5D%5B1%5D=01&1=2";
13 $q = new http\QueryString($s);
14
15 var_dump($e === (string) $q);
16 var_dump($e === $q->get());
17
18 printf("Get defval\n");
19 var_dump("nonexistant" === $q->get("unknown", "s", "nonexistant"));
20 var_dump(null === $q->get("unknown"));
21
22 printf("Get 'a'\n");
23 var_dump("b" === $q->get("a"));
24 var_dump(0 === $q->get("a", "i"));
25 var_dump(array("b") === $q->get("a", "a"));
26 var_dump((object)array("scalar" => "b") == $q->get("a", "o"));
27
28 printf("Get 'r'\n");
29 var_dump(array("0","1","2") === $q->get("r"));
30
31 printf("Get 'rr'\n");
32 var_dump(array(array("00","01")) === $q->get("rr"));
33
34 printf("Get 1\n");
35 var_dump(2 == $q->get(1));
36 var_dump("2" === $q->get(1, "s"));
37 var_dump(2.0 === $q->get(1, "f"));
38 var_dump($q->get(1, "b"));
39
40 printf("Del 'a'\n");
41 var_dump("b" === $q->get("a", http\QueryString::TYPE_STRING, null, true));
42 var_dump(null === $q->get("a"));
43
44 printf("Del all\n");
45 $q->set(array("a" => null, "r" => null, "rr" => null, 1 => null));
46 var_dump("" === $q->toString());
47
48 $q = new http\QueryString($s);
49
50 printf("QSO\n");
51 var_dump($e === (string) new http\QueryString($q));
52 var_dump(http_build_query(array("e"=>$q->toArray())) === (string) new http\QueryString(array("e" => $q)));
53
54 printf("Iterator\n");
55 var_dump($q->toArray() === iterator_to_array($q));
56
57 printf("Serialize\n");
58 var_dump($e === (string) unserialize(serialize($q)));
59
60 ?>
61 DONE
62 --EXPECT--
63 Test
64 bool(true)
65 bool(true)
66 Get defval
67 bool(true)
68 bool(true)
69 Get 'a'
70 bool(true)
71 bool(true)
72 bool(true)
73 bool(true)
74 Get 'r'
75 bool(true)
76 Get 'rr'
77 bool(true)
78 Get 1
79 bool(true)
80 bool(true)
81 bool(true)
82 bool(true)
83 Del 'a'
84 bool(true)
85 bool(true)
86 Del all
87 bool(true)
88 QSO
89 bool(true)
90 bool(true)
91 Iterator
92 bool(true)
93 Serialize
94 bool(true)
95 DONE