diff --git a/VERSIONS_HOTLINE/#28245 b/VERSIONS_HOTLINE/#28245 new file mode 100644 index 0000000000000000000000000000000000000000..3a985505c8a89a15416ae5964f03d0d3e71b2a12 --- /dev/null +++ b/VERSIONS_HOTLINE/#28245 @@ -0,0 +1 @@ +- ticket #28245: Corrige l'affichage aléatoire des critiques diff --git a/library/ZendAfi/View/Helper/Accueil/Critiques.php b/library/ZendAfi/View/Helper/Accueil/Critiques.php index fc8710fc050e40c82524ab8c47ddfd76ee330c0a..1c0e147fea217f93a7c4de0315a1e7ef0d0c29c7 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,7 +38,8 @@ class ZendAfi_View_Helper_Accueil_Critiques extends ZendAfi_View_Helper_Accueil_ $fetched_avis = Class_AvisNotice::getAvisFromPreferences($this->getPreferences()); - if ($this->getPreferences('display_order') == 'Random') + + if ($this->getPreference('display_order') == 'Random') shuffle($fetched_avis); $selected_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 9d23a82a514427036896b6c29a50bb607635fc55..bf7f3fc7839e041e136fbe368ddd5d537feeb02d 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', '