From 8e93a249b3d9fe5fa98c55b13015a40f7c2fc6c2 Mon Sep 17 00:00:00 2001
From: Ghislain Loas <ghislo@sandbox.pergame.net>
Date: Mon, 25 Aug 2014 17:44:22 +0200
Subject: [PATCH] dev #15695 display message when an error occured in sending
 mail process

---
 .../opac/controllers/AuthController.php       |  2 +-
 .../scripts/auth/newsletter-message.phtml     |  5 +--
 .../opac/controllers/AuthControllerTest.php   | 32 +++++++++++++++++++
 3 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/application/modules/opac/controllers/AuthController.php b/application/modules/opac/controllers/AuthController.php
index 5e8ffb08cab..548939d463d 100644
--- a/application/modules/opac/controllers/AuthController.php
+++ b/application/modules/opac/controllers/AuthController.php
@@ -298,7 +298,7 @@ class AuthController extends ZendAfi_Controller_Action {
 				->addBcc($mail_admin)
 				->send();
 		} catch (Exception $e) {
-			$this->view->error = $e->getMessage();
+			$this->view->error = $this->view->_('Une erreur est survenue à l\'envoi du mail de confirmation. Veuillez réessayer. Si le problème persiste, veuillez contacter votre médiathèque.');
 			return;
 		}
 
diff --git a/application/modules/opac/views/scripts/auth/newsletter-message.phtml b/application/modules/opac/views/scripts/auth/newsletter-message.phtml
index e923bb9ac75..0c7a902b838 100644
--- a/application/modules/opac/views/scripts/auth/newsletter-message.phtml
+++ b/application/modules/opac/views/scripts/auth/newsletter-message.phtml
@@ -1,5 +1,6 @@
-<?php	
+<?php
 $this->openBoite($this->titre);
 echo $this->tag('p', $this->message);
-echo $this->closeBoite(); 
+echo $this->tag('span', $this->error, ['class' => 'error']);
+echo $this->closeBoite();
 ?>
diff --git a/tests/application/modules/opac/controllers/AuthControllerTest.php b/tests/application/modules/opac/controllers/AuthControllerTest.php
index 39132ff3bc8..1184be2e0c8 100644
--- a/tests/application/modules/opac/controllers/AuthControllerTest.php
+++ b/tests/application/modules/opac/controllers/AuthControllerTest.php
@@ -1972,4 +1972,36 @@ class AuthControllerNewsletterUnsubscribeTest extends AbstractControllerTestCase
 		$this->assertFlashMessengerEquals(['Vous êtes désinscrit de la liste de diffusion: Daily News']);
 	}
 }
+
+
+
+class AuthControllerNewsletterRegisterSendMailWrongMailConfigurationTest extends AbstractControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+
+		ZendAfi_Auth::getInstance()->clearIdentity();
+
+		$this->mock_transport = new MockMailTransport();
+		Zend_Mail::setDefaultTransport($this->mock_transport);
+		$this->mock_transport->onSendDo(function() { throw new Exception();
+																								});
+
+		Class_Profil::getCurrentProfil()
+			->setMailSite('tom@afi.fr');
+
+		Class_Users::beVolatile();
+		Class_UsersNonValid::beVolatile();
+
+		$this->fixture('Class_Newsletter', ['id' => 5, 'titre' => 'Daily News']);
+
+		$this->postDispatch('/opac/auth/newsletter-register/id/5', ['email' => 'iwanttobespamed@abo.it',
+																																'emailCheck' => '']);
+	}
+
+
+	/** @test */
+	public function sendMailErrorShouldBePresent() {
+		$this->assertXPathContentContains('//span[@class="error"]', 'Une erreur est survenue à l\'envoi du mail de confirmation. Veuillez réessayer. Si le problème persiste, veuillez contacter votre médiathèque.');
+	}
+}
 ?>
\ No newline at end of file
-- 
GitLab