/** * Parses an raw http header string into an Message object * * @param \PSX\Http\Message $message * @param string $header * @return array */ protected function headerToArray(Message $message, $header) { $lines = explode(Http::$newLine, $header); foreach ($lines as $line) { $parts = explode(':', $line, 2); if (isset($parts[0]) && isset($parts[1])) { $key = $parts[0]; $value = substr($parts[1], 1); $message->addHeader($key, $value); } } }
/** * @expectedException \RuntimeException */ public function testImportEmptyBody() { $message = new Message(); $message->addHeader('Content-Type', 'application/json'); $message->setBody(new StringStream('')); $importer = new Importer(Environment::getService('extractor'), Environment::getService('importer_manager')); $importer->import(new Page(), $message); }
public function testAddHeaderCaseInsensitive() { $message = new Message(); $message->setHeaders(array('foo' => 'bar')); $this->assertEquals('bar', $message->getHeader('foo')); $this->assertEquals(array('bar'), $message->getHeaderLines('foo')); $this->assertEquals('bar', $message->getHeader('FOO')); $this->assertEquals(array('bar'), $message->getHeaderLines('FOO')); // now we add the same header again which must be added to the existing // header $message->addHeader('FOO', 'foo'); $this->assertEquals('bar, foo', $message->getHeader('foo')); $this->assertEquals(array('bar', 'foo'), $message->getHeaderLines('foo')); $this->assertEquals('bar, foo', $message->getHeader('FOO')); $this->assertEquals(array('bar', 'foo'), $message->getHeaderLines('FOO')); }
public function testExtractJsonExplicitReader() { $data = <<<TEXT {"foo": "bar"} TEXT; $message = new Message(); $message->addHeader('Content-Type', 'text/plain'); $message->setBody(new StringStream($data)); $extractor = new Extractor(Environment::getService('reader_factory'), Environment::getService('transformer_manager')); $data = $extractor->extract($message, null, ReaderInterface::JSON); $expect = new \stdClass(); $expect->foo = 'bar'; $this->assertEquals($expect, $data); }