From dd634e3bfe23050f12cf4b31effb73693098cf2a Mon Sep 17 00:00:00 2001
From: llaffont <llaffont@git-test.afi-sa.fr>
Date: Mon, 16 Dec 2013 10:53:00 +0000
Subject: [PATCH] =?UTF-8?q?Modification=20des=20catalogues=20en=20front:?=
 =?UTF-8?q?=20=C3=A0=20la=20validation=20la=20fen=C3=AAtre=20n'est=20plus?=
 =?UTF-8?q?=20r=C3=A9ouverte?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../admin/controllers/CatalogueController.php |  5 +-
 .../controllers/CatalogueControllerTest.php   | 74 +++++++++++++++++++
 2 files changed, 76 insertions(+), 3 deletions(-)

diff --git a/application/modules/admin/controllers/CatalogueController.php b/application/modules/admin/controllers/CatalogueController.php
index 2fa718f982f..0b886e1cd5f 100644
--- a/application/modules/admin/controllers/CatalogueController.php
+++ b/application/modules/admin/controllers/CatalogueController.php
@@ -82,7 +82,6 @@ class Admin_CatalogueController extends ZendAfi_Controller_Action {
 	// Ajout d'un catalogue
 	//----------------------------------------------------------------------------------
 	function addAction() {
-
 		$catalogue = Class_Catalogue::getLoader()
 			->newInstance()
 			->setLibelle("** nouveau domaine **")
@@ -95,7 +94,7 @@ class Admin_CatalogueController extends ZendAfi_Controller_Action {
 				$this->updateConfigKiosque($id_module,$catalogue);
 
 			$this->_helper->notify($this->_('Domaine %s ajouté', $catalogue->getLibelle()));
-			$this->_redirect('admin/catalogue/edit/id_catalogue/'.$catalogue->getId());
+			$this->_redirectClose('admin/catalogue/edit/id_catalogue/'.$catalogue->getId());
 			return;
 		}
 
@@ -127,7 +126,7 @@ class Admin_CatalogueController extends ZendAfi_Controller_Action {
 		}
 		if ($this->isSaved($catalogue)) {
 			$this->_helper->notify($this->_('Domaine %s sauvegardé', $catalogue->getLibelle()));
-			$this->_redirect("admin/catalogue/edit/id_catalogue/".$catalogue->getId());
+			$this->_redirectClose("admin/catalogue/edit/id_catalogue/".$catalogue->getId());
 			return;
 		}
 
diff --git a/tests/application/modules/admin/controllers/CatalogueControllerTest.php b/tests/application/modules/admin/controllers/CatalogueControllerTest.php
index 7c9ddd4bae0..12c05bd49a9 100644
--- a/tests/application/modules/admin/controllers/CatalogueControllerTest.php
+++ b/tests/application/modules/admin/controllers/CatalogueControllerTest.php
@@ -713,6 +713,77 @@ class CatalogueControllerEditCataloguePostTest extends AdminCatalogueControllerT
 
 
 
+abstract class CatalogueControllerEditInPopupTestCase extends AdminCatalogueControllerTestCase { 
+	protected 
+		$_json,
+		$_xpath;
+
+	public function setUp() {
+		parent::setUp();
+		$_SERVER['HTTP_REFERER'] = 'opac/index';
+		$this->_xpath = new Storm_Test_XPath();
+	}
+}
+
+
+
+class CatalogueControllerEditInPopupPostTest extends CatalogueControllerEditInPopupTestCase { 
+	public function setUp() {
+		parent::setUp();
+		$_SERVER['HTTP_REFERER'] = 'opac/index';
+		$this->postDispatch('/admin/catalogue/edit/id_catalogue/6/render/popup', 
+												['libelle' => 'Jeunes',
+												 'pcdm4' => '5']);
+		$this->_json = json_decode($this->_response->getBody());
+	}
+
+
+	/** @test */
+	public function flashMessengerShouldNotContainsPopup() {
+		$this->assertNotFlashMessengerPopup();
+	}
+
+
+	/** @test */
+	public function responseShouldBeARedirectWithJavascript() {
+		$this->_xpath->assertXPathContentContains($this->_json->content, 
+																							'//script', 
+																							'window.location="opac/index"');
+	}
+}
+
+
+
+
+class CatalogueControllerAddCatalogueInPopupPostTest extends CatalogueControllerEditInPopupTestCase { 
+	public function setUp() {
+		parent::setUp();
+		$this->postDispatch('/admin/catalogue/add/render/popup', 
+												['libelle' => 'Geeks',
+												 'pcdm4' => '5',
+												 'annee_debut' => '20',
+												 'annee_fin' => '2020',
+												 'parent_id' => '']);
+		$this->_json = json_decode($this->_response->getBody());
+	}
+
+	/** @test */
+	public function flashMessengerShouldNotContainsPopup() {
+		$this->assertNotFlashMessengerPopup();
+	}
+
+
+	/** @test */
+	public function responseShouldBeARedirectWithJavascript() {
+		$this->_xpath->assertXPathContentContains($this->_json->content, 
+																							'//script', 
+																							'window.location="opac/index"');
+	}
+}
+
+
+
+
 class CatalogueControllerDuplicateCatalogueTest extends AdminCatalogueControllerTestCase { 
 	public function setUp() {
 		parent::setUp();
@@ -741,6 +812,9 @@ class CatalogueControllerDuplicateCatalogueTest extends AdminCatalogueController
 
 }
 
+
+
+
 class CatalogueControllerDuplicateCataloguePostTest extends AdminCatalogueControllerTestCase { 
 	public function setUp() {
 		parent::setUp();
-- 
GitLab