You are here

ResponseTest.php in Zircon Profile 8

File

vendor/guzzlehttp/psr7/tests/ResponseTest.php
View source
<?php

namespace GuzzleHttp\Tests\Psr7;

use GuzzleHttp\Psr7\Response;
use GuzzleHttp\Psr7;

/**
 * @covers GuzzleHttp\Psr7\MessageTrait
 * @covers GuzzleHttp\Psr7\Response
 */
class ResponseTest extends \PHPUnit_Framework_TestCase {
  public function testAddsDefaultReason() {
    $r = new Response('200');
    $this
      ->assertSame(200, $r
      ->getStatusCode());
    $this
      ->assertEquals('OK', $r
      ->getReasonPhrase());
  }
  public function testCanGiveCustomReason() {
    $r = new Response(200, [], null, '1.1', 'bar');
    $this
      ->assertEquals('bar', $r
      ->getReasonPhrase());
  }
  public function testCanGiveCustomProtocolVersion() {
    $r = new Response(200, [], null, '1000');
    $this
      ->assertEquals('1000', $r
      ->getProtocolVersion());
  }
  public function testCanCreateNewResponseWithStatusAndNoReason() {
    $r = new Response(200);
    $r2 = $r
      ->withStatus(201);
    $this
      ->assertEquals(200, $r
      ->getStatusCode());
    $this
      ->assertEquals('OK', $r
      ->getReasonPhrase());
    $this
      ->assertEquals(201, $r2
      ->getStatusCode());
    $this
      ->assertEquals('Created', $r2
      ->getReasonPhrase());
  }
  public function testCanCreateNewResponseWithStatusAndReason() {
    $r = new Response(200);
    $r2 = $r
      ->withStatus(201, 'Foo');
    $this
      ->assertEquals(200, $r
      ->getStatusCode());
    $this
      ->assertEquals('OK', $r
      ->getReasonPhrase());
    $this
      ->assertEquals(201, $r2
      ->getStatusCode());
    $this
      ->assertEquals('Foo', $r2
      ->getReasonPhrase());
  }
  public function testCreatesResponseWithAddedHeaderArray() {
    $r = new Response();
    $r2 = $r
      ->withAddedHeader('foo', [
      'baz',
      'bar',
    ]);
    $this
      ->assertFalse($r
      ->hasHeader('foo'));
    $this
      ->assertEquals('baz, bar', $r2
      ->getHeaderLine('foo'));
  }
  public function testReturnsIdentityWhenRemovingMissingHeader() {
    $r = new Response();
    $this
      ->assertSame($r, $r
      ->withoutHeader('foo'));
  }
  public function testAlwaysReturnsBody() {
    $r = new Response();
    $this
      ->assertInstanceOf('Psr\\Http\\Message\\StreamInterface', $r
      ->getBody());
  }
  public function testCanSetHeaderAsArray() {
    $r = new Response(200, [
      'foo' => [
        'baz ',
        ' bar ',
      ],
    ]);
    $this
      ->assertEquals('baz, bar', $r
      ->getHeaderLine('foo'));
    $this
      ->assertEquals([
      'baz',
      'bar',
    ], $r
      ->getHeader('foo'));
  }
  public function testSameInstanceWhenSameBody() {
    $r = new Response(200, [], 'foo');
    $b = $r
      ->getBody();
    $this
      ->assertSame($r, $r
      ->withBody($b));
  }
  public function testNewInstanceWhenNewBody() {
    $r = new Response(200, [], 'foo');
    $b2 = Psr7\stream_for('abc');
    $this
      ->assertNotSame($r, $r
      ->withBody($b2));
  }
  public function testSameInstanceWhenSameProtocol() {
    $r = new Response(200);
    $this
      ->assertSame($r, $r
      ->withProtocolVersion('1.1'));
  }
  public function testNewInstanceWhenNewProtocol() {
    $r = new Response(200);
    $this
      ->assertNotSame($r, $r
      ->withProtocolVersion('1.0'));
  }
  public function testNewInstanceWhenRemovingHeader() {
    $r = new Response(200, [
      'Foo' => 'Bar',
    ]);
    $r2 = $r
      ->withoutHeader('Foo');
    $this
      ->assertNotSame($r, $r2);
    $this
      ->assertFalse($r2
      ->hasHeader('foo'));
  }
  public function testNewInstanceWhenAddingHeader() {
    $r = new Response(200, [
      'Foo' => 'Bar',
    ]);
    $r2 = $r
      ->withAddedHeader('Foo', 'Baz');
    $this
      ->assertNotSame($r, $r2);
    $this
      ->assertEquals('Bar, Baz', $r2
      ->getHeaderLine('foo'));
  }
  public function testNewInstanceWhenAddingHeaderThatWasNotThereBefore() {
    $r = new Response(200, [
      'Foo' => 'Bar',
    ]);
    $r2 = $r
      ->withAddedHeader('Baz', 'Bam');
    $this
      ->assertNotSame($r, $r2);
    $this
      ->assertEquals('Bam', $r2
      ->getHeaderLine('Baz'));
    $this
      ->assertEquals('Bar', $r2
      ->getHeaderLine('Foo'));
  }
  public function testRemovesPreviouslyAddedHeaderOfDifferentCase() {
    $r = new Response(200, [
      'Foo' => 'Bar',
    ]);
    $r2 = $r
      ->withHeader('foo', 'Bam');
    $this
      ->assertNotSame($r, $r2);
    $this
      ->assertEquals('Bam', $r2
      ->getHeaderLine('Foo'));
  }
  public function testBodyConsistent() {
    $r = new Response(200, [], '0');
    $this
      ->assertEquals('0', (string) $r
      ->getBody());
  }

}