From 09a69765b98836bbfccfaf2695164fda55fa8b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Wed, 23 Dec 2015 23:46:44 +0100 Subject: [PATCH] adding test for customFieldRendering function --- .../Twig/CustomFieldRenderingTwigTest.php | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 Tests/Templating/Twig/CustomFieldRenderingTwigTest.php diff --git a/Tests/Templating/Twig/CustomFieldRenderingTwigTest.php b/Tests/Templating/Twig/CustomFieldRenderingTwigTest.php new file mode 100644 index 000000000..7f4923349 --- /dev/null +++ b/Tests/Templating/Twig/CustomFieldRenderingTwigTest.php @@ -0,0 +1,105 @@ + + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +namespace Chill\CustomFields\Tests\Templating\Twig; + +use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; +use Chill\CustomFieldsBundle\Templating\Twig\CustomFieldRenderingTwig; +use Chill\CustomFieldsBundle\Entity\CustomField; +use Chill\CustomFieldsBundle\Service\CustomFieldProvider; + +/** + * Test the rendering of twig function which renders custom fields + * + * @author Julien Fastré + * @author Champs Libres + */ +class CustomFieldRenderingTwigTest extends KernelTestCase +{ + /** + * + * @var CustomFieldRenderingTwig + */ + private $cfRendering; + + /** + * + * @var CustomFieldProvider + */ + private $cfProvider; + + public function setUp() + { + self::bootKernel(); + $this->cfRendering = self::$kernel->getContainer() + ->get('chill.custom_field.twig.custom_fields_rendering') + ; + + $this->cfProvider = self::$kernel->getContainer() + ->get('chill.custom_field.provider'); + + // set locale to fr + $prophet = new \Prophecy\Prophet; + $request = $prophet->prophesize(); + $request->willExtend('Symfony\Component\HttpFoundation\Request'); + $request->getLocale()->willReturn('fr'); + self::$kernel->getContainer()->get('request_stack') + ->push($request->reveal()); + } + + /** + * + * @return CustomField + */ + private function getSimpleCustomFieldText() + { + return (new CustomField()) + ->setSlug('test') + ->setName(array('fr' => 'Test')) + ->setType('text') + ->setOrdering(10) + ->setOptions(array("maxLength" => 255)) + ->setActive(true) + ; + } + + public function testLabelRendering() + { + $cf = $this->getSimpleCustomFieldText(); + + $text = $this->cfRendering->renderLabel($cf); + + $this->assertContains('Test', $text, + "The rendering text should contains the 'test' text"); + } + + public function testWidgetRendering() + { + $cf = $this->getSimpleCustomFieldText(); + $fields = array( + 'test' => "My tailor is rich" + ); + + $text = $this->cfRendering->renderWidget($fields, $cf); + + $this->assertContains('My tailor is rich', $text, + "The rendering text should contains the 'test' text"); + } +}