honours TEST_PHP_EXECUTABLE and TEST_PHP_ARGS (set by "make test")
[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