From 9c5e9ab99956fa1f9948a9278a90dad59cbef177 Mon Sep 17 00:00:00 2001
From: gloas <gloas@afi-sa.fr>
Date: Tue, 9 May 2017 11:23:58 +0200
Subject: [PATCH] dev #59734 fix tests failures

---
 .../admin/controllers/ProfilController.php    |   3 +-
 .../ProfilControllerPageAccueilTest.php       | 112 ++++++------------
 .../controllers/ProfilControllerTest.php      |  20 ++--
 3 files changed, 48 insertions(+), 87 deletions(-)

diff --git a/application/modules/admin/controllers/ProfilController.php b/application/modules/admin/controllers/ProfilController.php
index baa29100434..df7f74db9a2 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 19b11eb5907..388dd97f328 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 4374e270d51..87efe78d2d7 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);
 
   }
 
-- 
GitLab