コード例 #1
0
ファイル: ResponseTest.php プロジェクト: nimbles/Framework
 /**
  * Tests getting and setting the headers on a response
  * @return void
  */
 public function testHeaders()
 {
     $response = new \Nimbles\Http\Response();
     $this->assertInstanceOf('Nimbles\\Http\\Header\\Collection', $response->getHeader());
     $response->setHeader('Content-Type', 'text/plain');
     $this->assertTrue($response->getHeader()->offsetExists('Content-Type'));
     $this->assertInstanceOf('\\Nimbles\\Http\\Header', $response->getHeader('Content-Type'));
     $this->assertEquals('Content-Type: text/plain', (string) $response->getHeader('Content-Type'));
     $this->assertInstanceOf('\\Nimbles\\Http\\Header', $response->header->getHeader('Content-Type'));
     $this->assertEquals('Content-Type: text/plain', (string) $response->header->getHeader('Content-Type'));
     $this->assertInstanceOf('\\Nimbles\\Http\\Header', $response->header->{'Content-Type'});
     $this->assertEquals('Content-Type: text/plain', (string) $response->header->{'Content-Type'});
     $this->assertNull($response->getHeader('Content-Length'));
     $response->setHeaders(array(\Nimbles\Http\Header::factory('Allow', array('GET', 'HEAD')), 'Content-Length: 348', 'Content-Location' => '/123', 'Pragma' => \Nimbles\Http\Header::factory('Pragma', 'no-cache'), 'Foo' => \Nimbles\Http\Header::factory('WWW-Authenticate: Basic')));
     $this->assertTrue($response->getHeader()->offsetExists('Allow'));
     $this->assertTrue($response->getHeader()->offsetExists('Content-Length'));
     $this->assertTrue($response->getHeader()->offsetExists('Content-Location'));
     $this->assertTrue($response->getHeader()->offsetExists('Pragma'));
     $this->assertTrue($response->getHeader()->offsetExists('WWW-Authenticate'));
     $this->assertInstanceOf('\\Nimbles\\Http\\Header', $response->getHeader('Allow'));
     $this->assertInstanceOf('\\Nimbles\\Http\\Header', $response->getHeader('Content-Length'));
     $this->assertInstanceOf('\\Nimbles\\Http\\Header', $response->getHeader('Content-Location'));
     $this->assertInstanceOf('\\Nimbles\\Http\\Header', $response->getHeader('Pragma'));
     $this->assertInstanceOf('\\Nimbles\\Http\\Header', $response->getHeader('WWW-Authenticate'));
 }
コード例 #2
0
ファイル: HeaderTest.php プロジェクト: nimbles/Framework
 /**
  * Tests the factory of headers
  * @dataProvider factoryProvider
  * @param string $name
  * @param string $string
  * @param string $expectedName
  * @param string $expectedValue
  * @param string $expectedValue
  * @return void
  */
 public function testFactory($name, $string, $expectedName, $expectedValue, $expectedToString)
 {
     $header = \Nimbles\Http\Header::factory($name, $string);
     $this->assertEquals($expectedName, $header->getName());
     $this->assertEquals($expectedValue, $header->getValue());
     $this->assertEquals($expectedToString, (string) $header);
 }
コード例 #3
0
ファイル: Header.php プロジェクト: nimbles/Framework
 /**
  * Merges one header values into another
  * @param \Nimbles\Core\Http\Header $header
  * @return void
  * @throws \Nimbles\Http\Header\Exception\InvalidHeaderName
  */
 public function merge(Header $header)
 {
     if ($this->getName() !== $header->getName()) {
         throw new Header\Exception\InvalidHeaderName('Cannot merge headers of different name');
     }
     $values = $header->getValue();
     // for header to create an array
     foreach ($header->_values as $value) {
         $this->setValue($value, true);
     }
 }
コード例 #4
0
ファイル: Collection.php プロジェクト: nimbles/Framework
 /**
  * Sets a header
  *
  * @param string|\Nimbles\Http\Header             $name
  * @param string|\Nimbles\Http\Header|array|null  $value
  * @param bool                               $append
  * @return \Nimbles\Http\Header\Collection
  */
 public function setHeader($name, $value = null, $append = false)
 {
     $append = (bool) $append;
     if (is_array($name) || $name instanceof \ArrayObject) {
         foreach ($name as $index => $header) {
             if (is_string($index)) {
                 $this->setHeader($index, $header);
             } else {
                 $this->setHeader($header);
             }
         }
     } else {
         if ($name instanceof Header) {
             $header = $name;
             $name = $header->getName();
             if ($append && $this->offsetExists($name)) {
                 $this[$name]->merge($header);
             } else {
                 $this[$name] = $header;
             }
         } else {
             if (is_string($name)) {
                 if ($value instanceof Header) {
                     $name = $value->getName();
                     // sync to the headers name
                     $value = $value->getValue();
                     // converts to null, string or array
                 }
                 if (is_string($value) || null === $value) {
                     $value = array($value);
                 }
                 foreach ($value as $string) {
                     $header = Header::factory($name, $string);
                     $name = $header->getName();
                     if ($append && array_key_exists($name, $this)) {
                         $this[$name]->merge($header);
                     } else {
                         $this[$name] = $header;
                     }
                 }
             }
         }
     }
     return $this;
 }