diff --git a/VERSIONS_HOTLINE/181902 b/VERSIONS_HOTLINE/181902 new file mode 100644 index 0000000000000000000000000000000000000000..1b613c787e81e67726197873e39bb3ccf419c378 --- /dev/null +++ b/VERSIONS_HOTLINE/181902 @@ -0,0 +1 @@ + - correctif #181902 : Administration : Avec les droits "Administration: accès en lecture aux fiches adhérents SIGB", un administrateur bibliothèque peut aller sur la gestion des utilisateurs, filtré par sa propre bibliothèque \ No newline at end of file diff --git a/library/Class/User/SearchCriteria.php b/library/Class/User/SearchCriteria.php index 7c0b01de92e4da6f9e6ef672dd1e11cb38d57f9f..5c947f202954b8904b6ad85b1e2bc6fc2d3c1625 100644 --- a/library/Class/User/SearchCriteria.php +++ b/library/Class/User/SearchCriteria.php @@ -51,12 +51,30 @@ class Class_User_SearchCriteria extends Class_SearchCriteria { class Class_User_SearchCriteriaLibrary extends Class_SearchCriteria_Select { + protected $_name = 'id_site'; public function buildElement() { - return parent::buildElement() - ->setLabel($this->_('Bibliothèque')) - ->setMultiOptions(['all' => $this->_('Toutes')] + Class_Bib::findAllLabels()); + return $this->_isAdminBib() + ? null + : (parent::buildElement() + ->setLabel($this->_('Bibliothèque')) + ->setMultiOptions(['all' => $this->_('Toutes')] + Class_Bib::findAllLabels())); + } + + + public function acceptSearchVisitor($visitor) : Class_SearchCriteria_Abstract { + if ( ! $this->_isAdminBib()) + return parent::acceptSearchVisitor($visitor); + + $visitor->addParam($this->_name, Class_Users::getIdentity() + ->getIdSite()); + return $this; + } + + + protected function _isAdminBib() : bool { + return ($user = Class_Users::getIdentity()) && $user->isAdminBib(); } } @@ -70,13 +88,13 @@ class Class_User_SearchCriteriaValidSubscription $_name = 'valid_subscription', $_value = 0; - public static function newFor($params){ return (Class_User_Membership::isUserMembershipContext()) ? Class_User_SearchCriteriaValidSubscriptionUserMembership::newFor($params) : Class_User_SearchCriteriaValidSubscriptionUser::newFor($params); } + public function buildElement() { return new Zend_Form_Element_Checkbox($this->getName(), ['label' => $this->_('Abonnement valide'), diff --git a/tests/application/modules/admin/controllers/UsersControllerRolesTest.php b/tests/application/modules/admin/controllers/UsersControllerRolesTest.php new file mode 100644 index 0000000000000000000000000000000000000000..f5650b6087a01cb908e492b3a4b1719bed29dda3 --- /dev/null +++ b/tests/application/modules/admin/controllers/UsersControllerRolesTest.php @@ -0,0 +1,157 @@ +<?php +/** + * Copyright (c) 2012-2023, Agence Française Informatique (AFI). All rights reserved. + * + * BOKEH is free software; you can redistribute it and/or modify + * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by + * the Free Software Foundation. + * + * There are special exceptions to the terms and conditions of the AGPL as it + * is applied to this software (see README file). + * + * BOKEH is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE + * along with BOKEH; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +abstract class UsersControllerRolesTestCase + extends Admin_AbstractControllerTestCase { + + public function setUp() { + parent::setUp(); + + $this->fixture(Class_Bib::class, + ['id' => 1, + 'libelle' => 'Annecy']); + $this->fixture(Class_Bib::class, + ['id' => 2, + 'libelle' => 'Meythet']); + + $this->fixture(Class_Users::class, + ['id' => 10, + 'idabon' => '65656', + 'login' => 'bobo', + 'password' => 'oo', + 'mail' => 'bobo@bo.com', + 'id_site' => 1, + 'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB, + 'last_login' => 0]); + $this->fixture(Class_Users::class, + ['id' => 20, + 'idabon' => '656789', + 'login' => 'tutu', + 'password' => 'ru', + 'mail' => 'tutu@ru.com', + 'id_site' => 2, + 'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB, + 'last_login' => 0]); + + ZendAfi_Auth::getInstance()->logUser($this->_createUser()); + + $this->dispatch('/admin/users'); + } + + + protected function _createUser() : ?Class_Users { + return null; + } +} + + + + +class UsersControllerRolesAdminBibTest + extends UsersControllerRolesTestCase { + + protected function _createUser() : ?Class_Users { + $admin_bib = $this->fixture(Class_Users::class, + ['id' => 1, + 'login' => 'toto', + 'password' => 'ro', + 'mail' => 'toto@ro.com', + 'id_site' => 1, + 'role_level' => ZendAfi_Acl_AdminControllerRoles::ADMIN_BIB, + 'last_login' => 0]); + + $user_group = $this->fixture(Class_UserGroup::class, + ['id' => 28, + 'libelle' => 'Admin Bib', + 'rights' => [Class_UserGroup::RIGHT_USER_SIGB_USER_READ]]); + + $admin_bib->addUserGroup($user_group); + + return $admin_bib; + } + + + /** @test */ + public function pageShouldContainsH1_GestionDesUtilisateurs() { + $this->assertXPathContentContains('//h1', 'Gestion des utilisateurs'); + } + + + /** @test */ + public function inputBibliothequeShouldNotExist() { + $this->assertNotXPath('//select[@id="search_id_site"]'); + } + + + /** @test */ + public function usersTableShouldContainIdentifiantBobo() { + $this->assertXPath('//table[@id="users_table"]/tbody/tr/td[text()="bobo"]'); + } + + + /** @test */ + public function usersTableShouldNotContainIdentifiantTutu() { + $this->assertNotXPath('//table[@id="users_table"]//td[text()="tutu"]'); + } +} + + + + +class UsersControllerRolesAdminPortailTest + extends UsersControllerRolesTestCase { + + protected function _createUser() : ?Class_Users { + return $this->fixture(Class_Users::class, + ['id' => 1, + 'login' => 'toto', + 'password' => 'ro', + 'mail' => 'toto@ro.com', + 'id_site' => 1, + 'role_level' => ZendAfi_Acl_AdminControllerRoles::ADMIN_PORTAIL, + 'last_login' => 0]); + } + + + /** @test */ + public function pageShouldContainsH1_GestionDesUtilisateurs() { + $this->assertXPathContentContains('//h1', 'Gestion des utilisateurs'); + } + + + /** @test */ + public function inputBibliothequeShouldExist() { + $this->assertXPath('//select[@id="search_id_site"]'); + } + + + /** @test */ + public function usersTableShouldContainIdentifiantBobo() { + $this->assertXPath('//table[@id="users_table"]/tbody/tr/td[text()="bobo"]'); + } + + + /** @test */ + public function usersTableShouldContainIdentifiantTutu() { + $this->assertXPath('//table[@id="users_table"]/tbody/tr/td[text()="tutu"]'); + } +} diff --git a/tests/scenarios/RendezVous/UsergroupAgendaAdminTest.php b/tests/scenarios/RendezVous/UsergroupAgendaAdminTest.php index 1f1c63e74b49d477bb87a7e38b6924f60024f50d..da424053c98ddf22fef8819da4d2a56607ff8c79 100644 --- a/tests/scenarios/RendezVous/UsergroupAgendaAdminTest.php +++ b/tests/scenarios/RendezVous/UsergroupAgendaAdminTest.php @@ -21,12 +21,12 @@ class UsergroupAgendaAdminIndexInvalidTest extends Admin_AbstractControllerTestCase { - protected $_storm_default_to_volatile = true; public function setUp() { parent::setUp(); + ZendAfi_Auth::getInstance() - ->logUser($this->fixture('Class_Users', + ->logUser($this->fixture(Class_Users::class, ['id' => 34, 'login' => 'adminportail', 'password' => 's3cr3t \o/', @@ -52,21 +52,25 @@ class UsergroupAgendaAdminIndexInvalidTest extends Admin_AbstractControllerTestC -abstract class UsergroupAgendaAdminModoPortailLoggedTestCase extends Admin_AbstractControllerTestCase { - protected $_storm_default_to_volatile = true; + +abstract class UsergroupAgendaAdminModoPortailLoggedTestCase + extends Admin_AbstractControllerTestCase { public function setUp() { parent::setUp(); + Class_AdminVar::set('ENABLE_RENDEZ_VOUS', 1); - $group = $this->fixture('Class_UserGroup_Agenda', ['id' => 4, - 'libelle'=>"UtilisateursRendezvous"]); + $group = $this->fixture(Class_UserGroup_Agenda::class, + ['id' => 4, + 'libelle' => 'UtilisateursRendezvous']); $group->addRight(Class_UserGroup::RIGHT_USER_RENDEZ_VOUS); - $user = $this->fixture('Class_Users', + $user = $this->fixture(Class_Users::class, ['id' => 34, 'login' => 'adminportail', 'password' => 's3cr3t \o/', + 'id_site' => 4, 'role_level' => ZendAfi_Acl_AdminControllerRoles::MODO_PORTAIL, 'user_groups' => [$group]]); @@ -76,12 +80,15 @@ abstract class UsergroupAgendaAdminModoPortailLoggedTestCase extends Admin_Abstr + /** @see https://forge.afi-sa.net/issues/95499 */ class UsergroupAgendaAdminIndexWithoutCustomFieldsTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { + public function setUp() { parent::setUp(); - $groupagenda = $this->fixture('Class_UserGroup_Agenda', + + $groupagenda = $this->fixture(Class_UserGroup_Agenda::class, ['id' => 5, 'libelle' => 'MonAgenda', 'model_class' => 'Class_RendezVous']); @@ -102,14 +109,16 @@ class UsergroupAgendaAdminIndexWithoutCustomFieldsTest class UsergroupAgendaAdminIndexValidTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { + public function setUp() { parent::setUp(); - $groupagenda = $this->fixture('Class_UserGroup_Agenda', + + $groupagenda = $this->fixture(Class_UserGroup_Agenda::class, ['id' => 5, 'libelle' => 'MonAgenda', 'model_class' => 'Class_RendezVous']); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 7, 'label' => 'Note', 'field_type' => Class_CustomField_Meta::TEXT_INPUT, @@ -117,7 +126,7 @@ class UsergroupAgendaAdminIndexValidTest extends UsergroupAgendaAdminModoPortail 'priority' => 5, 'model' => 'UserGroup_Agenda']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 32, 'custom_field_id' => 7, 'value' => 'Ma petite Note', @@ -186,18 +195,21 @@ class UsergroupAgendaAdminIndexValidTest extends UsergroupAgendaAdminModoPortail + class UsergroupAgendaAdminDeleteTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { + public function setUp() { parent::setUp(); - $this->fixture('Class_UserGroup_Agenda', ['id' => 43, - 'model_class'=> 'Class_RendezVous', - 'libelle' => "MonSuperAgenda"]); + $this->fixture(Class_UserGroup_Agenda::class, + ['id' => 43, + 'model_class' => 'Class_RendezVous', + 'libelle' => "MonSuperAgenda"]); - $this->fixture('Class_RendezVous', + $this->fixture(Class_RendezVous::class, ['id' => 4, 'agenda' => Class_UserGroup_Agenda::find(43), - 'location' => $this->fixture('Class_Lieu', + 'location' => $this->fixture(Class_Lieu::class, ['id' => 8, 'libelle' => 'Bellevue']), 'date' => '2019-03-19', @@ -225,19 +237,20 @@ class UsergroupAgendaAdminDeleteTest extends UsergroupAgendaAdminModoPortailLogg class UsergroupAgendaAdminAllTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { + public function setUp() { parent::setUp(); - $this->fixture('Class_UserGroup_Agenda', + $this->fixture(Class_UserGroup_Agenda::class, ['id' => 43, - 'model_class'=> 'Class_RendezVous', + 'model_class' => 'Class_RendezVous', 'libelle' => "MonSuperAgenda"]); - $this->fixture('Class_RendezVous', + $this->fixture(Class_RendezVous::class, ['id' => 4, 'agenda' => Class_UserGroup_Agenda::find(43), 'group_id' => 43, - 'location' => $this->fixture('Class_Lieu', + 'location' => $this->fixture(Class_Lieu::class, ['id' => 8, 'libelle' => 'Bellevue']), 'date' => '2019-03-19', @@ -245,11 +258,11 @@ class UsergroupAgendaAdminAllTest extends UsergroupAgendaAdminModoPortailLoggedT 'end_time' => '10:30', 'comment' => 'with Arnaud']); - $this->dispatch('/admin/usergroup-agenda/all'); } - protected function lastCallOnFindallByRendezvous(){ + + protected function lastCallOnFindallByRendezvous() { Class_RendezVous::getFirstAttributeForLastCallOn('findAllBy'); } @@ -340,23 +353,27 @@ class UsergroupAgendaAdminAllTest extends UsergroupAgendaAdminModoPortailLoggedT + class UsergroupAgendaAdminAllSearchTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { protected $_users_params = []; public function setUp() { parent::setUp(); - $this->fixture('Class_UserGroup_Agenda', ['id' => 43, - 'model_class'=> 'Class_RendezVous', - 'libelle' => "MonSuperAgenda"]); - $this->fixture('Class_UserGroup', ['id' => 43, - 'model_class'=> 'Class_RendezVous', - 'libelle' => "MonSuperAgenda"]); + $this->fixture(Class_UserGroup_Agenda::class, + ['id' => 43, + 'model_class'=> 'Class_RendezVous', + 'libelle' => "MonSuperAgenda"]); + + $this->fixture(Class_UserGroup::class, + ['id' => 43, + 'model_class'=> 'Class_RendezVous', + 'libelle' => "MonSuperAgenda"]); - $this->fixture('Class_RendezVous', + $this->fixture(Class_RendezVous::class, ['id' => 4, 'agenda' => Class_UserGroup_Agenda::find(43), - 'location' => $this->fixture('Class_Lieu', + 'location' => $this->fixture(Class_Lieu::class, ['id' => 8, 'libelle' => 'Bellevue']), 'date' => '2019-03-19', @@ -368,7 +385,7 @@ class UsergroupAgendaAdminAllSearchTest extends UsergroupAgendaAdminModoPortailL ->whenCalled('findAllBy')->answers([]) ->whenCalled('countBy')->answers(0); - $arcadia = $this->fixture('Class_Users', + $arcadia = $this->fixture(Class_Users::class, ['id' => 999, 'login' => 'Arcadia', 'password' => '!Cosmos', @@ -376,17 +393,17 @@ class UsergroupAgendaAdminAllSearchTest extends UsergroupAgendaAdminModoPortailL $this->onLoaderOfModel('Class_UserGroup_Agenda'); - $this->fixture('Class_Lieu', + $this->fixture(Class_Lieu::class, ['id' => 3, 'libelle' => 'Arcadia']); $this->onLoaderOfModel('Class_Users') ->whenCalled('findAllBy') ->willDo(function($params) use($arcadia) - { - $this->_users_params = $params; - return [ $arcadia ]; - }); + { + $this->_users_params = $params; + return [ $arcadia ]; + }); Class_RendezVous_SearchCriteria_Date::setTimeSource(new TimeSourceForTest('2019-03-27 11:46:18')); } @@ -512,9 +529,12 @@ class UsergroupAgendaAdminAllSearchTest extends UsergroupAgendaAdminModoPortailL + class UsergroupAgendaAdminAddActionTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { + public function setUp() { parent::setUp(); + $this->dispatch('/admin/usergroup-agenda/add'); } @@ -535,27 +555,29 @@ class UsergroupAgendaAdminAddActionTest extends UsergroupAgendaAdminModoPortailL /** @test */ public function currentUsersTableShouldBePresent() { - $this->assertXPath('//table[@id="current_user_selection_users"]', $this->_response->getBody()); + $this->assertXPath('//table[@id="current_user_selection_users"]'); } /** @test */ public function currentUsersTableShouldContainsActionColumn() { - $this->assertXPathContentContains('//table[@id="current_user_selection_users"]//thead//th',"Actions", $this->_response->getBody()); + $this->assertXPathContentContains('//table[@id="current_user_selection_users"]//thead//th',"Actions"); } /** @test */ public function currentUsersTableShouldContainAucunParticipant() { $this->assertXPathContentContains('//table[@id="current_user_selection_users"][contains(@data-emptymessage, "Aucun participant")]//td', - "Aucun participant", - $this->_response->getBody()); + "Aucun participant"); } } -class UsergroupAgendaAdminUserSelectActionTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { + +class UsergroupAgendaAdminUserSelectActionTest + extends UsergroupAgendaAdminModoPortailLoggedTestCase { + public function setUp() { parent::setUp(); @@ -604,13 +626,15 @@ class UsergroupAgendaAdminUserSelectActionTest extends UsergroupAgendaAdminModoP + class UsergroupAgendaAdminPostAddActionTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { + protected $_created_group; public function setUp() { parent::setUp(); - $this->fixture('Class_Users', + $this->fixture(Class_Users::class, ['id' => 35, 'login' => 'padawan', 'id_site' => 4, @@ -647,6 +671,7 @@ class UsergroupAgendaAdminPostAddActionTest extends UsergroupAgendaAdminModoPort + class UsergroupAgendaAdminEditActionTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { @@ -699,13 +724,14 @@ class UsergroupAgendaAdminEditActionTest + class UsergroupAgendaAdminAllWithCustomFieldsTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { public function setUp() { parent::setUp(); - $this->fixture('Class_Users', + $this->fixture(Class_Users::class, ['id' => 35, 'login' => 'padawan', 'id_site' => 4, @@ -714,22 +740,22 @@ class UsergroupAgendaAdminAllWithCustomFieldsTest 'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB]); - $this->fixture('Class_UserGroup', + $this->fixture(Class_UserGroup::class, ['id' => 43, 'model_class'=> 'Class_RendezVous', 'libelle' => "MonSuperAgenda", 'users' => [Class_Users::find(35)]]); - $this->fixture('Class_UserGroup_Agenda', + $this->fixture(Class_UserGroup_Agenda::class, ['id' => 43, 'model_class'=> 'Class_RendezVous', 'libelle' => "MonSuperAgenda", 'users' => [Class_Users::find(35)]]); - $this->fixture('Class_RendezVous', + $this->fixture(Class_RendezVous::class, ['id' => 4, 'agenda' => Class_UserGroup::find(43), - 'location' => $this->fixture('Class_Lieu', + 'location' => $this->fixture(Class_Lieu::class, ['id' => 8, 'libelle' => 'Bellevue']), 'date' => '2019-03-19', @@ -737,27 +763,27 @@ class UsergroupAgendaAdminAllWithCustomFieldsTest 'end_time' => '10:30', 'comment' => 'with Arnaud']); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 5, 'type' => Class_CustomField_Meta::TEXT_INPUT, 'label' => 'Secteur', 'model' => 'UserGroup_Agenda']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 12, 'model_id' => 43, 'custom_field_id' => 5, 'value' => 'Yonne Nord' ]); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 7, 'priority' => 5, 'label' => 'Notes', 'field_type' => Class_CustomField_Meta::TEXT_INPUT, 'model' => 'RendezVous']); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 11, 'priority' => 5, 'label' => 'Public', @@ -765,7 +791,7 @@ class UsergroupAgendaAdminAllWithCustomFieldsTest 'options_list' => 'Adultes; Enfants; Adolescent; ', 'model' => 'RendezVous']); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 12, 'priority' => 5, 'label' => 'CSP', @@ -773,40 +799,40 @@ class UsergroupAgendaAdminAllWithCustomFieldsTest 'options_list' => 'Pro; Sans Emploi; Test; ', 'model' => 'RendezVous']); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 10, 'priority' => 5, 'label' => 'Date suivi', 'field_type' => Class_CustomField_Meta::DATE, 'model' => 'RendezVous']); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 9, 'priority' => 5, 'label' => 'CheckList Préparation', 'field_type' => Class_CustomField_Meta::TEXT_AREA, 'model' => 'RendezVous']); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 8, 'priority' => 5, 'label' => 'Description Détaillée', 'field_type' => Class_CustomField_Meta::CKEDITOR, 'model' => 'RendezVous']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 25, 'custom_field_id' => 7, 'model_id' => 4, 'value' => 'ma blue note jolie']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 26, 'custom_field_id' => 11, 'model_id' => 5, 'value' => 'Adultes']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 27, 'custom_field_id' => 12, 'model_id' => 4, @@ -817,7 +843,6 @@ class UsergroupAgendaAdminAllWithCustomFieldsTest } - public function tearDown() { Class_RendezVous::setTimeSource(new TimeSourceForTest(null)); parent::tearDown(); @@ -920,14 +945,16 @@ abstract class UsergroupAgendaAdminSearchCustomFieldsActionTestCase public function setUp() { parent::setUp(); - $this->fixture('Class_UserGroup_Agenda', ['id' => 43, - 'model_class'=> 'Class_RendezVous', - 'libelle' => "MonSuperAgenda"]); - $this->fixture('Class_RendezVous', + $this->fixture(Class_UserGroup_Agenda::class, + ['id' => 43, + 'model_class'=> 'Class_RendezVous', + 'libelle' => "MonSuperAgenda"]); + + $this->fixture(Class_RendezVous::class, ['id' => 4, 'agenda' => Class_UserGroup_Agenda::find(43), - 'location' => $this->fixture('Class_Lieu', + 'location' => $this->fixture(Class_Lieu::class, ['id' => 8, 'libelle' => 'Bellevue']), 'date' => '2019-03-19', @@ -935,10 +962,10 @@ abstract class UsergroupAgendaAdminSearchCustomFieldsActionTestCase 'end_time' => '10:30', 'comment' => 'with Arnaud']); - $this->fixture('Class_RendezVous', + $this->fixture(Class_RendezVous::class, ['id' => 5, 'agenda' => Class_UserGroup_Agenda::find(43), - 'location' => $this->fixture('Class_Lieu', + 'location' => $this->fixture(Class_Lieu::class, ['id' => 12, 'libelle' => 'Bron']), 'date' => '2019-07-19', @@ -948,40 +975,40 @@ abstract class UsergroupAgendaAdminSearchCustomFieldsActionTestCase $this->onLoaderOfModel('Class_RendezVous'); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 5, 'type' => Class_CustomField_Meta::TEXT_INPUT, 'label' => 'Secteur', 'model' => 'UserGroup_Agenda']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 12, 'model_id' => 43, 'custom_field_id' => 5, 'value' => 'Yonne Nord' ]); - $this->fixture('Class_CustomField_Meta', + $this->fixture(Class_CustomField_Meta::class, ['id' => 1, 'field_type' => Class_CustomField_Meta::MULTI_CHECKBOX, 'options_list' => 'fromage;dessert;l\'association', 'indexable' => 1, ]); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 3, 'meta_id' => 1, 'model' => 'RendezVous' ]); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 7, 'priority' => 5, 'field_type' => Class_CustomField_Meta::TEXT_INPUT, 'indexable' => 1, 'model' => 'RendezVous']); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 10, 'priority' => 5, 'field_type' => Class_CustomField_Meta::SELECT, @@ -989,44 +1016,44 @@ abstract class UsergroupAgendaAdminSearchCustomFieldsActionTestCase 'indexable' => 1, 'model' => 'RendezVous']); - $this->fixture('Class_CustomField_Meta', + $this->fixture(Class_CustomField_Meta::class, ['id' => 2, 'field_type' => Class_CustomField_Meta::DATE, 'indexable' => 1, ]); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 11, 'priority' => 5, 'meta_id' => 2, 'indexable' => 1, 'model' => 'RendezVous']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 25, 'custom_field_id' => 7, 'model_id' => 4, 'value' => 'ma blue note jolie']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 26, 'custom_field_id' => 10, 'model_id' => 5, 'value' => 'included']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 27, 'custom_field_id' => 10, 'model_id' => 4, 'value' => 'not included']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 28, 'custom_field_id' => 3, 'model_id' => 4, 'value' => 'fromage;dessert']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 29, 'custom_field_id' => 11, 'model_id' => 5, @@ -1055,11 +1082,13 @@ abstract class UsergroupAgendaAdminSearchCustomFieldsActionTestCase + class UsergroupAgendaAdminSearchCustomFieldsTextTest extends UsergroupAgendaAdminSearchCustomFieldsActionTestCase { public function setUp() { parent::setUp(); + $this->dispatchWithQuery(['search_field_7' => 'note']); } @@ -1078,11 +1107,13 @@ class UsergroupAgendaAdminSearchCustomFieldsTextTest + class UsergroupAgendaAdminSearchCustomFieldsTextWithQuoteTest extends UsergroupAgendaAdminSearchCustomFieldsActionTestCase { public function setUp() { parent::setUp(); + $this->dispatchWithQuery(['search_field_7' => "no'te en plus"]); } @@ -1108,11 +1139,13 @@ class UsergroupAgendaAdminSearchCustomFieldsTextWithQuoteTest + class UsergroupAgendaAdminSearchCustomFieldsMultiTest extends UsergroupAgendaAdminSearchCustomFieldsActionTestCase { public function setUp() { parent::setUp(); + $this->dispatchWithQuery(['search_field_10[]' => 'included']); } @@ -1132,11 +1165,13 @@ class UsergroupAgendaAdminSearchCustomFieldsMultiTest + class UsergroupAgendaAdminSearchCustomFieldsSelectTest extends UsergroupAgendaAdminSearchCustomFieldsActionTestCase { public function setUp() { parent::setUp(); + $this->dispatch($this->urlWithParams([]) . '&search_field_3[]=fromage&search_field_3[]=dessert&search_field_3[]=l\'association'); } @@ -1165,6 +1200,7 @@ class UsergroupAgendaAdminSearchCustomFieldsSelectTest + class UsergroupAgendaAdminSearchCustomFieldsSelectWithoutResultTest extends UsergroupAgendaAdminSearchCustomFieldsActionTestCase { @@ -1206,11 +1242,13 @@ class UsergroupAgendaAdminSearchCustomFieldsSelectWithoutResultTest + class UsergroupAgendaAdminSearchCustomFieldDateRangeTest extends UsergroupAgendaAdminSearchCustomFieldsActionTestCase { public function setUp() { parent::setUp(); + $this->dispatchWithQuery(['search_field_11_start' => '01/06/2019', 'search_field_11_end' => '31/07/2019']); } @@ -1237,11 +1275,13 @@ class UsergroupAgendaAdminSearchCustomFieldDateRangeTest + class UsergroupAgendaAdminSearchCustomFieldOfAgendaTest extends UsergroupAgendaAdminSearchCustomFieldsActionTestCase { public function setUp() { parent::setUp(); + $this->dispatchWithQuery(['search_field_5' => 'nord']); } @@ -1267,6 +1307,7 @@ class UsergroupAgendaAdminSearchCustomFieldOfAgendaTest + class UsergroupAgendaAdminSearchCustomFieldOfAgendaWithoutResultTest extends UsergroupAgendaAdminSearchCustomFieldsActionTestCase { @@ -1298,6 +1339,7 @@ class UsergroupAgendaAdminSearchCustomFieldOfAgendaWithoutResultTest + class UsergroupAgendaAdminExportActionTest extends UsergroupAgendaAdminModoPortailLoggedTestCase { @@ -1305,7 +1347,8 @@ class UsergroupAgendaAdminExportActionTest public function setUp() { parent::setUp(); - $this->fixture('Class_Users', + + $this->fixture(Class_Users::class, ['id' => 35, 'login' => 'padawan', 'id_site' => 4, @@ -1313,7 +1356,7 @@ class UsergroupAgendaAdminExportActionTest 'password' => 's3cr3t \o/', 'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB]); - $this->fixture('Class_Users', + $this->fixture(Class_Users::class, ['id' => 36, 'login' => 'Yogi', 'prenom' => 'Yoda', @@ -1322,15 +1365,16 @@ class UsergroupAgendaAdminExportActionTest 'password' => 's3cr3t \o/', 'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB]); - $this->fixture('Class_UserGroup_Agenda', ['id' => 43, - 'model_class'=> 'Class_RendezVous', - 'libelle' => "MonSuperAgenda", - 'users' => [Class_Users::find(35),Class_Users::find(36)]]); + $this->fixture(Class_UserGroup_Agenda::class, + ['id' => 43, + 'model_class'=> 'Class_RendezVous', + 'libelle' => "MonSuperAgenda", + 'users' => [Class_Users::find(35), Class_Users::find(36)]]); - $this->fixture('Class_RendezVous', + $this->fixture(Class_RendezVous::class, ['id' => 4, 'agenda' => Class_UserGroup_Agenda::find(43), - 'location' => $this->fixture('Class_Lieu', + 'location' => $this->fixture(Class_Lieu::class, ['id' => 8, 'libelle' => 'Bellevue']), 'date' => '2019-03-19', @@ -1338,27 +1382,27 @@ class UsergroupAgendaAdminExportActionTest 'end_time' => '10:30', 'comment' => 'with Arnaud']); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 5, 'type' => Class_CustomField_Meta::TEXT_INPUT, 'label' => 'Secteur', 'model' => 'UserGroup_Agenda']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 12, 'model_id' => 43, 'custom_field_id' => 5, 'value' => 'Yonne Nord' ]); - $this->fixture('Class_CustomField', + $this->fixture(Class_CustomField::class, ['id' => 7, 'type' => Class_CustomField_Meta::SELECT, 'label' => 'CSP', - 'options_list'=>'Sans Emploi;Cadre Sup;Technicien Supérieur', + 'options_list' => 'Sans Emploi;Cadre Sup;Technicien Supérieur', 'model' => 'UserGroup_Agenda']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 14, 'model_id' => 43, 'custom_field_id' => 7, @@ -1371,7 +1415,7 @@ class UsergroupAgendaAdminExportActionTest 'label' => 'Dernière fois', 'model' => 'RendezVous']); - $this->fixture('Class_CustomField_Value', + $this->fixture(Class_CustomField_Value::class, ['id' => 13, 'model_id' => 4, 'custom_field_id' => 6,