set always_populate_raw_post_data=-1 to avoid failed test (because of warning)
[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