diff --git a/Test/Export/AbstractExportTest.php b/Test/Export/AbstractExportTest.php
index 9b5bac92c..d258c0d30 100644
--- a/Test/Export/AbstractExportTest.php
+++ b/Test/Export/AbstractExportTest.php
@@ -17,10 +17,12 @@
*/
namespace Chill\MainBundle\Test\Export;
-use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
+use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Doctrine\ORM\QueryBuilder;
use Doctrine\ORM\NativeQuery;
use Symfony\Component\Security\Core\Role\Role;
+use Chill\MainBundle\Test\PrepareClientTrait;
+use Symfony\Component\HttpFoundation\Request;
/**
* This class provide a set of tests for exports.
@@ -30,8 +32,12 @@ use Symfony\Component\Security\Core\Role\Role;
*
* @author julien.fastre@champs-libres.coop
*/
-abstract class AbstractExportTest extends KernelTestCase
+abstract class AbstractExportTest extends WebTestCase
{
+
+ use PrepareClientTrait;
+
+
/**
* Create an instance of the report to test
*
@@ -318,4 +324,35 @@ abstract class AbstractExportTest extends KernelTestCase
}
}
+
+
+ /**
+ * Test that the translated title of the export is present the list,
+ * and that the list of exports (under `/fr/exports/`) is still successfull
+ */
+ public function testListExportPage()
+ {
+ /* @var $client \Symfony\Component\BrowserKit\Client */
+ $client = $this->getClient();
+ $export = $this->getExport();
+ $prophet= new \Prophecy\Prophet;
+ $container = static::$kernel->getContainer();
+
+ // store the locale in a request
+ $request = new Request();
+ $request->setLocale('fr');
+ $container->get('request_stack')->push($request);
+ // translate the title
+ $title = $container->get('translator')->trans($export->getTitle());
+
+ // performs the request to /fr/exports
+ $crawler = $client->request('GET', '/fr/exports/');
+
+ // and finally make tests
+ $this->assertTrue($client->getResponse()->isSuccessful(),
+ "test that the response of /fr/exports/ is successful");
+ $this->assertContains($title, $crawler->text(),
+ "test that the page /fr/exports/ contains the title of the "
+ . "exports ('$title')");
+ }
}
diff --git a/Test/PrepareClientTrait.php b/Test/PrepareClientTrait.php
new file mode 100644
index 000000000..8893f63ca
--- /dev/null
+++ b/Test/PrepareClientTrait.php
@@ -0,0 +1,50 @@
+
+ *
+ * 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\MainBundle\Test;
+
+use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
+
+/**
+ * Prepare a client authenticated with a user
+ *
+ * @author Julien Fastré
+ */
+trait PrepareClientTrait
+{
+ /**
+ *
+ * @param string $username
+ * @param string $password
+ * @return \Symfony\Component\BrowserKit\Client
+ * @throws \LogicException
+ */
+ public function getClient(
+ $username = 'center a_social',
+ $password = 'password'
+ ) {
+ if (!$this instanceof WebTestCase) {
+ throw new \LogicException(sprintf("The current class does not "
+ . "implements %s", WebTestCase::class));
+ }
+
+ return static::createClient(array(), array(
+ 'PHP_AUTH_USER' => $username,
+ 'PHP_AUTH_PW' => $password,
+ ));
+ }
+}