From e2e89d433fee9b6bfdb7e642f4dfd977e6255fa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Fri, 27 Feb 2015 17:40:02 +0100 Subject: [PATCH] add test for timeline/accompnying period --- .../AccompanyingPeriodControllerTest.php | 12 ++-- .../TimelineAccompanyingPeriodTest.php | 61 +++++++++++++++++++ 2 files changed, 67 insertions(+), 6 deletions(-) create mode 100644 Tests/Timeline/TimelineAccompanyingPeriodTest.php diff --git a/Tests/Controller/AccompanyingPeriodControllerTest.php b/Tests/Controller/AccompanyingPeriodControllerTest.php index 2569300fc..7052152ad 100644 --- a/Tests/Controller/AccompanyingPeriodControllerTest.php +++ b/Tests/Controller/AccompanyingPeriodControllerTest.php @@ -37,19 +37,19 @@ class AccompanyingPeriodControllerTest extends WebTestCase * * @var \Symfony\Component\BrowserKit\Client */ - private $client; + protected $client; /** * * @var Person */ - private $person; + protected $person; /** * * @var \Doctrine\ORM\EntityManagerInterface */ - private static $em; + protected static $em; const OPENING_INPUT = 'chill_personbundle_accompanyingperiod[date_opening]'; const CLOSING_INPUT = 'chill_personbundle_accompanyingperiod[date_closing]'; @@ -88,7 +88,7 @@ class AccompanyingPeriodControllerTest extends WebTestCase static::$em->flush(); } - private function generatePeriods(array $periods) + protected function generatePeriods(array $periods) { foreach ($periods as $periodDef) { $period = new AccompanyingPeriod(new \DateTime($periodDef['openingDate'])); @@ -112,14 +112,14 @@ class AccompanyingPeriodControllerTest extends WebTestCase static::$em->flush(); } - private function getLastValueOnClosingMotive(\Symfony\Component\DomCrawler\Form $form) + protected function getLastValueOnClosingMotive(\Symfony\Component\DomCrawler\Form $form) { $values = $form->get(self::CLOSING_MOTIVE_INPUT) ->availableOptionValues(); return end($values); } - private function getRandomClosingMotive() + protected function getRandomClosingMotive() { $motives = static::$em ->getRepository('ChillPersonBundle:AccompanyingPeriod\ClosingMotive') diff --git a/Tests/Timeline/TimelineAccompanyingPeriodTest.php b/Tests/Timeline/TimelineAccompanyingPeriodTest.php new file mode 100644 index 000000000..78a182ef6 --- /dev/null +++ b/Tests/Timeline/TimelineAccompanyingPeriodTest.php @@ -0,0 +1,61 @@ + + * + * 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\PersonBundle\Tests\Timeline; + +use Symfony\Bundle\SecurityBundle\Tests\Functional\WebTestCase; +use Chill\PersonBundle\Entity\Person; +use Chill\PersonBundle\Entity\AccompanyingPeriod; + +/** + * This class tests entries are shown for closing and opening + * periods in timeline. + * + * @author Julien Fastré + * @author Champs Libres + */ +class TimelineAccompanyingPeriodTest extends \Chill\PersonBundle\Tests\Controller\AccompanyingPeriodControllerTest +{ + public function testEntriesAreShown() + { + $this->generatePeriods(array( + [ + 'openingDate' => '2014-01-01', + 'closingDate' => '2014-12-31', + 'closingMotive' => $this->getRandomClosingMotive() + ] + )); + + $crawler = $this->client->request('GET', '/en/person/' + .$this->person->getId().'/timeline'); + + $this->assertTrue($this->client->getResponse()->isSuccessful(), + "the timeline page loads sucessfully"); + $this->assertGreaterThan(0, $crawler->filter('.timeline div')->count(), + "the timeline page contains multiple div inside a .timeline element"); + $this->assertContains("Une période d'accompagnement a été ouverte", + $crawler->filter('.timeline')->text(), + "the text 'une période d'accompagnement a été ouverte' is present"); + $this->assertContains("Une période d'accompagnement a été fermée", + $crawler->Filter('.timeline')->text(), + "the text 'Une période d'accompagnement a été fermée' is present"); + } + +}