Commit e312ea5e authored by Fabien Potencier's avatar Fabien Potencier

bug #1249 added symfony/phpunit to catch deprecation notices (fabpot)

This PR was merged into the 1.3 branch.

Discussion
----------

added symfony/phpunit to catch deprecation notices

Commits
-------

780ab698 fixed some Form deprecations
cb46028d removed deprecated method call in the exception handler
9291f830 fixed test that did not restore the error handler properly
1cc87a3f added symfony/phpunit to catch deprecation notices
parents ea24d79e 780ab698
{ {
"minimum-stability": "dev",
"name": "silex/silex", "name": "silex/silex",
"description": "The PHP micro-framework based on the Symfony Components", "description": "The PHP micro-framework based on the Symfony Components",
"keywords": ["microframework"], "keywords": ["microframework"],
...@@ -35,6 +34,7 @@ ...@@ -35,6 +34,7 @@
"symfony/finder": "~2.3,<3.0", "symfony/finder": "~2.3,<3.0",
"symfony/monolog-bridge": "~2.3,<3.0", "symfony/monolog-bridge": "~2.3,<3.0",
"symfony/options-resolver": "~2.3,<3.0", "symfony/options-resolver": "~2.3,<3.0",
"symfony/phpunit-bridge": "~2.7,<3.0",
"symfony/process": "~2.3,<3.0", "symfony/process": "~2.3,<3.0",
"symfony/serializer": "~2.3,<3.0", "symfony/serializer": "~2.3,<3.0",
"symfony/translation": "~2.3,<3.0", "symfony/translation": "~2.3,<3.0",
...@@ -61,5 +61,6 @@ ...@@ -61,5 +61,6 @@
"branch-alias": { "branch-alias": {
"dev-master": "1.3.x-dev" "dev-master": "1.3.x-dev"
} }
} },
"minimum-stability": "dev"
} }
...@@ -30,6 +30,12 @@ trait FormTrait ...@@ -30,6 +30,12 @@ trait FormTrait
*/ */
public function form($data = null, array $options = array()) public function form($data = null, array $options = array())
{ {
return $this['form.factory']->createBuilder('form', $data, $options); $name = 'Symfony\Component\Form\Extension\Core\Type\FormType';
// for BC with Symfony pre 2.7
if (!class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType')) {
$name = 'form';
}
return $this['form.factory']->createBuilder($name, $data, $options);
} }
} }
...@@ -12,7 +12,9 @@ ...@@ -12,7 +12,9 @@
namespace Silex; namespace Silex;
use Symfony\Component\Debug\ExceptionHandler as DebugExceptionHandler; use Symfony\Component\Debug\ExceptionHandler as DebugExceptionHandler;
use Symfony\Component\Debug\Exception\FlattenException;
use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\HttpKernel\KernelEvents;
...@@ -48,7 +50,19 @@ class ExceptionHandler implements EventSubscriberInterface ...@@ -48,7 +50,19 @@ class ExceptionHandler implements EventSubscriberInterface
$handler = new DebugExceptionHandler($this->debug); $handler = new DebugExceptionHandler($this->debug);
$event->setResponse($handler->createResponse($event->getException())); if (method_exists($handler, 'getHtml')) {
$exception = $event->getException();
if (!$exception instanceof FlattenException) {
$exception = FlattenException::create($exception);
}
$response = Response::create($handler->getHtml($exception), $exception->getStatusCode(), $exception->getHeaders())->setCharset(ini_get('default_charset'));
} else {
// BC with Symfony < 2.8
$response = $handler->createResponse($event->getException());
}
$event->setResponse($response);
} }
/** /**
......
...@@ -551,7 +551,7 @@ class ApplicationTest extends \PHPUnit_Framework_TestCase ...@@ -551,7 +551,7 @@ class ApplicationTest extends \PHPUnit_Framework_TestCase
{ {
$app = new Application(); $app = new Application();
ErrorHandler::register(); ErrorHandler::register(null, false);
$app['monolog.logfile'] = 'php://memory'; $app['monolog.logfile'] = 'php://memory';
$app->register(new MonologServiceProvider()); $app->register(new MonologServiceProvider());
$app->get('/foo/', function () { return 'ok'; }); $app->get('/foo/', function () { return 'ok'; });
......
...@@ -47,8 +47,8 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -47,8 +47,8 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase
return $extensions; return $extensions;
})); }));
$form = $app['form.factory']->createBuilder('form', array()) $form = $app['form.factory']->createBuilder(class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Symfony\Component\Form\Extension\Core\Type\FormType' : 'form', array())
->add('dummy', 'dummy') ->add('dummy', class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Silex\Tests\Provider\DummyFormType' : 'dummy')
->getForm(); ->getForm();
$this->assertInstanceOf('Symfony\Component\Form\Form', $form); $this->assertInstanceOf('Symfony\Component\Form\Form', $form);
...@@ -66,8 +66,8 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -66,8 +66,8 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase
return $extensions; return $extensions;
})); }));
$form = $app['form.factory']->createBuilder('form', array()) $form = $app['form.factory']->createBuilder(class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Symfony\Component\Form\Extension\Core\Type\FormType' : 'form', array())
->add('file', 'file', array('image_path' => 'webPath')) ->add('file', class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Symfony\Component\Form\Extension\Core\Type\FileType' : 'file', array('image_path' => 'webPath'))
->getForm(); ->getForm();
$this->assertInstanceOf('Symfony\Component\Form\Form', $form); $this->assertInstanceOf('Symfony\Component\Form\Form', $form);
...@@ -107,7 +107,7 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -107,7 +107,7 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase
return new FakeCsrfProvider(); return new FakeCsrfProvider();
}); });
$form = $app['form.factory']->createBuilder('form', array()) $form = $app['form.factory']->createBuilder(class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Symfony\Component\Form\Extension\Core\Type\FormType' : 'form', array())
->getForm(); ->getForm();
$form->handleRequest($req = Request::create('/', 'POST', array('form' => array( $form->handleRequest($req = Request::create('/', 'POST', array('form' => array(
...@@ -147,14 +147,20 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -147,14 +147,20 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase
} }
} }
class DummyFormType extends AbstractType if (class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType')) {
{ class DummyFormType extends AbstractType
/** {
* @return string The name of this type }
*/ } else {
public function getName() class DummyFormType extends AbstractType
{ {
return 'dummy'; /**
* @return string The name of this type
*/
public function getName()
{
return 'dummy';
}
} }
} }
...@@ -163,7 +169,7 @@ if (method_exists('Symfony\Component\Form\AbstractType', 'configureOptions')) { ...@@ -163,7 +169,7 @@ if (method_exists('Symfony\Component\Form\AbstractType', 'configureOptions')) {
{ {
public function getExtendedType() public function getExtendedType()
{ {
return 'file'; return class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Symfony\Component\Form\Extension\Core\Type\FileType' : 'file';
} }
public function configureOptions(OptionsResolver $resolver) public function configureOptions(OptionsResolver $resolver)
...@@ -176,7 +182,7 @@ if (method_exists('Symfony\Component\Form\AbstractType', 'configureOptions')) { ...@@ -176,7 +182,7 @@ if (method_exists('Symfony\Component\Form\AbstractType', 'configureOptions')) {
{ {
public function getExtendedType() public function getExtendedType()
{ {
return 'file'; return class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Symfony\Component\Form\Extension\Core\Type\FileType' : 'file';
} }
public function setDefaultOptions(OptionsResolverInterface $resolver) public function setDefaultOptions(OptionsResolverInterface $resolver)
......
...@@ -88,7 +88,7 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -88,7 +88,7 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase
/** /**
* @depends testRegister * @depends testRegister
* @dataProvider testValidatorConstraintProvider * @dataProvider getTestValidatorConstraintProvider
*/ */
public function testValidatorConstraint($email, $isValid, $nbGlobalError, $nbEmailError, $app) public function testValidatorConstraint($email, $isValid, $nbGlobalError, $nbEmailError, $app)
{ {
...@@ -102,13 +102,13 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -102,13 +102,13 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase
), ),
)); ));
$builder = $app['form.factory']->createBuilder('form', array(), array( $builder = $app['form.factory']->createBuilder(class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Symfony\Component\Form\Extension\Core\Type\FormType' : 'form', array(), array(
'constraints' => $constraints, 'constraints' => $constraints,
'csrf_protection' => false, 'csrf_protection' => false,
)); ));
$form = $builder $form = $builder
->add('email', 'email', array('label' => 'Email')) ->add('email', class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Symfony\Component\Form\Extension\Core\Type\EmailType' : 'email', array('label' => 'Email'))
->getForm() ->getForm()
; ;
...@@ -140,9 +140,9 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -140,9 +140,9 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase
} }
} }
public function testValidatorConstraintProvider() public function getTestValidatorConstraintProvider()
{ {
// Email, form is valid , nb global error, nb email error // Email, form is valid, nb global error, nb email error
return array( return array(
array('', false, 0, 1), array('', false, 0, 1),
array('not an email', false, 0, 1), array('not an email', false, 0, 1),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment