14 public function setup()
21 $this->assertEquals(
'&', $this->q->getFieldSeparator());
26 $this->assertEquals(
'=', $this->q->getValueSeparator());
31 $this->assertEquals(
'RFC 3986', $this->q->getUrlEncoding());
32 $this->assertTrue($this->q->isUrlEncoding());
33 $this->assertEquals(
'foo%20bar', $this->q->encodeValue(
'foo bar'));
36 $this->assertTrue($this->q->isUrlEncoding());
38 $this->assertEquals(
'foo+bar', $this->q->encodeValue(
'foo bar'));
40 $this->assertSame($this->q, $this->q->useUrlEncoding(
false));
41 $this->assertFalse($this->q->isUrlEncoding());
42 $this->assertFalse($this->q->isUrlEncoding());
47 $this->assertEquals($this->q, $this->q->setFieldSeparator(
'/'));
48 $this->assertEquals(
'/', $this->q->getFieldSeparator());
53 $this->assertEquals($this->q, $this->q->setValueSeparator(
'/'));
54 $this->assertEquals(
'/', $this->q->getValueSeparator());
61 'test 2' =>
'this is a test?',
62 'test3' => array(
'v1',
'v2',
'v3'),
67 'test%202' => rawurlencode(
'this is a test?'),
68 'test3%5B0%5D' =>
'v1',
69 'test3%5B1%5D' =>
'v2',
70 'test3%5B2%5D' =>
'v3',
73 $this->q->replace($params);
74 $this->assertEquals($encoded, $this->q->urlEncode());
77 $testData = array(
'test 2' =>
'this is a test');
78 $this->q->replace($testData);
79 $this->q->useUrlEncoding(
false);
80 $this->assertEquals($testData, $this->q->urlEncode());
86 $this->assertEquals(
'', $this->q->__toString());
90 'test 2' =>
'this is a test?',
91 'test3' => array(
'v1',
'v2',
'v3'),
94 $this->q->replace($params);
95 $this->assertEquals(
'test=value&test%202=this%20is%20a%20test%3F&test3%5B0%5D=v1&test3%5B1%5D=v2&test3%5B2%5D=v3&test4', $this->q->__toString());
96 $this->q->useUrlEncoding(
false);
97 $this->assertEquals(
'test=value&test 2=this is a test?&test3[0]=v1&test3[1]=v2&test3[2]=v3&test4', $this->q->__toString());
101 $this->assertEquals(
'test=value&test 2=this is a test?&test3=v1,v2,v3&test4', $this->q->__toString());
107 $q->add(
'facet',
'size');
108 $q->add(
'facet',
'width');
109 $q->add(
'facet.field',
'foo');
112 $this->assertEquals(
'facet=size&facet=width&facet.field=foo',
$q->__toString());
117 $this->q->replace(array(
129 $this->q->useUrlEncoding(
false);
130 $this->assertEquals(
'test=value&t[v1]=a&t[v2]=b&t[v3][v4]=c&t[v3][v5]=d', $this->q->__toString());
137 array(
'q=a&q=b', array(
'q' => array(
'a',
'b'))),
139 array(
'q[]=a&q[]=b', array(
'q' => array(
'a',
'b'))),
141 array(
'q[]=a', array(
'q' => array(
'a'))),
143 array(
'q.a=a&q.b=b', array(
148 array(
'q%20a=a%20b', array(
'q a' =>
'a b')),
150 array(
'q&a', array(
'q' =>
false,
'a' =>
false)),
160 $this->assertEquals($data, $query->getAll());
166 $this->assertEquals(array(
'a',
'b'), $query->get(
'foo'));
167 $this->assertEquals(
'c', $query->get(
'?µ'));
173 $this->assertEquals(
'foo', (
string) $query);
175 $this->assertEquals(
'foo', (
string) $query);
181 $this->assertEquals(
'0', (
string) $query);
183 $this->assertSame(
'0', (
string) $query);
189 $this->assertEquals(
'foo=baz&bar=boo', (
string) $query);
195 $this->assertEquals(
'foo bar', $query->get(
'var'));
201 $this->assertSame(
'0', $query->get(
'var'));
213 $this->assertEquals(
'foo=0&baz=0&bar&boo&bam=', (
string) $query);
219 $this->assertEquals(
'mF0b3IiLCJUZWFtIERldiJdfX0=', $query->get(
'data'));
225 $this->assertEquals(
'test=a&test=b', (
string) $query);
231 $this->assertEquals(
'test%5B0%5D=a&test%5B1%5D=b', (
string) $query);