merged branch jalliot/check-disposition (PR #2132)

Commits
-------

0bc2a6d [HttpFoundation] Added check for disposition value

Discussion
----------

[HttpFoundation] Added check for disposition value
This commit is contained in:
Fabien Potencier 2011-09-09 11:10:51 +02:00
commit 5dcfeb2854
2 changed files with 19 additions and 2 deletions

View File

@ -20,8 +20,11 @@ namespace Symfony\Component\HttpFoundation;
*/
class ResponseHeaderBag extends HeaderBag
{
const COOKIES_FLAT = 'flat';
const COOKIES_ARRAY = 'array';
const COOKIES_FLAT = 'flat';
const COOKIES_ARRAY = 'array';
const DISPOSITION_ATTACHMENT = 'attachment';
const DISPOSITION_INLINE = 'inline';
protected $computedCacheControl = array();
protected $cookies = array();
@ -216,6 +219,10 @@ class ResponseHeaderBag extends HeaderBag
*/
public function makeDisposition($disposition, $filename, $filenameFallback = '')
{
if (!in_array($disposition, array(self::DISPOSITION_ATTACHMENT, self::DISPOSITION_INLINE))) {
throw new \InvalidArgumentException(sprintf('The disposition must be either "%s" or "%s".', self::DISPOSITION_ATTACHMENT, self::DISPOSITION_INLINE));
}
if (!$filenameFallback) {
$filenameFallback = $filename;
}

View File

@ -119,6 +119,16 @@ class ResponseHeaderBagTest extends \PHPUnit_Framework_TestCase
$this->assertFalse(isset($cookies['foo.bar']));
}
/**
* @expectedException \InvalidArgumentException
*/
public function testMakeDispositionInvalidDisposition()
{
$headers = new ResponseHeaderBag();
$headers->makeDisposition('invalid', 'foo.html');
}
/**
* @dataProvider provideMakeDisposition
*/