From fe95edb055a9b762c815e43a1c40d9fead0388ee Mon Sep 17 00:00:00 2001
From: llaffont <llaffont@git-test.afi-sa.fr>
Date: Fri, 1 Mar 2013 11:09:54 +0000
Subject: [PATCH] =?UTF-8?q?Correction=20acc=C3=A8s=20RSS=20profil=20suppri?=
 =?UTF-8?q?m=C3=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../opac/controllers/RssController.php        | 20 +++++++++++--------
 .../opac/controllers/RssControllerTest.php    | 20 +++++++++++++++++++
 2 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/application/modules/opac/controllers/RssController.php b/application/modules/opac/controllers/RssController.php
index a4113240d9f..fab142f3a3c 100644
--- a/application/modules/opac/controllers/RssController.php
+++ b/application/modules/opac/controllers/RssController.php
@@ -353,15 +353,19 @@ class RssController extends Zend_Controller_Action
 	function kiosqueAction() {
 		$id_profil = (int)$this->_request->getParam('id_profil');
 		$id_module = (int)$this->_request->getParam('id_module');
-		$profil = Class_Profil::getLoader()->find($id_profil);
-		$preferences = $profil->getModuleAccueilPreferences($id_module);
+		if (!$profil = Class_Profil::getLoader()->find($id_profil)) {
+			$notices = [];
+			$titre = 'Non trouvé';
+		} else {
+			$preferences = $profil->getModuleAccueilPreferences($id_module);
+			$catalogue=new Class_Catalogue();
+			$preferences["aleatoire"] = 0; // les dernières seulement
+			$notices = $catalogue->getNoticesByPreferences($preferences,"url");
+			$titre = $preferences['titre'];
+		}
 
-		$catalogue=new Class_Catalogue();
-		$preferences["aleatoire"] = 0; // les dernières seulement
-		$notices=$catalogue->getNoticesByPreferences($preferences,"url");
 
 		$entries = array();
-
 		foreach($notices as $notice) {
 			$entries []= array(
 												 'title'       => $notice["titre"].', '.$notice["auteur"],
@@ -370,10 +374,10 @@ class RssController extends Zend_Controller_Action
 												 'lastUpdate'	 => strtotime($notice['date_creation']));
 		}
 		$rss_array = array(
-											'title' 	=> $preferences['titre'],
+											'title' 	=> $titre,
 											'link'  	=> 'http://' . $_SERVER['SERVER_NAME'].BASE_URL,
 											'charset'	  => 'utf-8',
-											'description' => $preferences['titre'],
+											'description' => $titre,
 											'lastUpdate'  => time(),
 											'entries' => $entries);
 
diff --git a/tests/application/modules/opac/controllers/RssControllerTest.php b/tests/application/modules/opac/controllers/RssControllerTest.php
index 75222e92e3a..a22f1a4c890 100644
--- a/tests/application/modules/opac/controllers/RssControllerTest.php
+++ b/tests/application/modules/opac/controllers/RssControllerTest.php
@@ -26,6 +26,9 @@ class MockZendHttpClient extends Zend_Http_Client {
 	}
 }
 
+
+
+
 class RssControllerViewRawRssTest extends AbstractControllerTestCase {
 	public function setUp() {
 		parent::setUp();
@@ -97,6 +100,23 @@ class RssControllerViewRawRssTest extends AbstractControllerTestCase {
 
 
 
+
+class RssControllerKiosqueInexistingProfilTest extends AbstractControllerTestCase {
+	public function setUp() {
+		parent::setUp();
+		$this->dispatch('/rss/kiosque/id_profil/-1/id_module/12', true);
+	}
+
+	
+	/** @test */
+	public function rssShouldBeEmpty() {
+		$this->assertNotXPath('//item');
+	}
+}
+
+
+
+
 class RssFixtures {
 	public static function lemondeRSS() {
 		return 
-- 
GitLab