Only pass valid options through from TEST_PHP_ARGS and make sure child process has...
[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