From a287fc12f3342a0896dfe52fee1ba183a15aef08 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Wed, 20 Jun 2018 16:18:54 +0200 Subject: [PATCH 1/6] Added more asserts --- src/Entity/Post.php | 1 + src/Entity/User.php | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/Entity/Post.php b/src/Entity/Post.php index fe25e4b8b..5ce782ce6 100644 --- a/src/Entity/Post.php +++ b/src/Entity/Post.php @@ -70,6 +70,7 @@ class Post * * @ORM\Column(type="string") * @Assert\NotBlank(message="post.blank_summary") + * @Assert\Length(max = 255) */ private $summary; diff --git a/src/Entity/User.php b/src/Entity/User.php index a2f36c33b..8c7e49faf 100644 --- a/src/Entity/User.php +++ b/src/Entity/User.php @@ -13,6 +13,7 @@ use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Security\Core\User\UserInterface; +use Symfony\Component\Validator\Constraints as Assert; /** * @ORM\Entity(repositoryClass="App\Repository\UserRepository") @@ -42,6 +43,7 @@ class User implements UserInterface, \Serializable * @var string * * @ORM\Column(type="string") + * @Assert\NotBlank() */ private $fullName; @@ -49,6 +51,8 @@ class User implements UserInterface, \Serializable * @var string * * @ORM\Column(type="string", unique=true) + * @Assert\NotBlank() + * @Assert\Length(min = 2, max = 50) */ private $username; @@ -56,6 +60,7 @@ class User implements UserInterface, \Serializable * @var string * * @ORM\Column(type="string", unique=true) + * @Assert\Email() */ private $email; From daa07720f5f1f38a6b95dff495293b41357ac8a7 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Wed, 20 Jun 2018 16:19:02 +0200 Subject: [PATCH 2/6] Enabled the HTML5 email validation --- config/packages/framework.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml index de48b3a06..94522b5d7 100644 --- a/config/packages/framework.yaml +++ b/config/packages/framework.yaml @@ -25,4 +25,6 @@ framework: # When 'ide' is set to null the file is opened in your web browser. # See https://symfony.com/doc/current/reference/configuration/framework.html#ide ide: ~ - validation: { enable_annotations: true } + validation: + email_validation_mode: 'html5' + enable_annotations: true From f883bdb1e992c96cfabfeb758fb79f530a2243a3 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Wed, 20 Jun 2018 16:31:46 +0200 Subject: [PATCH 3/6] Added an AJAX test using xmlHttpRequest() --- tests/Controller/BlogControllerTest.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/Controller/BlogControllerTest.php b/tests/Controller/BlogControllerTest.php index 822cd4341..747b9347e 100644 --- a/tests/Controller/BlogControllerTest.php +++ b/tests/Controller/BlogControllerTest.php @@ -84,4 +84,17 @@ public function testNewComment() $this->assertSame('Hi, Symfony!', $newComment); } + + public function testAjaxSearch() + { + $client = static::createClient(); + $client->xmlHttpRequest('GET', '/en/blog/search', ['q' => 'lorem']); + + $results = json_decode($client->getResponse()->getContent(), true); + + $this->assertSame('application/json', $client->getResponse()->headers->get('Content-Type')); + $this->assertCount(1, $results); + $this->assertSame('Lorem ipsum dolor sit amet consectetur adipiscing elit', $results[0]['title']); + $this->assertSame('Jane Doe', $results[0]['author']); + } } From 46f7cfba28386a447dff21e7cb058c0267342028 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Wed, 20 Jun 2018 16:32:38 +0200 Subject: [PATCH 4/6] Use excluded_http_codes option --- config/packages/prod/monolog.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/config/packages/prod/monolog.yaml b/config/packages/prod/monolog.yaml index ae69007f0..04a2ae117 100644 --- a/config/packages/prod/monolog.yaml +++ b/config/packages/prod/monolog.yaml @@ -4,9 +4,7 @@ monolog: type: fingers_crossed action_level: error handler: nested - excluded_404s: - # regex: exclude all 404 errors from the logs - - ^/ + excluded_http_codes: [404] nested: type: stream path: '%kernel.logs_dir%/%kernel.environment%.log' From 2558224ff935152d19d3ca789f06f43e9b89897a Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Wed, 20 Jun 2018 16:34:10 +0200 Subject: [PATCH 5/6] Inlined routing requirements --- src/Controller/Admin/BlogController.php | 4 ++-- src/Controller/BlogController.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Controller/Admin/BlogController.php b/src/Controller/Admin/BlogController.php index dbf7d8e51..19560d6ca 100644 --- a/src/Controller/Admin/BlogController.php +++ b/src/Controller/Admin/BlogController.php @@ -114,7 +114,7 @@ public function new(Request $request): Response /** * Finds and displays a Post entity. * - * @Route("/{id}", requirements={"id": "\d+"}, methods={"GET"}, name="admin_post_show") + * @Route("/{id<\d+>}", methods={"GET"}, name="admin_post_show") */ public function show(Post $post): Response { @@ -130,7 +130,7 @@ public function show(Post $post): Response /** * Displays a form to edit an existing Post entity. * - * @Route("/{id}/edit", requirements={"id": "\d+"}, methods={"GET", "POST"}, name="admin_post_edit") + * @Route("/{id<\d+>}/edit",methods={"GET", "POST"}, name="admin_post_edit") * @IsGranted("edit", subject="post", message="Posts can only be edited by their authors.") */ public function edit(Request $request, Post $post): Response diff --git a/src/Controller/BlogController.php b/src/Controller/BlogController.php index 21f8d08cd..8ae193806 100644 --- a/src/Controller/BlogController.php +++ b/src/Controller/BlogController.php @@ -39,7 +39,7 @@ class BlogController extends AbstractController /** * @Route("/", defaults={"page": "1", "_format"="html"}, methods={"GET"}, name="blog_index") * @Route("/rss.xml", defaults={"page": "1", "_format"="xml"}, methods={"GET"}, name="blog_rss") - * @Route("/page/{page}", defaults={"_format"="html"}, requirements={"page": "[1-9]\d*"}, methods={"GET"}, name="blog_index_paginated") + * @Route("/page/{page<[1-9]\d*>}", defaults={"_format"="html"}, methods={"GET"}, name="blog_index_paginated") * @Cache(smaxage="10") * * NOTE: For standard formats, Symfony will also automatically choose the best From 3cb0e001755cb2742f0966bddfb2dfe622e7a259 Mon Sep 17 00:00:00 2001 From: Javier Eguiluz Date: Wed, 20 Jun 2018 17:09:25 +0200 Subject: [PATCH 6/6] Remove extra whitespaces in annotations --- src/Entity/Post.php | 2 +- src/Entity/User.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Entity/Post.php b/src/Entity/Post.php index 5ce782ce6..b91f83e93 100644 --- a/src/Entity/Post.php +++ b/src/Entity/Post.php @@ -70,7 +70,7 @@ class Post * * @ORM\Column(type="string") * @Assert\NotBlank(message="post.blank_summary") - * @Assert\Length(max = 255) + * @Assert\Length(max=255) */ private $summary; diff --git a/src/Entity/User.php b/src/Entity/User.php index 8c7e49faf..2d2ce20fd 100644 --- a/src/Entity/User.php +++ b/src/Entity/User.php @@ -52,7 +52,7 @@ class User implements UserInterface, \Serializable * * @ORM\Column(type="string", unique=true) * @Assert\NotBlank() - * @Assert\Length(min = 2, max = 50) + * @Assert\Length(min=2, max=50) */ private $username;