diff --git a/application/modules/admin/controllers/ProfilController.php b/application/modules/admin/controllers/ProfilController.php index baa2910043483b4f22c5688b055696279277aadb..df7f74db9a27b1ba15741ddae86ff6585f348829 100644 --- a/application/modules/admin/controllers/ProfilController.php +++ b/application/modules/admin/controllers/ProfilController.php @@ -189,8 +189,7 @@ class Admin_ProfilController extends ZendAfi_Controller_Action { if(!$widgets = $this->_getParam('division' . $division)) continue; - - $widgets = explode(';', $widgets); + $widgets = array_filter(explode(';', $widgets)); foreach($widgets as $widget) { $config = explode('-', $widget); $id = $config[1]; diff --git a/tests/application/modules/admin/controllers/ProfilControllerPageAccueilTest.php b/tests/application/modules/admin/controllers/ProfilControllerPageAccueilTest.php index 19b11eb59072bb346d2ee6ca3ca9e15f6744d9fa..388dd97f3288aeb8a2ae652e620b03402c366e54 100644 --- a/tests/application/modules/admin/controllers/ProfilControllerPageAccueilTest.php +++ b/tests/application/modules/admin/controllers/ProfilControllerPageAccueilTest.php @@ -112,7 +112,7 @@ class Admin_ProfilControllerPageAccueilJeunesseTest extends Admin_ProfilControll /** @test **/ public function boxFiveFlotantShouldBePresent() { - $this->assertXPath('//ul[@id="box5"]'); + $this->assertXPath('//div[@data-division="5"]'); } @@ -124,72 +124,73 @@ class Admin_ProfilControllerPageAccueilJeunesseTest extends Admin_ProfilControll /** @test **/ public function boitePanierShouldBeInDivisionFive() { - $this->assertXPath('//ul[@id="box5"]/li[@id="PANIER"][@id_module="99"]//a[contains(@href, "admin/widget/edit-widget/id/99/id_profil/7")]'); + $this->assertXPath('//div[@data-division="5"]//li[contains(@data-value, "PANIER-99")]//a[contains(@href, "admin/widget/edit-widget/id/99/id_profil/7")]'); } /** @test */ public function boitePretsShouldBeAvailable() { - $this->assertXPathContentContains('//ul[@id="allItems"]/li[@id="PRETS"]','prêts'); + $this->assertXPathContentContains('//ul[@class="source_list"]/li[@data-value="PRETS-0"]','prêts'); } /** @test */ public function domainBrowserModuleShouldBeAvailable() { - $this->assertXPathContentContains('//ul[@id="allItems"]/li[@id="DOMAIN_BROWSER"]','domaines'); + $this->assertXPathContentContains('//li','domaines'); } + /** @test */ public function boitePretsShouldBeInDivisionOne() { - $this->assertXPath('//ul[@id="box1"]/li[@id="PRETS"][@id_module="9"]//a[contains(@href,"admin/widget/edit-widget/id/9/id_profil/7")]'); + $this->assertXPath('//div[@data-division="1"]//li[contains(@data-value, "PRETS")]//a[contains(@href,"admin/widget/edit-widget/id/9/id_profil/7")]'); } /** @test */ public function boiteReservationsShouldBeAvailable() { - $this->assertXPathContentContains('//ul[@id="allItems"]/li[@id="RESERVATIONS"]','réservations'); + $this->assertXPathContentContains('//li','réservations'); } /** @test */ public function boitePanierShouldBeAvailable() { - $this->assertXPathContentContains('//ul[@id="allItems"]/li[@id="PANIER"]','paniers'); + $this->assertXPathContentContains('//li','paniers'); } /** @test */ public function boiteReservationsShouldBeInDivisionOne() { - $this->assertXPath('//ul[@id="box1"]/li[@id="RESERVATIONS"][@id_module="8"]//a[contains(@href,"admin/widget/edit-widget/id/8")]'); + $this->assertXPath('//div[@data-division="1"]//li[@data-value="RESERVATIONS-8"]//a[contains(@href,"admin/widget/edit-widget/id/8")]'); } /** @test */ public function boiteHistoriqueRecherchesShouldBeAvailable() { - $this->assertXPathContentContains('//ul[@id="allItems"]/li[@id="HISTORIQUE_RECHERCHES"]','historique recherches'); + $this->assertXPathContentContains('//li','historique recherches'); } /** @test */ public function boiteActivitiesShouldBeAvailable() { - $this->assertXPathContentContains('//ul[@id="allItems"]/li[@id="ACTIVITIES_WIDGET"]','activités'); + $this->assertXPathContentContains('//li','activités'); } /** @test */ public function boiteActivitiesActionShouldBeActivitys() { - $this->assertXPath('//ul[@id="allItems"]/li[@id="ACTIVITIES_WIDGET"]//a[contains(@href, "admin/widget/edit-widget")]'); + $this->assertXPath('//li//a[contains(@href, "admin/widget/edit-widget")]'); } /** @test */ public function boiteNewsShouldBeInDivisionOne() { - $this->assertXPath('//ul[@id="box1"]/li[@id="NEWS"][@id_module="2"]'); + $this->assertXPath('//div[@data-division="1"]//li[contains(@data-value, "NEWS")]'); } /** @test */ public function boiteKiosqueShouldBeInDivisionTwo() { - $this->assertXPath('//ul[@id="box2"]/li[@id="KIOSQUE"][@id_module="3"]'); + $this->assertXPath('//div[@data-division="2"]//li[contains(@data-value, "KIOSQUE")]'); } @@ -201,15 +202,10 @@ class Admin_ProfilControllerPageAccueilJeunesseTest extends Admin_ProfilControll /** @test */ public function boiteCritiquesShouldBeInDivisionTwo() { - $this->assertXPath('//ul[@id="box2"]/li[@id="CRITIQUES"][@id_module="6"]'); + $this->assertXPath('//div[@data-division="2"]//li[contains(@data-value, "CRITIQUES")]') ; } - /** @test */ - public function preferencesBoiteKiosqueShouldBeEncodedInAttributeProprietes() { - $this->assertXPath('//li[@id_module="3"][contains(@proprietes,"nb_notices%3D12---only_img%3D1---aleatoire%3D1")]'); - } - /** @test **/ public function useParentCssCheckboxShouldBeChecked() { @@ -228,13 +224,11 @@ class Admin_ProfilControllerPageAccueilJeunesseTest extends Admin_ProfilControll $this->assertXPath('//input[@name="page_css"][contains(@value,"")]',$this->_response->getBody()); } + /** @test */ public function postingDataWithSitemapModification() { - $this - ->getRequest() - ->setMethod('POST') - ->setPost(array('sitemap' => 0)); - $this->dispatch('/admin/profil/accueil/id_profil/7'); + $this->postDispatch('/admin/profil/accueil/id_profil/7', ['libelle' => 'page', + 'sitemap' => 0]); $this->assertTrue($this->profil_wrapper->methodHasBeenCalled('save')); $this->assertRedirect('/admin/profil/accueil/id_profil/7'); @@ -242,6 +236,7 @@ class Admin_ProfilControllerPageAccueilJeunesseTest extends Admin_ProfilControll return $this->profil_jeunesse; } + /** * @depends postingDataWithSitemapModification * @test @@ -254,13 +249,9 @@ class Admin_ProfilControllerPageAccueilJeunesseTest extends Admin_ProfilControll /** @test */ public function postingDataWithNoModifications() { - $cfg_module = 'box1|2|NEWS|;box2|3|KIOSQUE|nb_notices=12---nb_analyse=36---only_img=1---;box2|6|CRITIQUES|'; - - $this - ->getRequest() - ->setMethod('POST') - ->setPost(array('saveContent' => $cfg_module)); - $this->dispatch('/admin/profil/accueil/id_profil/7'); + $this->postDispatch('/admin/profil/accueil/id_profil/7', ['libelle' => 'page', + 'division1' => 'NEWS-2', + 'division2' => 'KIOSQUE-3;CRITIQUES-6']); $this->assertTrue($this->profil_wrapper->methodHasBeenCalled('save')); $this->assertRedirect('/admin/profil/accueil/id_profil/7'); @@ -274,10 +265,7 @@ class Admin_ProfilControllerPageAccueilJeunesseTest extends Admin_ProfilControll * @test */ public function shouldPutDefaultNewsPrefereces($profil_jeunesse) { - $news = $profil_jeunesse->getModuleAccueilConfig(2, 'NEWS'); - $this->assertEquals(1, $news['division']); - $this->assertEquals('NEWS', $news['type_module']); - $this->assertEquals('Boite articles', $news['preferences']['titre']); + $this->assertContains('Boite articles', $profil_jeunesse->getModulePref(2)); } @@ -305,33 +293,19 @@ class Admin_ProfilControllerPageAccueilJeunesseTest extends Admin_ProfilControll } - /** @test */ - public function postingDataWithBoiteDeuxColonnes() { - $cfg_module = 'box2|3|KIOSQUE|nb_notices=12/nb_analyse=36/only_img=1/;box2|6|CRITIQUES|;box2|new|CONTENEUR_DEUX_COLONNES|'; - - $this - ->getRequest() - ->setMethod('POST') - ->setPost(array('saveContent' => $cfg_module)); - $this->dispatch('/admin/profil/accueil/id_profil/7'); - - $this->assertTrue($this->profil_wrapper->methodHasBeenCalled('save')); - $this->assertRedirect('/admin/profil/accueil/id_profil/7'); - - return $this->profil_jeunesse; - } - - /** - * @depends postingDataWithBoiteDeuxColonnes * @test */ - public function boiteDeuxColonnesShouldGetIdFourAndDefaultValues($profil_jeunesse) { - $b2cols = $profil_jeunesse->getModuleAccueilConfig(4, 'CONTENEUR_DEUX_COLONNES'); - $this->assertEquals(2, $b2cols['division']); - $this->assertEquals('CONTENEUR_DEUX_COLONNES', $b2cols['type_module']); - $this->assertEquals('NEWS', $b2cols['preferences']['col_gauche_type']); - $this->assertEquals('CRITIQUES', $b2cols['preferences']['col_droite_type']); + public function boiteDeuxColonnesShouldGetIdFourAndDefaultValues() { + $this->postDispatch('/admin/profil/accueil/id_profil/7', + ['libelle' => 'page', + 'division2' => 'KIOSQUE-3;CRITIQUES-6;CONTENEUR_DEUX_COLONNES-0']); + + $profil_jeunesse = Class_Profil::find(7); + $b2cols = $profil_jeunesse->getModulePref(4); + $this->assertContains('Boite deux colonnes', $b2cols); + $this->assertContains('NEWS', $b2cols); + $this->assertContains('CRITIQUES', $b2cols); } } @@ -681,28 +655,18 @@ class Admin_ProfilControllerPageAccueilRegression45558Test extends Admin_ProfilC public function setUp() { parent::setUp(); - $post_cfg = 'box1|2|NEWS|menu%3D15-1---afficher_titre%3D1---menu_deplie%3D0---new_html%3D0---boite%3D---titre%3D%2A%2A+Nouvelle+bo%C3%AEte+%2A%2A---id_module%3D3---Valider%3DValider---%3D'; - - $this->fixture('Class_Profil', ['id' => 23, 'libelle' => 'My page']); + $this->postDispatch('/admin/profil/accueil/id_profil/23', - ['saveContent' => $post_cfg]); + ['libelle' => 'My page', + 'division1' => 'NEWS-0;']); } /** @test */ public function menuWidgetTitleShouldBeNouvelleBoite() { - $this->assertEquals('** Nouvelle boîte **', - Class_Profil::find(23)->getModuleAccueilPreferences(2, 'MENU')['titre']); - } - - - /** @test */ - public function menuWidgetAfficherTitreShouldBeOne() { - $this->assertEquals('1', - Class_Profil::find(23)->getModuleAccueilPreferences(2, 'MENU')['afficher_titre']); + $this->assertContains('Boite articles', + Class_Profil::find(23)->getModulePref(1)); } } - -?> \ No newline at end of file diff --git a/tests/application/modules/admin/controllers/ProfilControllerTest.php b/tests/application/modules/admin/controllers/ProfilControllerTest.php index 4374e270d5187f8c13e53ecbfd57eef44a9c6b30..87efe78d2d7508b660f5dffdacd8bcdc15d34560 100644 --- a/tests/application/modules/admin/controllers/ProfilControllerTest.php +++ b/tests/application/modules/admin/controllers/ProfilControllerTest.php @@ -1043,13 +1043,11 @@ class Admin_ProfilControllerPostAccueilPageMusiqueTest extends Admin_ProfilContr $cfg_module = 'box1|new|KIOSQUE|nb_notices=12/nb_analyse=36/only_img=1/;box2|new|CRITIQUES|'; - $this - ->getRequest() - ->setMethod('POST') - ->setPost(['saveContent' => $cfg_module, - 'libelle' => 'Bonne Musique', - 'rewrite_url' => 'music']); - $this->dispatch('/admin/profil/accueil/id_profil/23'); + $this->postDispatch('/admin/profil/accueil/id_profil/23', + ['libelle' => 'Bonne Musique', + 'rewrite_url' => 'music', + 'division1' => 'KIOSQUE-0', + 'division2' => 'CRITIQUES-0']); } @@ -1614,15 +1612,15 @@ class ProfilControllerPostDispatchAccueilProfilTest extends Admin_AbstractContro ['libelle' => 'new title', 'use_parent_css' => 1, 'page_css' => '', - 'saveContent' => 'box2|5|CALENDAR|titre=Calendrier+des+animations---id_categorie=---display_cat_select=---display_event_info=bib---rss_avis=0---display_next_event=1---display_order=EventDebut---display_mode=Title---nb_events=3---display_calendar=1---mode-affichage=simple---event_filter=none---enabled_filters=date;place;custom_field_1;custom_field_2---boite=---id_items=---Valider=Valider---;box1|1|RESERVATIONS|titre=Mes+réservations---boite=---=---;box2|2|PRETS|titre=Mes+prêts---boite=---=---;box2|3|NEWSLETTERS|titre=Newsletters---boite=---=---;box2|4|MULTIMEDIA|titre=Postes+multimédia---boite=---=---']); + 'division1' => 'CALENDAR-1', + 'division2' => 'CALENDAR-0;PRETS-0;NEWSLETTERS-0;MULTIMEDIA-0']); } /** @test */ public function cfgModuleShouldContainsCalendarFiltersDatePlaceAndCustomFilters() { - $prefs = Class_Profil::find(1)->getModuleAccueilPreferences(5, 'CALENDAR'); - $this->assertEquals('date;place;custom_field_1;custom_field_2', - $prefs['enabled_filters']); + $prefs = Class_Profil::find(1)->getModuleAccueilPreferences(2, 'CALENDAR'); + $this->assertContains('Boite calendrier', $prefs); }