From 2be1987ad1dca580a0dfc03e407c8a6343dd47cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Tue, 8 Jan 2019 10:39:57 +0100 Subject: [PATCH] [FrameworkBundle] Remove ControllerTrait::isFormValid() --- .../Bundle/FrameworkBundle/CHANGELOG.md | 5 - .../Controller/ControllerTrait.php | 46 ++----- .../Tests/Controller/ControllerTraitTest.php | 125 +----------------- 3 files changed, 19 insertions(+), 157 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md index b2096087bc..88623174b9 100644 --- a/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md +++ b/src/Symfony/Bundle/FrameworkBundle/CHANGELOG.md @@ -1,11 +1,6 @@ CHANGELOG ========= -4.3.0 ------ - - * Added `ControllerTrait::isFormValid()` - 4.2.0 ----- diff --git a/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerTrait.php b/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerTrait.php index 51bc264a6e..0650fea5ca 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerTrait.php +++ b/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerTrait.php @@ -73,7 +73,7 @@ trait ControllerTrait * * @final */ - protected function generateUrl(string $route, array $parameters = array(), int $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH): string + protected function generateUrl(string $route, array $parameters = [], int $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH): string { return $this->container->get('router')->generate($route, $parameters, $referenceType); } @@ -85,7 +85,7 @@ trait ControllerTrait * * @final */ - protected function forward(string $controller, array $path = array(), array $query = array()): Response + protected function forward(string $controller, array $path = [], array $query = []): Response { $request = $this->container->get('request_stack')->getCurrentRequest(); $path['_controller'] = $controller; @@ -109,7 +109,7 @@ trait ControllerTrait * * @final */ - protected function redirectToRoute(string $route, array $parameters = array(), int $status = 302): RedirectResponse + protected function redirectToRoute(string $route, array $parameters = [], int $status = 302): RedirectResponse { return $this->redirect($this->generateUrl($route, $parameters), $status); } @@ -119,12 +119,12 @@ trait ControllerTrait * * @final */ - protected function json($data, int $status = 200, array $headers = array(), array $context = array()): JsonResponse + protected function json($data, int $status = 200, array $headers = [], array $context = []): JsonResponse { if ($this->container->has('serializer')) { - $json = $this->container->get('serializer')->serialize($data, 'json', array_merge(array( + $json = $this->container->get('serializer')->serialize($data, 'json', array_merge([ 'json_encode_options' => JsonResponse::DEFAULT_ENCODING_OPTIONS, - ), $context)); + ], $context)); return new JsonResponse($json, $status, $headers, true); } @@ -203,7 +203,7 @@ trait ControllerTrait * * @final */ - protected function renderView(string $view, array $parameters = array()): string + protected function renderView(string $view, array $parameters = []): string { if ($this->container->has('templating')) { return $this->container->get('templating')->render($view, $parameters); @@ -221,7 +221,7 @@ trait ControllerTrait * * @final */ - protected function render(string $view, array $parameters = array(), Response $response = null): Response + protected function render(string $view, array $parameters = [], Response $response = null): Response { if ($this->container->has('templating')) { $content = $this->container->get('templating')->render($view, $parameters); @@ -245,7 +245,7 @@ trait ControllerTrait * * @final */ - protected function stream(string $view, array $parameters = array(), StreamedResponse $response = null): StreamedResponse + protected function stream(string $view, array $parameters = [], StreamedResponse $response = null): StreamedResponse { if ($this->container->has('templating')) { $templating = $this->container->get('templating'); @@ -311,7 +311,7 @@ trait ControllerTrait * * @final */ - protected function createForm(string $type, $data = null, array $options = array()): FormInterface + protected function createForm(string $type, $data = null, array $options = []): FormInterface { return $this->container->get('form.factory')->create($type, $data, $options); } @@ -321,33 +321,11 @@ trait ControllerTrait * * @final */ - protected function createFormBuilder($data = null, array $options = array()): FormBuilderInterface + protected function createFormBuilder($data = null, array $options = []): FormBuilderInterface { return $this->container->get('form.factory')->createBuilder(FormType::class, $data, $options); } - /** - * Handles request and check form validity. - * - * @final - */ - protected function isFormValid(FormInterface $form, Request $request = null): bool - { - if ($form->isSubmitted()) { - throw new \LogicException('The form is already submitted, use $form->isValid() directly.'); - } - - if (!$request) { - $request = $this->container->get('request_stack')->getCurrentRequest(); - } - - if (!$request) { - throw new \LogicException('You must pass a request as second argument because the request stack is empty.'); - } - - return $form->handleRequest($request)->isSubmitted() && $form->isValid(); - } - /** * Shortcut to return the Doctrine Registry service. * @@ -441,7 +419,7 @@ trait ControllerTrait } if (null === $linkProvider = $request->attributes->get('_links')) { - $request->attributes->set('_links', new GenericLinkProvider(array($link))); + $request->attributes->set('_links', new GenericLinkProvider([$link])); return; } diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerTraitTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerTraitTest.php index 0dcbc0e5db..ff6dba6252 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerTraitTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerTraitTest.php @@ -60,7 +60,7 @@ abstract class ControllerTraitTest extends TestCase public function testGetUser() { $user = new User('user', 'pass'); - $token = new UsernamePasswordToken($user, 'pass', 'default', array('ROLE_USER')); + $token = new UsernamePasswordToken($user, 'pass', 'default', ['ROLE_USER']); $controller = $this->createController(); $controller->setContainer($this->getContainerWithTokenStorage($token)); @@ -122,7 +122,7 @@ abstract class ControllerTraitTest extends TestCase $controller = $this->createController(); $controller->setContainer(new Container()); - $response = $controller->json(array()); + $response = $controller->json([]); $this->assertInstanceOf(JsonResponse::class, $response); $this->assertEquals('[]', $response->getContent()); } @@ -135,7 +135,7 @@ abstract class ControllerTraitTest extends TestCase $serializer ->expects($this->once()) ->method('serialize') - ->with(array(), 'json', array('json_encode_options' => JsonResponse::DEFAULT_ENCODING_OPTIONS)) + ->with([], 'json', ['json_encode_options' => JsonResponse::DEFAULT_ENCODING_OPTIONS]) ->will($this->returnValue('[]')); $container->set('serializer', $serializer); @@ -143,7 +143,7 @@ abstract class ControllerTraitTest extends TestCase $controller = $this->createController(); $controller->setContainer($container); - $response = $controller->json(array()); + $response = $controller->json([]); $this->assertInstanceOf(JsonResponse::class, $response); $this->assertEquals('[]', $response->getContent()); } @@ -156,7 +156,7 @@ abstract class ControllerTraitTest extends TestCase $serializer ->expects($this->once()) ->method('serialize') - ->with(array(), 'json', array('json_encode_options' => 0, 'other' => 'context')) + ->with([], 'json', ['json_encode_options' => 0, 'other' => 'context']) ->will($this->returnValue('[]')); $container->set('serializer', $serializer); @@ -164,7 +164,7 @@ abstract class ControllerTraitTest extends TestCase $controller = $this->createController(); $controller->setContainer($container); - $response = $controller->json(array(), 200, array(), array('json_encode_options' => 0, 'other' => 'context')); + $response = $controller->json([], 200, [], ['json_encode_options' => 0, 'other' => 'context']); $this->assertInstanceOf(JsonResponse::class, $response); $this->assertEquals('[]', $response->getContent()); $response->setEncodingOptions(JSON_FORCE_OBJECT); @@ -389,7 +389,7 @@ abstract class ControllerTraitTest extends TestCase $controller->setContainer($container); $controller->addFlash('foo', 'bar'); - $this->assertSame(array('bar'), $flashBag->get('foo')); + $this->assertSame(['bar'], $flashBag->get('foo')); } public function testCreateAccessDeniedException() @@ -517,117 +517,6 @@ abstract class ControllerTraitTest extends TestCase $this->assertEquals($formBuilder, $controller->createFormBuilder('foo')); } - /** - * @expectedException \LogicException - * @expectedExceptionMessage The form is already submitted, use $form->isValid() directly. - */ - public function testIsFormValidWhenAlreadySubmitted() - { - $requestStack = new RequestStack(); - $requestStack->push($request = new Request()); - - $container = new Container(); - $container->set('request_stack', $requestStack); - - $controller = $this->createController(); - $controller->setContainer($container); - - $form = $this->getMockBuilder('Symfony\Component\Form\FormInterface')->getMock(); - $form - ->expects($this->once()) - ->method('isSubmitted') - ->willReturn(true) - ; - - $controller->isFormValid($form); - } - - public function testIsFormValidWhenInvalid() - { - $requestStack = new RequestStack(); - $requestStack->push($request = new Request()); - - $container = new Container(); - $container->set('request_stack', $requestStack); - - $controller = $this->createController(); - $controller->setContainer($container); - - $form = $this->getMockBuilder('Symfony\Component\Form\FormInterface')->getMock(); - $form - ->expects($this->at(0)) - ->method('isSubmitted') - ->willReturn(false) - ; - $form - ->expects($this->once()) - ->method('handleRequest') - ->with($request) - ->willReturn($form) - ; - $form - ->expects($this->at(2)) - ->method('isSubmitted') - ->willReturn(false) - ; - - $this->assertFalse($controller->isFormValid($form)); - } - - public function testIsFormValidWhenValid() - { - $requestStack = new RequestStack(); - $requestStack->push($request = new Request()); - - $container = new Container(); - $container->set('request_stack', $requestStack); - - $controller = $this->createController(); - $controller->setContainer($container); - - $form = $this->getMockBuilder('Symfony\Component\Form\FormInterface')->getMock(); - $form - ->expects($this->at(0)) - ->method('isSubmitted') - ->willReturn(false) - ; - $form - ->expects($this->once()) - ->method('handleRequest') - ->with($request) - ->willReturn($form) - ; - $form - ->expects($this->at(2)) - ->method('isSubmitted') - ->willReturn(true) - ; - $form - ->expects($this->once()) - ->method('isValid') - ->willReturn(true) - ; - - $this->assertTrue($controller->isFormValid($form)); - } - - /** - * @expectedException \LogicException - * @expectedExceptionMessage You must pass a request as second argument because the request stack is empty. - */ - public function testIsFormValidWhenRequestStackIsEmpty() - { - $container = new Container(); - $container->set('request_stack', new RequestStack()); - - $controller = $this->createController(); - $controller->setContainer($container); - - $form = $this->getMockBuilder('Symfony\Component\Form\FormInterface')->getMock(); - - $this->assertTrue($controller->isFormValid($form)); - } - public function testGetDoctrine() { $doctrine = $this->getMockBuilder('Doctrine\Common\Persistence\ManagerRegistry')->getMock();