From 0f7bc64cce348429ff663fd07d3f0db3a90c6c91 Mon Sep 17 00:00:00 2001
From: pbarroca <pbarroca@afi-sa.fr>
Date: Fri, 7 Apr 2017 12:15:42 +0200
Subject: [PATCH] hotline #59056 : fix rt

---
 library/Class/User/SearchCriteria.php         | 16 +++++-----
 .../admin/controllers/UsersControllerTest.php | 32 ++++---------------
 2 files changed, 14 insertions(+), 34 deletions(-)

diff --git a/library/Class/User/SearchCriteria.php b/library/Class/User/SearchCriteria.php
index 8483521dc27..8d781c86462 100644
--- a/library/Class/User/SearchCriteria.php
+++ b/library/Class/User/SearchCriteria.php
@@ -64,14 +64,14 @@ class Class_User_SearchCriteria {
       ->setAttrib('style', 'position: relative')
       ->setMethod('get');
 
-    $names = [];
-    foreach($this->_criteria as $criteria) {
-      if (!$element = $criteria->getElement())
-        continue;
-
-      $form->addElement($criteria->getElement());
-      $names[] = $criteria->getName();
-    }
+    $names = (new Storm_Collection($this->_criteria))
+      ->select(function($c) { return $c->getElement(); })
+      ->eachDo(function($c) use ($form) { $form->addElement($c->getElement()); })
+      ->collect(function($c) { return $c->getName(); })
+      ->getArrayCopy();
+
+    if (!$names)
+      return $form;
 
     $form->addDisplayGroup($names,
                            'search_group',
diff --git a/tests/application/modules/admin/controllers/UsersControllerTest.php b/tests/application/modules/admin/controllers/UsersControllerTest.php
index 9ea7778d7fe..d4e011dc380 100644
--- a/tests/application/modules/admin/controllers/UsersControllerTest.php
+++ b/tests/application/modules/admin/controllers/UsersControllerTest.php
@@ -1050,7 +1050,7 @@ class Admin_UsersControllerChangeAdminSkinActionTest extends Admin_AbstractContr
 
 
 
-abstract class UsersControllerWithAdminPortal extends Admin_AbstractControllerTestCase {
+class UsersControllerWithAdminPortalTest extends Admin_AbstractControllerTestCase {
   protected $_storm_default_to_volatile = true;
 
   public function setUp() {
@@ -1068,15 +1068,6 @@ abstract class UsersControllerWithAdminPortal extends Admin_AbstractControllerTe
                                 'login' => 'tim',
                                 'password' => 'rim',
                                 'role_level' => ZendAfi_Acl_AdminControllerRoles::ADMIN_PORTAIL]));
-  }
-}
-
-
-
-
-class UsersControllerIndexWithAdminPortal extends UsersControllerWithAdminPortal {
-  public function setUp() {
-    parent::setUp();
 
     $this->onLoaderOfModel('Class_Users')
          ->whenCalled('findAllBy')
@@ -1088,31 +1079,20 @@ class UsersControllerIndexWithAdminPortal extends UsersControllerWithAdminPortal
          ->with(['where' => '(role_level <= ' . ZendAfi_Acl_AdminControllerRoles::ADMIN_PORTAIL . ')'])
          ->answers(1)
       ;
-
-    $this->dispatch('/admin/users', true);
   }
 
 
   /** @test */
-  public function superAdminEditLinkShouldNotBePresent() {
+  public function superAdminEditLinkShouldNotBePresentInIndex() {
+    $this->dispatch('/admin/users', true);
     $this->assertNotXPath('//a[contains(@href, "/users/edit/id/1")]',
                           $this->_response->getBody());
   }
-}
-
-
-
-
-class UsersControllerEditSuperAdminWithAdminPortal extends UsersControllerWithAdminPortal {
-  public function setUp() {
-    parent::setUp();
-
-    $this->dispatch('/admin/users/edit/id/1', true);
-  }
 
 
   /** @test */
-  public function shouldRedirectToIndex() {
+  public function tryingToEditSuperAdminshouldRedirectToIndex() {
+    $this->dispatch('/admin/users/edit/id/1', true);
     $this->assertRedirectTo('/admin/users/index');
   }
-}
\ No newline at end of file
+}
-- 
GitLab