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",
"description": "The PHP micro-framework based on the Symfony Components",
"keywords": ["microframework"],
......@@ -35,6 +34,7 @@
"symfony/finder": "~2.3,<3.0",
"symfony/monolog-bridge": "~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/serializer": "~2.3,<3.0",
"symfony/translation": "~2.3,<3.0",
......@@ -61,5 +61,6 @@
"branch-alias": {
"dev-master": "1.3.x-dev"
}
}
},
"minimum-stability": "dev"
}
......@@ -30,6 +30,12 @@ trait FormTrait
*/
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 @@
namespace Silex;
use Symfony\Component\Debug\ExceptionHandler as DebugExceptionHandler;
use Symfony\Component\Debug\Exception\FlattenException;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;
use Symfony\Component\HttpKernel\KernelEvents;
......@@ -48,7 +50,19 @@ class ExceptionHandler implements EventSubscriberInterface
$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
{
$app = new Application();
ErrorHandler::register();
ErrorHandler::register(null, false);
$app['monolog.logfile'] = 'php://memory';
$app->register(new MonologServiceProvider());
$app->get('/foo/', function () { return 'ok'; });
......
......@@ -47,8 +47,8 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase
return $extensions;
}));
$form = $app['form.factory']->createBuilder('form', array())
->add('dummy', 'dummy')
$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', class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Silex\Tests\Provider\DummyFormType' : 'dummy')
->getForm();
$this->assertInstanceOf('Symfony\Component\Form\Form', $form);
......@@ -66,8 +66,8 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase
return $extensions;
}));
$form = $app['form.factory']->createBuilder('form', array())
->add('file', 'file', array('image_path' => 'webPath'))
$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', class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType') ? 'Symfony\Component\Form\Extension\Core\Type\FileType' : 'file', array('image_path' => 'webPath'))
->getForm();
$this->assertInstanceOf('Symfony\Component\Form\Form', $form);
......@@ -107,7 +107,7 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase
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();
$form->handleRequest($req = Request::create('/', 'POST', array('form' => array(
......@@ -147,8 +147,13 @@ class FormServiceProviderTest extends \PHPUnit_Framework_TestCase
}
}
class DummyFormType extends AbstractType
{
if (class_exists('Symfony\Component\Form\Extension\Core\Type\RangeType')) {
class DummyFormType extends AbstractType
{
}
} else {
class DummyFormType extends AbstractType
{
/**
* @return string The name of this type
*/
......@@ -156,6 +161,7 @@ class DummyFormType extends AbstractType
{
return 'dummy';
}
}
}
if (method_exists('Symfony\Component\Form\AbstractType', 'configureOptions')) {
......@@ -163,7 +169,7 @@ if (method_exists('Symfony\Component\Form\AbstractType', 'configureOptions')) {
{
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)
......@@ -176,7 +182,7 @@ if (method_exists('Symfony\Component\Form\AbstractType', 'configureOptions')) {
{
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)
......
......@@ -88,7 +88,7 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase
/**
* @depends testRegister
* @dataProvider testValidatorConstraintProvider
* @dataProvider getTestValidatorConstraintProvider
*/
public function testValidatorConstraint($email, $isValid, $nbGlobalError, $nbEmailError, $app)
{
......@@ -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,
'csrf_protection' => false,
));
$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()
;
......@@ -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(
array('', 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