From 6d4a22ef6f8a1dcb52966e3d62fb9dfd9e576cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ANDRE=20s=C3=A9bastien?= <sandre@afi-sa.fr> Date: Mon, 24 Jul 2023 14:33:12 +0000 Subject: [PATCH] hotline : #182508 : Helper avis param limit_nb_words type int --- VERSIONS_HOTLINE/182508 | 1 + library/ZendAfi/View/Helper/Avis.php | 5 +- .../View/Helper/Accueil/CritiquesTest.php | 78 +++++++++++++++---- 3 files changed, 66 insertions(+), 18 deletions(-) create mode 100644 VERSIONS_HOTLINE/182508 diff --git a/VERSIONS_HOTLINE/182508 b/VERSIONS_HOTLINE/182508 new file mode 100644 index 00000000000..edc1697ba41 --- /dev/null +++ b/VERSIONS_HOTLINE/182508 @@ -0,0 +1 @@ + - correctif #182508 : Avis : Si la limite de nombre de mots n'est pas précisée dans les préférences de la boite critique, initialisé à 0. \ No newline at end of file diff --git a/library/ZendAfi/View/Helper/Avis.php b/library/ZendAfi/View/Helper/Avis.php index 44bf6aab83d..9f1d3d3afb0 100644 --- a/library/ZendAfi/View/Helper/Avis.php +++ b/library/ZendAfi/View/Helper/Avis.php @@ -20,8 +20,9 @@ */ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper { + + protected int $_limit_nb_word = 0; protected $_vignette_link_to_avis = false; - protected $_limit_nb_word = 0; protected $_actions = []; protected $_admin_actions = []; protected $_url_context = []; @@ -35,7 +36,7 @@ class ZendAfi_View_Helper_Avis extends ZendAfi_View_Helper_BaseHelper { public function setLimitNbWord($limit) { - $this->_limit_nb_word = $limit; + $this->_limit_nb_word = (int)$limit; return $this; } diff --git a/tests/library/ZendAfi/View/Helper/Accueil/CritiquesTest.php b/tests/library/ZendAfi/View/Helper/Accueil/CritiquesTest.php index 456505a3180..14d321392c4 100644 --- a/tests/library/ZendAfi/View/Helper/Accueil/CritiquesTest.php +++ b/tests/library/ZendAfi/View/Helper/Accueil/CritiquesTest.php @@ -21,6 +21,7 @@ class CritiquesAvisEmptyTest extends ViewHelperTestCase { + public function setUp() { parent::setUp(); @@ -48,7 +49,9 @@ class CritiquesAvisEmptyTest extends ViewHelperTestCase { + abstract class CritiquesAvisTestCase extends ViewHelperTestCase { + protected $_helper, $_prefs = []; // subclass responsibility @@ -68,24 +71,25 @@ abstract class CritiquesAvisTestCase extends ViewHelperTestCase { Class_AdminVar::set('AVIS_MIN_SAISIE', 0); Class_AdminVar::set('AVIS_MAX_SAISIE', 1000); - $lolo = $this->fixture('Class_Users', ['id' => 91, - 'login' => 'lolo', - 'password' => 'il l\'a ?', - 'pseudo' => 'Lolo']); + $lolo = $this->fixture(Class_Users::class, + ['id' => 91, + 'login' => 'lolo', + 'password' => 'il l\'a ?', + 'pseudo' => 'Lolo']); - $super_lolo = $this->fixture('Class_Users', + $super_lolo = $this->fixture(Class_Users::class, ['id' => 999, 'login' => 'suplo', 'password' => 'cutcomments', 'role_level' => ZendAfi_Acl_AdminControllerRoles::MODO_PORTAIL]); - $millenium = $this->fixture('Class_Notice', + $millenium = $this->fixture(Class_Notice::class, ['id' => 9867, 'titre_principal' => 'Millenium (Stieg Larsson)', 'clef_alpha' => 'MILLENIUM', 'url_vignette' => 'http://amazon.com/vignette.png']); - $avis_millenium = $this->fixture('Class_AvisNotice', + $avis_millenium = $this->fixture(Class_AvisNotice::class, ['id' => 23, 'entete' => 'J\'adore', 'avis' => 'Suspense intense tout au long de ce livre', @@ -96,7 +100,7 @@ abstract class CritiquesAvisTestCase extends ViewHelperTestCase { 'statut' => 1, 'notices' => [$millenium]]); - $avis_millenium_from_suplo = $this->fixture('Class_AvisNotice', + $avis_millenium_from_suplo = $this->fixture(Class_AvisNotice::class, ['id' => 234, 'entete' => 'Excellent !', 'avis' => 'Tout au long de ce livre, le suspense est intense.', @@ -107,7 +111,7 @@ abstract class CritiquesAvisTestCase extends ViewHelperTestCase { 'source_author' => null, 'notices' => [$millenium]]); - $avis_millenium_from_suplo_with_html = $this->fixture('Class_AvisNotice', + $avis_millenium_from_suplo_with_html = $this->fixture(Class_AvisNotice::class, ['id' => 2342, 'entete' => 'Excellent ce livre!', 'avis' => '<div class="should not be present"><br>Très bien ce livre<br>, le suspense est intense.</div>', @@ -118,7 +122,7 @@ abstract class CritiquesAvisTestCase extends ViewHelperTestCase { 'source_author' => null, 'notices' => [$millenium]]); - $avis_orphan = $this->fixture('Class_AvisNotice', + $avis_orphan = $this->fixture(Class_AvisNotice::class, ['id' => 34, 'entete' => 'J\'ai oublié', 'avis' => 'Ce que c\'était', @@ -130,12 +134,12 @@ abstract class CritiquesAvisTestCase extends ViewHelperTestCase { 'statut' => 1, 'notices' => []]); - $potter = $this->fixture('Class_Notice', + $potter = $this->fixture(Class_Notice::class, ['id' => 687, 'titre_principal' => 'Potter', 'url_vignette' => 'NO']); - $avis_potter = $this->fixture('Class_AvisNotice', + $avis_potter = $this->fixture(Class_AvisNotice::class, ['id' => 87, 'entete' => 'Le sorcier', 'avis' => 'A du charme', @@ -147,13 +151,16 @@ abstract class CritiquesAvisTestCase extends ViewHelperTestCase { 'statut' => 1, 'notices' => [$potter]]); - Class_Profil::setCurrentProfil($this->fixture('Class_Profil', ['id' => 18])); + Class_Profil::setCurrentProfil($this->fixture(Class_Profil::class, + ['id' => 18])); } } + class CritiquesWithVignettesTest extends CritiquesAvisTestCase { + protected $_prefs = ['type_module' => 'CRITIQUES', 'division' => 1, 'preferences' => ['rss_avis' => true, @@ -183,6 +190,7 @@ class CritiquesWithVignettesTest extends CritiquesAvisTestCase { $this->assertTrue(count(array_unique($htmls)) > 1); } + /** @test */ public function superLoloCommentWithHtmlShouldBeCutAfterTresBien() { $this->assertXPathContentContains($this->html, '//p', ' @@ -250,7 +258,9 @@ Très bien [...]'); + class CritiquesWithEmptyVignettesAllowedTest extends CritiquesAvisTestCase { + protected $_prefs = ['type_module' => 'CRITIQUES', 'division' => 1, 'preferences' => ['rss_avis' => false, @@ -296,7 +306,9 @@ class CritiquesWithEmptyVignettesAllowedTest extends CritiquesAvisTestCase { + class CritiquesHierarchicalByDomainViewTest extends CritiquesAvisTestCase { + protected $_prefs = ['type_module' => 'CRITIQUES', 'division' => 1, 'preferences' => ['rss_avis' => false, @@ -323,13 +335,13 @@ class CritiquesHierarchicalByDomainViewTest extends CritiquesAvisTestCase { Zend_Registry::set('sql', $sql); - $this->fixture('Class_Catalogue', + $this->fixture(Class_Catalogue::class, ['id' => 180, 'libelle' => 'THEME', - 'sous_domaines' => [$this->fixture('Class_Catalogue', + 'sous_domaines' => [$this->fixture(Class_Catalogue::class, ['id' => 1234, 'libelle' => 'Art']), - $this->fixture('Class_Catalogue', + $this->fixture(Class_Catalogue::class, ['id' => 1235, 'libelle' => 'Litterature'])]]); } @@ -350,3 +362,37 @@ class CritiquesHierarchicalByDomainViewTest extends CritiquesAvisTestCase { 'Litterature'); } } + + + + +class CritiquesWithEmptyNbWordsTest extends CritiquesAvisTestCase { + + protected $_prefs = ['type_module' => 'CRITIQUES', + 'division' => 1, + 'preferences' => ['rss_avis' => false, + 'only_img' => 0, + 'display_order' => 'Random', + 'titre' => '', + 'nb_aff_avis' => '3', + 'nb_words' => '', + 'boite' => null, + 'hierarchical' => '0', + 'id_catalogue' => '180']]; + + protected function _prepareFixtures() { + parent::_prepareFixtures(); + + $this->onLoaderOfModel(Class_AvisNotice::class) + ->whenCalled('getAvisFromPreferences') + ->answers([Class_AvisNotice::find(23)]); + } + + + /** @test */ + public function avisShouldBePresent() { + $this->assertXPathContentContains($this->html, + '//div[@class="contenu_critique"]/p', + 'Suspense intense tout au long de ce livre'); + } +} -- GitLab