RequestTest.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. /*
  3. * This file is part of the symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Tests\Components\RequestHandler;
  11. require_once __DIR__.'/../../bootstrap.php';
  12. use Symfony\Components\RequestHandler\Request;
  13. class RequestTest extends \PHPUnit_Framework_TestCase
  14. {
  15. /**
  16. * @covers Symfony\Components\RequestHandler\Request::__construct
  17. */
  18. public function testConstructor()
  19. {
  20. $this->testSetParameters();
  21. }
  22. /**
  23. * @covers Symfony\Components\RequestHandler\Request::setParameters
  24. */
  25. public function testSetParameters()
  26. {
  27. $request = new Request();
  28. $request->setParameters(array('foo' => 'bar'));
  29. $this->assertEquals('bar', $request->getQueryParameter('foo'), '->setParameter() takes an array of query parameters as its first argument');
  30. $request->setParameters(null, array('foo' => 'bar'));
  31. $this->assertEquals('bar', $request->getRequestParameter('foo'), '->setParameter() takes an array of request parameters as its second argument');
  32. $request->setParameters(null, null, array('foo' => 'bar'));
  33. $this->assertEquals('bar', $request->getPathParameter('foo'), '->setParameter() takes an array of path parameters as its thrid argument');
  34. $request->setParameters(null, null, null, array('HTTP_FOO' => 'bar'));
  35. $this->assertEquals('bar', $request->getHttpHeader('foo'), '->setParameter() takes an array of HTTP headers as its fourth argument');
  36. }
  37. /**
  38. * @covers Symfony\Components\RequestHandler\Request::duplicate
  39. */
  40. public function testDuplicate()
  41. {
  42. $request = new Request(array('foo' => 'bar'), array('foo' => 'bar'), array('foo' => 'bar'), array('HTTP_FOO' => 'bar'));
  43. $dup = $request->duplicate();
  44. $this->assertEquals($request->getQueryParameters(), $dup->getQueryParameters(), '->duplicate() duplicates a request an copy the current query parameters');
  45. $this->assertEquals($request->getRequestParameters(), $dup->getRequestParameters(), '->duplicate() duplicates a request an copy the current request parameters');
  46. $this->assertEquals($request->getPathParameters(), $dup->getPathParameters(), '->duplicate() duplicates a request an copy the current path parameters');
  47. $this->assertEquals($request->getHttpHeader('foo'), $dup->getHttpHeader('foo'), '->duplicate() duplicates a request an copy the current HTTP headers');
  48. $dup = $request->duplicate(array('foo' => 'foobar'), array('foo' => 'foobar'), array('foo' => 'foobar'), array('HTTP_FOO' => 'foobar'));
  49. $this->assertEquals(array('foo' => 'foobar'), $dup->getQueryParameters(), '->duplicate() overrides the query parameters if provided');
  50. $this->assertEquals(array('foo' => 'foobar'), $dup->getRequestParameters(), '->duplicate() overrides the request parameters if provided');
  51. $this->assertEquals(array('foo' => 'foobar'), $dup->getPathParameters(), '->duplicate() overrides the path parameters if provided');
  52. $this->assertEquals('foobar', $dup->getHttpHeader('foo'), '->duplicate() overrides the HTTP header if provided');
  53. }
  54. }