You are here

class ClientTest in Zircon Profile 8

Same name in this branch
  1. 8 vendor/symfony/http-kernel/Tests/ClientTest.php \Symfony\Component\HttpKernel\Tests\ClientTest
  2. 8 vendor/symfony/browser-kit/Tests/ClientTest.php \Symfony\Component\BrowserKit\Tests\ClientTest
  3. 8 vendor/fabpot/goutte/Goutte/Tests/ClientTest.php \Goutte\Tests\ClientTest
Same name and namespace in other branches
  1. 8.0 vendor/symfony/http-kernel/Tests/ClientTest.php \Symfony\Component\HttpKernel\Tests\ClientTest

Hierarchy

  • class \Symfony\Component\HttpKernel\Tests\ClientTest extends \Symfony\Component\HttpKernel\Tests\PHPUnit_Framework_TestCase

Expanded class hierarchy of ClientTest

File

vendor/symfony/http-kernel/Tests/ClientTest.php, line 21

Namespace

Symfony\Component\HttpKernel\Tests
View source
class ClientTest extends \PHPUnit_Framework_TestCase {
  public function testDoRequest() {
    $client = new Client(new TestHttpKernel());
    $client
      ->request('GET', '/');
    $this
      ->assertEquals('Request: /', $client
      ->getResponse()
      ->getContent(), '->doRequest() uses the request handler to make the request');
    $this
      ->assertInstanceOf('Symfony\\Component\\BrowserKit\\Request', $client
      ->getInternalRequest());
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\Request', $client
      ->getRequest());
    $this
      ->assertInstanceOf('Symfony\\Component\\BrowserKit\\Response', $client
      ->getInternalResponse());
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\Response', $client
      ->getResponse());
    $client
      ->request('GET', 'http://www.example.com/');
    $this
      ->assertEquals('Request: /', $client
      ->getResponse()
      ->getContent(), '->doRequest() uses the request handler to make the request');
    $this
      ->assertEquals('www.example.com', $client
      ->getRequest()
      ->getHost(), '->doRequest() uses the request handler to make the request');
    $client
      ->request('GET', 'http://www.example.com/?parameter=http://google.com');
    $this
      ->assertEquals('http://www.example.com/?parameter=' . urlencode('http://google.com'), $client
      ->getRequest()
      ->getUri(), '->doRequest() uses the request handler to make the request');
  }
  public function testGetScript() {
    $client = new TestClient(new TestHttpKernel());
    $client
      ->insulate();
    $client
      ->request('GET', '/');
    $this
      ->assertEquals('Request: /', $client
      ->getResponse()
      ->getContent(), '->getScript() returns a script that uses the request handler to make the request');
  }
  public function testFilterResponseConvertsCookies() {
    $client = new Client(new TestHttpKernel());
    $r = new \ReflectionObject($client);
    $m = $r
      ->getMethod('filterResponse');
    $m
      ->setAccessible(true);
    $expected = array(
      'foo=bar; expires=Sun, 15 Feb 2009 20:00:00 GMT; domain=http://example.com; path=/foo; secure; httponly',
      'foo1=bar1; expires=Sun, 15 Feb 2009 20:00:00 GMT; domain=http://example.com; path=/foo; secure; httponly',
    );
    $response = new Response();
    $response->headers
      ->setCookie(new Cookie('foo', 'bar', \DateTime::createFromFormat('j-M-Y H:i:s T', '15-Feb-2009 20:00:00 GMT')
      ->format('U'), '/foo', 'http://example.com', true, true));
    $domResponse = $m
      ->invoke($client, $response);
    $this
      ->assertEquals($expected[0], $domResponse
      ->getHeader('Set-Cookie'));
    $response = new Response();
    $response->headers
      ->setCookie(new Cookie('foo', 'bar', \DateTime::createFromFormat('j-M-Y H:i:s T', '15-Feb-2009 20:00:00 GMT')
      ->format('U'), '/foo', 'http://example.com', true, true));
    $response->headers
      ->setCookie(new Cookie('foo1', 'bar1', \DateTime::createFromFormat('j-M-Y H:i:s T', '15-Feb-2009 20:00:00 GMT')
      ->format('U'), '/foo', 'http://example.com', true, true));
    $domResponse = $m
      ->invoke($client, $response);
    $this
      ->assertEquals($expected[0], $domResponse
      ->getHeader('Set-Cookie'));
    $this
      ->assertEquals($expected, $domResponse
      ->getHeader('Set-Cookie', false));
  }
  public function testFilterResponseSupportsStreamedResponses() {
    $client = new Client(new TestHttpKernel());
    $r = new \ReflectionObject($client);
    $m = $r
      ->getMethod('filterResponse');
    $m
      ->setAccessible(true);
    $response = new StreamedResponse(function () {
      echo 'foo';
    });
    $domResponse = $m
      ->invoke($client, $response);
    $this
      ->assertEquals('foo', $domResponse
      ->getContent());
  }
  public function testUploadedFile() {
    $source = tempnam(sys_get_temp_dir(), 'source');
    $target = sys_get_temp_dir() . '/sf.moved.file';
    @unlink($target);
    $kernel = new TestHttpKernel();
    $client = new Client($kernel);
    $files = array(
      array(
        'tmp_name' => $source,
        'name' => 'original',
        'type' => 'mime/original',
        'size' => 123,
        'error' => UPLOAD_ERR_OK,
      ),
      new UploadedFile($source, 'original', 'mime/original', 123, UPLOAD_ERR_OK, true),
    );
    $file = null;
    foreach ($files as $file) {
      $client
        ->request('POST', '/', array(), array(
        'foo' => $file,
      ));
      $files = $client
        ->getRequest()->files
        ->all();
      $this
        ->assertCount(1, $files);
      $file = $files['foo'];
      $this
        ->assertEquals('original', $file
        ->getClientOriginalName());
      $this
        ->assertEquals('mime/original', $file
        ->getClientMimeType());
      $this
        ->assertEquals('123', $file
        ->getClientSize());
      $this
        ->assertTrue($file
        ->isValid());
    }
    $file
      ->move(dirname($target), basename($target));
    $this
      ->assertFileExists($target);
    unlink($target);
  }
  public function testUploadedFileWhenNoFileSelected() {
    $kernel = new TestHttpKernel();
    $client = new Client($kernel);
    $file = array(
      'tmp_name' => '',
      'name' => '',
      'type' => '',
      'size' => 0,
      'error' => UPLOAD_ERR_NO_FILE,
    );
    $client
      ->request('POST', '/', array(), array(
      'foo' => $file,
    ));
    $files = $client
      ->getRequest()->files
      ->all();
    $this
      ->assertCount(1, $files);
    $this
      ->assertNull($files['foo']);
  }
  public function testUploadedFileWhenSizeExceedsUploadMaxFileSize() {
    $source = tempnam(sys_get_temp_dir(), 'source');
    $kernel = new TestHttpKernel();
    $client = new Client($kernel);
    $file = $this
      ->getMockBuilder('Symfony\\Component\\HttpFoundation\\File\\UploadedFile')
      ->setConstructorArgs(array(
      $source,
      'original',
      'mime/original',
      123,
      UPLOAD_ERR_OK,
      true,
    ))
      ->setMethods(array(
      'getSize',
    ))
      ->getMock();
    $file
      ->expects($this
      ->once())
      ->method('getSize')
      ->will($this
      ->returnValue(INF));
    $client
      ->request('POST', '/', array(), array(
      $file,
    ));
    $files = $client
      ->getRequest()->files
      ->all();
    $this
      ->assertCount(1, $files);
    $file = $files[0];
    $this
      ->assertFalse($file
      ->isValid());
    $this
      ->assertEquals(UPLOAD_ERR_INI_SIZE, $file
      ->getError());
    $this
      ->assertEquals('mime/original', $file
      ->getClientMimeType());
    $this
      ->assertEquals('original', $file
      ->getClientOriginalName());
    $this
      ->assertEquals(0, $file
      ->getClientSize());
    unlink($source);
  }

}

Members