From c3a00d1cf3a49ef145ef607cf2abb542ff28ee3f Mon Sep 17 00:00:00 2001 From: llaffont <llaffont@afi-sa.fr> Date: Mon, 31 Aug 2015 16:38:36 +0200 Subject: [PATCH] hotline #28245 Fix random displaying of critics: add tests --- .../opac/controllers/BlogController.php | 3 --- .../ZendAfi/View/Helper/Accueil/Critiques.php | 4 ++++ .../View/Helper/Accueil/CritiquesTest.php | 22 ++++++++++++++----- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/application/modules/opac/controllers/BlogController.php b/application/modules/opac/controllers/BlogController.php index eb3ef969305..27a13c20daf 100644 --- a/application/modules/opac/controllers/BlogController.php +++ b/application/modules/opac/controllers/BlogController.php @@ -100,9 +100,6 @@ class BlogController extends ZendAfi_Controller_Action { $avis = Class_AvisNotice::getAvisFromPreferences($preferences,[$this->view->page, $this->view->config['nb_display']]); - if (isset($preferences['display_order']) && $preferences['display_order'] == 'Random') - shuffle($avis); - $this->view->liste_avis = $avis; $params_url=$this->_request->getParams(); diff --git a/library/ZendAfi/View/Helper/Accueil/Critiques.php b/library/ZendAfi/View/Helper/Accueil/Critiques.php index 4cf889d5026..1c0e147fea2 100644 --- a/library/ZendAfi/View/Helper/Accueil/Critiques.php +++ b/library/ZendAfi/View/Helper/Accueil/Critiques.php @@ -22,6 +22,8 @@ class ZendAfi_View_Helper_Accueil_Critiques extends ZendAfi_View_Helper_Accueil_Base { public function getHtml() { + $this->contenu = ''; + if ($this->isHierarchicalDisplay()) { $this->titre = $this->getPreference('titre'); $this->contenu = $this->view->domainTree($this->getPreference('id_catalogue'), @@ -36,6 +38,7 @@ class ZendAfi_View_Helper_Accueil_Critiques extends ZendAfi_View_Helper_Accueil_ $fetched_avis = Class_AvisNotice::getAvisFromPreferences($this->getPreferences()); + if ($this->getPreference('display_order') == 'Random') shuffle($fetched_avis); @@ -53,6 +56,7 @@ class ZendAfi_View_Helper_Accueil_Critiques extends ZendAfi_View_Helper_Accueil_ $selected_avis[] = $avis; } + if (count($selected_avis) == 0) { $this->contenu = $this ->decorateContenu($this->_tag('p', $this->_('Aucune critique récente'))); diff --git a/tests/library/ZendAfi/View/Helper/Accueil/CritiquesTest.php b/tests/library/ZendAfi/View/Helper/Accueil/CritiquesTest.php index 9d23a82a514..bf7f3fc7839 100644 --- a/tests/library/ZendAfi/View/Helper/Accueil/CritiquesTest.php +++ b/tests/library/ZendAfi/View/Helper/Accueil/CritiquesTest.php @@ -51,17 +51,19 @@ class CritiquesAvisEmptyTest extends ViewHelperTestCase { abstract class CritiquesAvisTestCase extends ViewHelperTestCase { - protected $_storm_default_to_volatile = true; - protected $_prefs = []; // subclass responsibility + protected + $_storm_default_to_volatile = true, + $_helper, + $_prefs = []; // subclass responsibility public function setUp() { parent::setUp(); $this->_prepareFixtures(); - $helper = new ZendAfi_View_Helper_Accueil_Critiques(2, $this->_prefs); - $helper->setView(new ZendAfi_Controller_Action_Helper_View()); - $this->html = $helper->getBoite(); + $this->_helper = new ZendAfi_View_Helper_Accueil_Critiques(2, $this->_prefs); + $this->_helper->setView(new ZendAfi_Controller_Action_Helper_View()); + $this->html = $this->_helper->getBoite(); } @@ -169,6 +171,16 @@ class CritiquesWithVignettesTest extends CritiquesAvisTestCase { } + /** @test */ + public function criticsOrderShouldBeRandom() { + Storm_Cache::setDefaultZendCache(null); + $htmls = []; + foreach(range(0, 9) as $i) + $htmls [] = $this->_helper->getBoite(); + + $this->assertTrue(count(array_unique($htmls)) > 1); + } + /** @test */ public function superLoloCommentWithHtmlShouldBeCutAfterTresBien() { $this->assertXPathContentContains($this->html, '//p', ' -- GitLab