예제 #1
0
 /**
  * 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);
         }
     }
 }
예제 #2
0
파일: ImporterTest.php 프로젝트: seytar/psx
 /**
  * @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);
 }
예제 #3
0
파일: MessageTest.php 프로젝트: seytar/psx
 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'));
 }
예제 #4
0
    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);
    }