2010-03-25 07:55:50 +00:00
< ? php
/*
* This file is part of the symfony package .
*
* ( c ) Fabien Potencier < fabien . potencier @ symfony - project . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Tests\Components\RequestHandler ;
use Symfony\Components\RequestHandler\Request ;
class RequestTest extends \PHPUnit_Framework_TestCase
{
/**
2010-03-25 12:26:16 +00:00
* @ covers Symfony\Components\RequestHandler\Request :: __construct
2010-03-25 07:55:50 +00:00
*/
public function testConstructor ()
{
2010-04-08 10:15:19 +01:00
$this -> testInitialize ();
2010-03-25 07:55:50 +00:00
}
/**
2010-04-08 10:15:19 +01:00
* @ covers Symfony\Components\RequestHandler\Request :: initialize
2010-03-25 07:55:50 +00:00
*/
2010-04-08 10:15:19 +01:00
public function testInitialize ()
2010-03-25 07:55:50 +00:00
{
$request = new Request ();
2010-04-08 10:15:19 +01:00
$request -> initialize ( array ( 'foo' => 'bar' ));
$this -> assertEquals ( 'bar' , $request -> query -> get ( 'foo' ), '->initialize() takes an array of query parameters as its first argument' );
2010-03-25 07:55:50 +00:00
2010-04-08 10:15:19 +01:00
$request -> initialize ( null , array ( 'foo' => 'bar' ));
$this -> assertEquals ( 'bar' , $request -> request -> get ( 'foo' ), '->initialize() takes an array of request parameters as its second argument' );
2010-03-25 07:55:50 +00:00
2010-04-08 10:15:19 +01:00
$request -> initialize ( null , null , array ( 'foo' => 'bar' ));
$this -> assertEquals ( 'bar' , $request -> path -> get ( 'foo' ), '->initialize() takes an array of path parameters as its thrid argument' );
2010-03-25 07:55:50 +00:00
2010-04-08 10:15:19 +01:00
$request -> initialize ( null , null , null , null , null , array ( 'HTTP_FOO' => 'bar' ));
$this -> assertEquals ( 'bar' , $request -> headers -> get ( 'FOO' ), '->initialize() takes an array of HTTP headers as its fourth argument' );
2010-03-25 07:55:50 +00:00
}
/**
2010-03-25 12:26:16 +00:00
* @ covers Symfony\Components\RequestHandler\Request :: duplicate
2010-03-25 07:55:50 +00:00
*/
public function testDuplicate ()
{
2010-04-07 08:16:56 +01:00
$request = new Request ( array ( 'foo' => 'bar' ), array ( 'foo' => 'bar' ), array ( 'foo' => 'bar' ), array (), array (), array ( 'HTTP_FOO' => 'bar' ));
2010-03-25 07:55:50 +00:00
$dup = $request -> duplicate ();
2010-04-08 10:15:19 +01:00
$this -> assertEquals ( $request -> query -> all (), $dup -> query -> all (), '->duplicate() duplicates a request an copy the current query parameters' );
$this -> assertEquals ( $request -> request -> all (), $dup -> request -> all (), '->duplicate() duplicates a request an copy the current request parameters' );
$this -> assertEquals ( $request -> path -> all (), $dup -> path -> all (), '->duplicate() duplicates a request an copy the current path parameters' );
$this -> assertEquals ( $request -> headers -> all (), $dup -> headers -> all (), '->duplicate() duplicates a request an copy the current HTTP headers' );
2010-03-25 07:55:50 +00:00
2010-04-07 08:16:56 +01:00
$dup = $request -> duplicate ( array ( 'foo' => 'foobar' ), array ( 'foo' => 'foobar' ), array ( 'foo' => 'foobar' ), array (), array (), array ( 'HTTP_FOO' => 'foobar' ));
2010-03-25 07:55:50 +00:00
2010-04-08 10:15:19 +01:00
$this -> assertEquals ( array ( 'foo' => 'foobar' ), $dup -> query -> all (), '->duplicate() overrides the query parameters if provided' );
$this -> assertEquals ( array ( 'foo' => 'foobar' ), $dup -> request -> all (), '->duplicate() overrides the request parameters if provided' );
$this -> assertEquals ( array ( 'foo' => 'foobar' ), $dup -> path -> all (), '->duplicate() overrides the path parameters if provided' );
$this -> assertEquals ( array ( 'FOO' => 'foobar' ), $dup -> headers -> all (), '->duplicate() overrides the HTTP header if provided' );
2010-03-25 07:55:50 +00:00
}
2010-04-04 00:19:07 +01:00
/**
* @ covers Symfony\Components\RequestHandler\Request :: getFormat
*/
public function testGetFormat ()
{
$request = new Request ();
2010-04-10 22:23:20 +01:00
$this -> assertNull ( $request -> getFormat ( null ), '->getFormat() returns null when mime-type is null' );
$this -> assertNull ( $request -> getFormat ( 'unexistant-mime-type' ), '->getFormat() returns null when mime-type is unknown' );
2010-04-04 00:19:07 +01:00
$this -> assertEquals ( 'txt' , $request -> getFormat ( 'text/plain' ), '->getFormat() returns correct format when mime-type have one format only' );
$this -> assertEquals ( 'js' , $request -> getFormat ( 'application/javascript' ), '->getFormat() returns correct format when format have multiple mime-type (first)' );
$this -> assertEquals ( 'js' , $request -> getFormat ( 'application/x-javascript' ), '->getFormat() returns correct format when format have multiple mime-type' );
$this -> assertEquals ( 'js' , $request -> getFormat ( 'text/javascript' ), '->getFormat() returns correct format when format have multiple mime-type (last)' );
}
2010-03-25 07:55:50 +00:00
}