public function testMultipartWithAmpersandInValue() { $b = new puzzle_post_PostBody(); $b->setField('a', 'b&c=d'); $b->forceMultipartUpload(true); $this->assertEquals(array('a' => 'b&c=d'), $b->getFields()); $m = new puzzle_message_Request('POST', '/'); $b->applyRequestHeaders($m); $this->assertContains('multipart/form-data', $m->getHeader('Content-Type')); $this->assertTrue($m->hasHeader('Content-Length')); $contents = $b->getContents(); $this->assertContains('name="a"', $contents); $this->assertContains('b&c=d', $contents); }