diff --git a/VERSIONS_HOTLINE/116263 b/VERSIONS_HOTLINE/116263 new file mode 100644 index 0000000000000000000000000000000000000000..885d005c286f4b29215e994849bc29a1a2a35ac1 --- /dev/null +++ b/VERSIONS_HOTLINE/116263 @@ -0,0 +1 @@ + - ticket #116263 : Magasin de thèmes : correction du filtrage des articles selon leur statut lorsque le WORKFLOW est activé \ No newline at end of file diff --git a/library/templates/Intonation/Library/Widget/Carousel/Article/View.php b/library/templates/Intonation/Library/Widget/Carousel/Article/View.php index cb202e118b58e7a1d9b23e80f143ccf868ce2ddd..432ab35358d7761349ea497c93296288f02d1ca4 100644 --- a/library/templates/Intonation/Library/Widget/Carousel/Article/View.php +++ b/library/templates/Intonation/Library/Widget/Carousel/Article/View.php @@ -29,7 +29,7 @@ class Intonation_Library_Widget_Carousel_Article_View extends Intonation_Library $loader = Class_Article::getLoader(); $this->preferences['size'] = 100; $this->_articles = $loader->getArticlesByPreferences($this->preferences); - return $this->_articles; + return Class_Article::filterByLocaleAndWorkflow($this->_articles); } diff --git a/tests/scenarios/Templates/TemplatesArticlesTest.php b/tests/scenarios/Templates/TemplatesArticlesTest.php index d430f8ed19ad61e9dd9c5f67a9e03c54cdbe8546..3a939e4cf0532d0cd501e7a7d04d617eda2841bf 100644 --- a/tests/scenarios/Templates/TemplatesArticlesTest.php +++ b/tests/scenarios/Templates/TemplatesArticlesTest.php @@ -33,7 +33,14 @@ abstract class TemplatesArticlesWidgetTestCase extends Admin_AbstractControllerT 'libelle' => 'My page']) ->setBoiteOfTypeInDivision(2, Intonation_Library_Widget_Carousel_Article_Definition::CODE, - ['all_layout' => Intonation_Library_Widget_Carousel_Definition::LISTING]) + ['all_layout' => Intonation_Library_Widget_Carousel_Definition::LISTING, + 'order' => 'Selection', + 'id_items' => '5-6-7', + 'rss' => 1, + 'link_to_all' => 1, + 'embeded_code'=> 1, + 'IntonationShowFooter' => 1, + 'layout' => 'multiple_carousel']) ->assertSave(); $this->fixture('Class_Article', @@ -94,33 +101,79 @@ class TemplatesArticlesEditWidgetTest extends TemplatesArticlesWidgetTestCase { class TemplatesArticlesWidgetTest extends TemplatesArticlesWidgetTestCase { public function setUp() { parent::setUp(); - $widget = ((new Class_Systeme_Widget_Widget) - ->setId(1) - ->setProfileId(1) - ->load()); - $widget - ->setNewDatas(['order' => 'Selection', - 'id_items' => '5-6-7', - 'rss' => 1, - 'link_to_all' => 1, - 'embeded_code'=> 1, - 'IntonationShowFooter' => 1, - 'layout' => 'multiple_carousel']) - ->updateProfile(); $this ->onLoaderOfModel('Class_Article') + ->whenCalled('getArticlesByPreferences') + ->answers(Class_Article::findAllBy(['id_article' => [4, 6, 7]])); + + + $this->dispatch('/opac/index/index/id_profil/1', true); + } + + + public function articleTitles() { + return [ + ['Winter'], + ['Sprechen Sie Deutsch'], + ['Parlez-vous français'] + ]; + } + + /** + * @test + * @dataProvider articleTitles + */ + public function widgetCarouselArticleShouldContainsTitle($title) { + $this->assertXPathContentContains('//div[contains(@class, "boite news")]//div[@class="card-title"]', + $title); + } +} + + + + +class TemplatesArticlesWidgetWithWorklowTest extends TemplatesArticlesWidgetTestCase { + public function setUp() { + parent::setUp(); + Class_AdminVar::set('WORKFLOW', 1); + + Class_Article::find(4)->beValidated()->assertSave(); + Class_Article::find(6)->beDraft()->assertSave(); + Class_Article::find(7)->beValidationPending()->assertSave(); + + $this + ->onLoaderOfModel('Class_Article') ->whenCalled('getArticlesByPreferences') ->answers(Class_Article::findAllBy(['id_article' => [4, 6, 7]])); + + + ZendAfi_Auth::getInstance()->clearIdentity(); + $this->dispatch('/opac/index/index/id_profil/1', true); } /** @test */ - public function dispatchFrontShouldContainsSprechenSieDeutsh() { - $this->assertXPathContentContains('//div', 'Sprechen Sie Deutsch ?'); + public function widgetCarouselShouldContainsValidatedArticleWinter() { + $this->assertXPathContentContains('//div[contains(@class, "boite news")]//div[@class="card-title"]', + 'Winter'); + } + + + /** @test */ + public function widgetCarouselShouldNotContainsDraftArticleSprechenSieDeutsh() { + $this->assertNotXPathContentContains('//div[contains(@class, "boite news")]//div[@class="card-title"]', + 'Sprechen Sie Deutsch ?'); + } + + + /** @test */ + public function widgetCarouselShouldNotContainsPendingArticleParlezVousFrancais() { + $this->assertNotXPathContentContains('//div[contains(@class, "boite news")]//div[@class="card-title"]', + 'Parlez-vous français ?'); } } @@ -309,4 +362,4 @@ class TemplatesArticlesMapTest extends TemplatesArticlesWithLocationTestCase { public function dataOSMShouldNotContainsArticleLostInTranslation() { $this->assertNotXPath('//div[contains(@data-osm, "Lost in translation")]'); } -} \ No newline at end of file +}