+ function testQuoted() {
+ $p = new http\Params("multipart/form-data; boundary=\"--123\"");
+ $this->assertEquals(
+ array(
+ "multipart/form-data" => array(
+ "value" => true,
+ "arguments" => array(
+ "boundary" => "--123"
+ )
+ )
+ ),
+ $p->params
+ );
+ $this->assertEquals("multipart/form-data;boundary=--123", (string) $p);
+ }
+
+ function testEscaped() {
+ $p = new http\Params("form-data; name=\"upload\"; filename=\"trick\\\"\0\\\"ed\"");
+ $this->assertEquals(
+ array(
+ "form-data" => array(
+ "value" => true,
+ "arguments" => array(
+ "name" => "upload",
+ "filename" => "trick\"\0\"ed"
+ )
+ )
+ ),
+ $p->params
+ );
+ $this->assertEquals("form-data;name=upload;filename=\"trick\\\"\\0\\\"ed\"", (string) $p);
+ }
+
+ function testUrlencoded() {
+ $s = "foo=b%22r&bar=b%22z&a%5B%5D%5B%5D=1";
+ $p = new http\Params($s, "&", "", "=", http\Params::PARSE_URLENCODED);
+ $this->assertEquals(
+ array(
+ "foo" => array(
+ "value" => "b\"r",
+ "arguments" => array(),
+ ),
+ "bar" => array(
+ "value" => "b\"z",
+ "arguments" => array(),
+ ),
+ "a[][]" => array(
+ "value" => "1",
+ "arguments" => array(),
+ ),
+ ),
+ $p->params
+ );
+ $this->assertEquals("foo=b%22r&bar=b%22z&a%5B%5D%5B%5D=1", (string) $p);
+ }
+
+ function testQuery() {
+ $s = "foo=b%22r&bar=b%22z&a%5B%5D%5B%5D=1";
+ $p = new http\Params($s, "&", "", "=", http\Params::PARSE_QUERY);
+ $this->assertEquals(
+ array(
+ "foo" => array(
+ "value" => "b\"r",
+ "arguments" => array(),
+ ),
+ "bar" => array(
+ "value" => "b\"z",
+ "arguments" => array(),
+ ),
+ "a" => array(
+ "value" => array(
+ array("1")
+ ),
+ "arguments" => array(),
+ ),
+ ),
+ $p->params
+ );
+ $this->assertEquals("foo=b%22r&bar=b%22z&a%5B0%5D%5B0%5D=1", (string) $p);
+ }
+
+