Skip to content
Snippets Groups Projects
Commit 4bc7d4da authored by llaffont's avatar llaffont
Browse files

Amélioration affichage des erreurs du formulaire de contact

parent 4d8f00c1
Branches
Tags
No related merge requests found
......@@ -569,7 +569,6 @@ application/modules/opac/views/scripts/iframe.phtml -text
application/modules/opac/views/scripts/index/embed-module.phtml -text
application/modules/opac/views/scripts/index/error.phtml -text
application/modules/opac/views/scripts/index/formulairecontact.phtml -text
application/modules/opac/views/scripts/index/formulairecontacterror.phtml -text
application/modules/opac/views/scripts/index/formulairecontactsent.phtml -text
application/modules/opac/views/scripts/index/planaccess.phtml -text
application/modules/opac/views/scripts/index/sitedown.phtml -text
......
......@@ -69,11 +69,9 @@ class IndexController extends Zend_Controller_Action {
$this->_sendFormulaireContact();
$this->_redirect('index/formulairecontactsent');
} catch (Exception $e) {
$this->_helper->notify($e->getMessage());
$this->_redirect('index/formulairecontacterror');
$this->view->error = $e->getMessage();
}
return;
}
}
$this->view->form = $form;
}
......@@ -81,8 +79,6 @@ class IndexController extends Zend_Controller_Action {
public function formulairecontactsentAction() {}
public function formulairecontacterrorAction() {}
protected function _formulaireContact() {
$form = $this->view->newForm(array('id' => 'contact'))
......@@ -174,9 +170,9 @@ class IndexController extends Zend_Controller_Action {
protected function _sendFormulaireContact() {
if (!$mail_address = Class_Profil::getCurrentProfil()->getMailSiteOrPortail())
throw new Exception($this->view->_("Erreur à l'envoi du mail: destinataire non configuré"));
throw new Exception($this->view->_("destinataire non configuré. Vérifiez les paramètres du profil, champ 'E-mail du webmestre'"));
$data = ZendAfi_Filters_Post::filterStatic($this->_request->getPost());
$data = $this->_request->getPost();
$mail = new Zend_Mail('utf8');
$mail
......
<?php
echo $this->openBoite('Formulaire de contact');
if ($this->error)
echo sprintf('<p class="errors">%s</p>', $this->_("Erreur d'envoi: %s", $this->error));
echo $this->renderForm($this->form);
echo $this->closeBoite();
?>
\ No newline at end of file
<?php
echo $this->openBoite('Formulaire de contact');
echo sprintf('<p>%s</p>', $this->_("Erreur d'envoi: problème de configuration"));
echo $this->closeBoite();
?>
\ No newline at end of file
......@@ -98,10 +98,14 @@ class FormulaireContactInvalidPostTest extends AbstractControllerTestCase {
abstract class FormulaireContactValidPostTestCase extends AbstractControllerTestCase {
protected $_mail;
public function newMailTransport() {
return new MockMailTransport();
}
public function sendValidMail() {
defineConstant('NOCAPTCHA', true);
$mock_transport = new MockMailTransport();
$mock_transport = $this->newMailTransport();
Zend_Mail::setDefaultTransport($mock_transport);
$this->postDispatch('/opac/index/formulairecontact',
......@@ -118,6 +122,32 @@ abstract class FormulaireContactValidPostTestCase extends AbstractControllerTest
}
class FormulaireContactValidPostThrowErrorTest extends FormulaireContactValidPostTestCase {
public function newMailTransport() {
$transport = new MockMailTransport();
$transport->onSendDo(function() {throw new Exception('Erreur de connexion');});
return $transport;
}
public function setUp() {
parent::setUp();
Class_Profil::getCurrentProfil()->setMailSite('laurent@afi-sa.fr');
$this->sendValidMail();
}
/** @test */
public function pageShouldDisplayError() {
$this->assertXPathContentContains('//p[@class="errors"]', "Erreur d'envoi: Erreur de connexion");
}
}
class FormulaireContactValidPostTest extends FormulaireContactValidPostTestCase {
public function setUp() {
parent::setUp();
......@@ -222,7 +252,7 @@ class FormulaireContactValidPostWithoutMailCurrentProfilTest extends FormulaireC
$this->sendValidMail();
$this->assertNull($this->_mail);
$this->assertRedirectTo('/index/formulairecontacterror');
$this->assertXPathContentContains('//p[@class="errors"]', "Erreur d'envoi: destinataire non configuré");
}
}
......@@ -235,13 +265,6 @@ class FormulaireContactRelatedActionsTest extends AbstractControllerTestCase {
$this->dispatch('/index/formulairecontactsent');
$this->assertXPathContentContains('//p', 'Le message a bien été envoyé');
}
/** @test */
public function formulaireContectErrorShouldDisplayError() {
$this->dispatch('/index/formulairecontacterror');
$this->assertXPathContentContains('//p', "Erreur d'envoi: problème de configuration");
}
}
......
......@@ -21,9 +21,18 @@
class MockMailTransport extends Zend_Mail_Transport_Abstract {
public $sent_mail = null;
protected $_send_block;
public function send(Zend_Mail $mail) {
$this->sent_mail = $mail;
if (isset($this->_send_block)) {
call_user_func($this->_send_block);
}
}
public function onSendDo($block) {
$this->_send_block = $block;
}
protected function _sendMail() {}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment