3 class ParamsTest
extends PHPUnit_Framework_TestCase
{
4 function testDefault() {
5 $s = "foo, bar;arg=0;bla, gotit=0;now";
8 str_replace(" ", "", $s)
12 function testCustom() {
13 $s = "foo bar.arg:0.bla gotit:0.now";
15 new http\
Params($s, " ", ".", ":"),
20 function testQuoted() {
21 $p = new http\
Params("multipart/form-data; boundary=\"--123\"");
24 "multipart/form-data" => array(
33 $this->assertEquals("multipart/form-data;boundary=--123", (string) $p);
36 function testEscaped() {
37 $p = new http\
Params("form-data; name=\"upload\"; filename=\"trick\\\"\0\\\"ed\"");
44 "filename" => "trick\"\0\"ed"
50 $this->assertEquals("form-data;name=upload;filename=\"trick\\\"\\0\\\"ed\"", (string) $p);
53 function testEmpty() {
54 $p = new http\
Params(NULL);
55 $this->assertEquals(array(), $p->params
);
58 function testErrorOfToArrayWithArgs() {
59 $this->setExpectedException("PHPUnit_Framework_Error_Warning");
60 $p = new http\
Params();
64 function testIntegerKeys() {
65 $p = new http\
Params("0=nothing;1=yes");
66 $this->assertEquals(array("0" => array("value" => "nothing", "arguments" => array(1=>"yes"))), $p->params
);
67 $this->assertEquals("0=nothing;1=yes", $p->toString());
70 function testBoolParamArguments() {
72 $container = array("value" => false, "arguments" => array("wrong" => false, "correct" => true));
73 $p["container"] = $container;
74 $this->assertEquals("container=0;wrong=0;correct", $p->toString());
75 $this->assertEquals(array("container" => $container), $p->toArray());
78 function testNoArgsForParam() {
81 $this->assertEquals("param", $p->toString());
83 $this->assertEquals("param=0", $p->toString());
86 protected function runAssertions($p, $s) {
87 $this->assertCount(3, $p->params
);
88 $this->assertArrayHasKey("foo", $p->params
);
89 $this->assertArrayHasKey("bar", $p->params
);
90 $this->assertArrayHasKEy("gotit", $p->params
);
92 $this->assertTrue($p["foo"]["value"]);
93 $this->assertTrue($p["bar"]["value"]);
94 $this->assertEmpty($p["gotit"]["value"]);
96 $this->assertEmpty($p["foo"]["arguments"]);
97 $this->assertCount(2, $p["bar"]["arguments"]);
98 $this->assertCount(1, $p["gotit"]["arguments"]);
100 $this->assertEmpty($p["bar"]["arguments"]["arg"]);
101 $this->assertTrue($p["bar"]["arguments"]["bla"]);
102 $this->assertTrue($p["gotit"]["arguments"]["now"]);
104 $this->assertEquals($s, (string) $p);
133 $this->assertEquals($comp, $p->params
);
134 $a = new http\
Params($p->params
);
135 $this->assertEquals($comp, $a->toArray());