Commit 382bc7dd277704d4e57deb24e553649da35d2abd

Authored by Etienne Pallier
2 parents 2fdfccc1 52b26216
Exists in master and in 1 other branch dev

Merge dev branch into master branch (vv3.7.9.54)

README.md
... ... @@ -54,13 +54,10 @@ Logiciel testé et validé sur les configurations suivantes :
54 54 VERSION ACTUELLE
55 55  
56 56 Date: 03/07/2020
57   -Version: 3.7.9.53
  57 +Version: 3.7.9.54
58 58 Author: EP
59 59 Commentaire:
60   - - Bugfix Emprunts calcul sur les dates pourri : on utilise maintenant FrozenDate et FrozenTime de cakephp au lieu de DateTime de php
61   - - Changement stratégie find matériels, liste des Propriétaire : ce n'est plus la liste des gens qui ont au moins 1 materiel, mais la liste de tous les utilisateurs (tout le ldap)
62   - - Bugfix suivis : type suivi doit être obligatoire !!!
63   - - Désactivé tests en php5 sur SurCategories à cause erreur Template file "Surcategories/index.ctp" is missing (General.php line 1101)
  60 + - Bugfix test SurCategories : devrait maintenant marcher sur php5 et php7
64 61  
65 62 - Amélioration page /pages/acls
66 63 - Tests génériques automatiques pour (presque) toutes les actions de (presque) tous les controleurs principaux (Materiels, Suivis, Emprunts, Users) mais aussi du controleur "quelconque" SurCategories (pour vérifier que ça marche aussi !!!)
... ... @@ -104,6 +101,9 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi
104 101  
105 102 -----------------------------------------------------------------------------------------------------------
106 103  
  104 +03/07/2020 v3.7.9.53 (EP)
  105 + - Bugfix Emprunts calcul sur les dates pourri : on utilise maintenant FrozenDate et FrozenTime de cakephp au lieu de DateTime de php
  106 +
107 107 30/06/2020 v3.7.9.51-52 (EP)
108 108 - Bugfix et refactorisation des actions documents /admission, /sortie, /ficheMateriel
109 109 => désormais, on passe l'id du matos associé et non pas son numero d'inventaire !!! (mauvais raccourci)
... ... @@ -115,21 +115,13 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi
115 115  
116 116 29/06/2020 v3.7.9.50 (EP)
117 117 - Nouveau (et dernier dernier) super test ajouté : test du cycle de vie complet d'un matériel (CREATED => ... => ARCHIVED)
118   - - bugfix (en cours) des actions documents/admission et documents/sortie qui ne marchent plus car on ne leur passe pas un id mais un nom de doc...
119   - - Nombreuses refactorisations dans les tests
120 118  
121 119 26/06/2020 v3.7.9.48-49 (EP)
122 120 - TEST3 : Ajout d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents).
123   - - bugfix autorisations d'affichage des boutons d'action sur documents dans materiels/view/
124   - - Nombreuses refactorisations
125 121  
126 122 25/06/2020 v3.7.9.43-47 (EP)
127 123 - TEST2 : Ajout d'un 2ème très gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues (les boutons d'action)
128 124 à partir d'UN UNIQUE matériel de test qui est modifié à souhait pour essayer de représenter tous les grands cas possibles
129   - - bugfix printLabel() : impression etiquette ne marchait plus !!
130   - - Amélioration page /pages/acls
131   - - bugfixes : ce test, plus status-to-be-archived => status-tobearchived, plus SurcategoriesController => SurCategoriesController
132   - - ...
133 125  
134 126 23/06/2020 v3.7.9.40-42 (EP)
135 127 - Nouvelle page qui affiche les messages de log PAR niveau (level info, debug, notice, error...) : disponible depuis la page Outils (/pages/logs)
... ... @@ -139,51 +131,27 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi
139 131 19/06/2020 v3.7.9.39 (EP)
140 132 - TEST1 : Ajout d'un 1er très gros test générique automatique pour (presque) TOUTES les actions de (presque) TOUS les controleurs principaux (Materiels, Suivis, et Emprunts) mais aussi du controleur "quelconque" SurCategories (pour vérifier que ça marche aussi, et j'ai bien fait car il est spécial ne serait-ce que de par son nom !!!)
141 133 - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...)
142   - - Le nombre total de tests (en ajoutant ces tests automatiques) monte à 200 (pile poil) !!!
143   - - ajout champ 'nom' à la table emprunts => ajout d'un fichier sql pour la mise à jour
144   - - ...
145   -
146   -17/06/2020 v3.7.9.38 (EP)
147   - - Tests génériques automatiques pour (presque) toutes les actions de tous les controleurs principaux (Materiels, Suivis, Emprunts)
148   - - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...)
149   - - L'ajout d'un suivi, emprunt, ou document n'est plus autorisé SANS préciser l'id du matériel concerné, ce qui est logique
150   - - ...
151 134  
152 135 12/06/2020 v3.7.9.37 (EP)
153   - - Tests génériques automatiques pour (presque) toutes les actions du controleur Materiels => OK
154 136 - Amélioré l'action materiels/print_label_ruban (impression etiquette) : un peu plus conforme au standard, un peu moins bidouille qu'avant, et surtout plus besoin de la finir par un "sale" "exit" => donc on peut maintenant la tester, et c'est ce qui a été fait ! (elle est pas encore total nickel mais bon c'est mieux qu'avant)
155 137 - modifié Fixtures pour supprimer les 'id' explicites
156 138 - bugfix action materiels/statusToBeArchived (ou statusToBearchived) => remplacé partout par statusTobearchived
157 139  
158   -10/06/2020 v3.7.9.36 (EP)
159   - - Bugfixes pages tools-sm (autres listes), etiqueteuses, acls, suivis (plus de groupes)
160   -
161 140 10/06/2020 v3.7.9.35 (EP)
162 141 - Requete SQL pour répercuter tous les changements depuis avril !!!
163 142 - 1ère version officielle mise en PROD depuis un bail (presque 2 mois)
164 143  
165 144 05/06/2020 v3.7.9.33 (EP)
166 145 - bugfix : renommé groupe_thematique_id en groupes_thematique_id pour etre harmonisé partout et surtout avec "groupes_metier_id" !!!
167   - - bugfix : isSameGroup
168   - - tous les tests actuels ok
169 146 - AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO => pris en compte (testé) aussi dans les tests avec setAuthorizations_TEST()
170 147 => chaque labo peut désormais adapter les autorisations des utilisateurs à sa sauce !!!
171 148 => on part des règles générales par défaut, puis on adapte si besoin, cool non ?
172 149 - Vues view (déjà fait avant) et index : les boutons d'action (éditer, valider, supprimer...) s'affichent désormais en fonction des autorisations centralisées
173 150  
174   -05/06/2020 v3.7.9.32 (EP)
175   - - AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO
176   - => chaque labo peut désormais adapter les autorisations des utilisateurs à sa sauce !!!
177   - => on part des règles générales par défaut, puis on adapte si besoin, cool non ?
178   -
179   -04/06/2020 v3.7.9.31 (EP)
  151 +04/06/2020 v3.7.9.30-31 (EP)
180 152 - MISE À JOUR DE TOUS LES CONTROLEURS pour le nouveau système d'autorisation
181 153 - SIMPLIFICATION DES AUTORISATIONS POUR LA PLUPART DES CONTROLEURS SIMPLES
182 154 - AUTORISATIONS PAR DÉFAUT POUR TOUT NOUVEAU CONTROLEUR BASIQUE
183   - - AMELIORATIONS DE LA PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur)
184   - => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple)
185   -
186   -03/06/2020 v3.7.9.30 (EP)
187 155 - NOUVELLE PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur)
188 156 => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple)
189 157  
... ... @@ -199,12 +167,6 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi
199 167 quelque soit l'autorisation, donc c'est très LISIBLE et facile à modifier
200 168  
201 169 15/05/2020 v3.7.9.28 (EP)
202   - - Renforcement tests suivis et emprunts (materiel validated only) et refactorisations
203   - - ajout de 2 très gros tests qui tuent des vues matos/index et matos/view en cours... (ce qui m'évitera plein de tests à la main)
204   - - Ajout de la méthode complexe isManageableByUser() dans MaterielsController.php et dans Materiel.php
205   - - Ajout de la méthode getRelatedMateriel() dans AppController, très optimisée
206   - - Vers une unicité toujours plus grande des tests d'autorisation d'action (uniquement dans isAuthorized())
207   - - Utilisation systématique et UNIQUE de la méthode isAuthorized() de CHAQUE controleur pour savoir si une action est autorisée ou pas
208 170 - Utilisation systématique de variables "$CAN_xxx" dans les VUES pour tester si un affichage est autorisé ou pas
209 171 => bcp plus centralisé qu'avant, et bcp plus clean et lisible
210 172 => désormais TOUS les droits sont définis dans la SEULE méthode isAuthorized() de CHAQUE controleur et NULLE PART AILLEURS
... ... @@ -256,12 +218,9 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi
256 218 - GROS bugfix check dates : uniformisation du format date partout (vues et DatePicker.js et code javascript) => dd/mm/aaaa (au lieu de dd-mm-aa)
257 219 - nombreuses refactorisations, généralisations et améliorations du code javascript (bcp de refactorisation dans script.js)
258 220  
259   -09/04/2020 Version 3.7.9.17 (EP)
260   - Amelioration Suivis (3) :
  221 +09/04/2020 Version 3.7.9.16-17 (EP)
  222 + Amelioration Suivis :
261 223 - ajout champ is_metro dans table type_suivis pour les types liés au module métrologie
262   -
263   -07/04/2020 Version 3.7.9.16 (EP)
264   - Amelioration Suivis (2) :
265 224 - ajout champ "is_regular" dans table type_suivis pour déclarer les types de suivis réguliers (fréquence) ou irréguliers (date)
266 225 - début d'utilisation des migrations de BD
267 226  
... ... @@ -292,15 +251,13 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi
292 251 SUIVIS : Amélioration et nombreux Bugfixes !!! (1)
293 252 - ajout intitulé comme titre
294 253  
295   -23/03/2020 Version 3.7.9.7 (EP)
  254 +23/03/2020 Version 3.7.9.6-7 (EP)
296 255 DOCS LIÉS : Amélioration de la gestion des docs attachés (3)
297 256 - Enorme simplification grâce à la refactorisation des vues add et edit en une seule add_edit car elles sont très semblables
  257 + - Amélioration et nombreux bugfixes de la gestion des docs attachés (2)
298 258  
299   -20/03/2020 Version 3.7.9.6 (EP)
300   - DOCS LIÉS : Amélioration et nombreux bugfixes de la gestion des docs attachés (2)
301   -
302   -16/03/2020 Version 3.7.9.5 (EP)
303   - Premiers bugfixes du nouveau site responsive (1 à 5)
  259 +16/03/2020 Version 3.7.9.1-5 (EP)
  260 + Premiers bugfixes du nouveau site responsive
304 261  
305 262 11/03/2020 Version 3.7.9.0 (EP)
306 263 NOUVELLE VERSION RESPONSIVE validée et installée officiellement à l'IRAP et au CRAL (mobile ready)
... ... @@ -340,6 +297,119 @@ CHANGEMENTS DANS LE DÉTAIL (pas forcément visibles, parfois très importants m
340 297  
341 298 -----------------------------------------------------------------------------------------------------------
342 299  
  300 +03/07/2020 v3.7.9.53-54 (EP)
  301 + - Bugfix test SurCategories : devrait maintenant marcher sur php5 et php7
  302 + - Bugfix Emprunts calcul sur les dates pourri : on utilise maintenant FrozenDate et FrozenTime de cakephp au lieu de DateTime de php
  303 + - Changement stratégie find matériels, liste des Propriétaire : ce n'est plus la liste des gens qui ont au moins 1 materiel, mais la liste de tous les utilisateurs (tout le ldap)
  304 + - Bugfix suivis : type suivi doit être obligatoire !!!
  305 +
  306 +30/06/2020 v3.7.9.51-52 (EP)
  307 + - Bugfix et refactorisation des actions documents /admission, /sortie, /ficheMateriel
  308 + => désormais, on passe l'id du matos associé et non pas son numero d'inventaire !!! (mauvais raccourci)
  309 + => ca permet de tester les conditions d'accès de ces actions en fonction du matériel concerné !!
  310 + - Bugfix test de ces mêmes actions (mal testées avant)
  311 + - L'ajout (/add) d'un suivi, emprunt, ou doc doit toujours se faire avec l'id de l'entité parente associée (en général materiel id)
  312 + => (/add/id) sinon refus
  313 + - ...
  314 +
  315 +29/06/2020 v3.7.9.50 (EP)
  316 + - Nouveau (et dernier dernier) super test ajouté : test du cycle de vie complet d'un matériel (CREATED => ... => ARCHIVED)
  317 + - bugfix (en cours) des actions documents/admission et documents/sortie qui ne marchent plus car on ne leur passe pas un id mais un nom de doc...
  318 + - Nombreuses refactorisations dans les tests
  319 +
  320 +26/06/2020 v3.7.9.48-49 (EP)
  321 + - TEST3 : Ajout d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents).
  322 + - bugfix autorisations d'affichage des boutons d'action sur documents dans materiels/view/
  323 + - Nombreuses refactorisations
  324 +
  325 +25/06/2020 v3.7.9.43-47 (EP)
  326 + - TEST2 : Ajout d'un 2ème très gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues (les boutons d'action)
  327 + à partir d'UN UNIQUE matériel de test qui est modifié à souhait pour essayer de représenter tous les grands cas possibles
  328 + - bugfix printLabel() : impression etiquette ne marchait plus !!
  329 + - Amélioration page /pages/acls
  330 + - bugfixes : ce test, plus status-to-be-archived => status-tobearchived, plus SurcategoriesController => SurCategoriesController
  331 + - ...
  332 +
  333 +23/06/2020 v3.7.9.40-42 (EP)
  334 + - Nouvelle page qui affiche les messages de log PAR niveau (level info, debug, notice, error...) : disponible depuis la page Outils (/pages/logs)
  335 + - Toules les actions importantes (add,edit,delete, changement statut...) sont désormais loggées et donc affichables via la page Outils ci-dessus
  336 + - Accélération de la recherche du numéro de version dans le fichier README, affichée à CHAQUE page web du site !!!
  337 +
  338 +19/06/2020 v3.7.9.39 (EP)
  339 + - TEST1 : Ajout d'un 1er très gros test générique automatique pour (presque) TOUTES les actions de (presque) TOUS les controleurs principaux (Materiels, Suivis, et Emprunts) mais aussi du controleur "quelconque" SurCategories (pour vérifier que ça marche aussi, et j'ai bien fait car il est spécial ne serait-ce que de par son nom !!!)
  340 + - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...)
  341 + - Le nombre total de tests (en ajoutant ces tests automatiques) monte à 200 (pile poil) !!!
  342 + - ajout champ 'nom' à la table emprunts => ajout d'un fichier sql pour la mise à jour
  343 + - ...
  344 +
  345 +17/06/2020 v3.7.9.38 (EP)
  346 + - Tests génériques automatiques pour (presque) toutes les actions de tous les controleurs principaux (Materiels, Suivis, Emprunts)
  347 + - Dans ces tests génériques, on teste non seulement qu'une action s'exécute seulement quand elle y est autorisée, mais aussi qu'elle s'exécute correctement (au moins pour les actions CRUD : add,edit,delete...)
  348 + - L'ajout d'un suivi, emprunt, ou document n'est plus autorisé SANS préciser l'id du matériel concerné, ce qui est logique
  349 + - ...
  350 +
  351 +12/06/2020 v3.7.9.37 (EP)
  352 + - Tests génériques automatiques pour (presque) toutes les actions du controleur Materiels => OK
  353 + - Amélioré l'action materiels/print_label_ruban (impression etiquette) : un peu plus conforme au standard, un peu moins bidouille qu'avant, et surtout plus besoin de la finir par un "sale" "exit" => donc on peut maintenant la tester, et c'est ce qui a été fait ! (elle est pas encore total nickel mais bon c'est mieux qu'avant)
  354 + - modifié Fixtures pour supprimer les 'id' explicites
  355 + - bugfix action materiels/statusToBeArchived (ou statusToBearchived) => remplacé partout par statusTobearchived
  356 +
  357 +10/06/2020 v3.7.9.36 (EP)
  358 + - Bugfixes pages tools-sm (autres listes), etiqueteuses, acls, suivis (plus de groupes)
  359 +
  360 +10/06/2020 v3.7.9.35 (EP)
  361 + - Requete SQL pour répercuter tous les changements depuis avril !!!
  362 + - 1ère version officielle mise en PROD depuis un bail (presque 2 mois)
  363 +
  364 +05/06/2020 v3.7.9.33 (EP)
  365 + - bugfix : renommé groupe_thematique_id en groupes_thematique_id pour etre harmonisé partout et surtout avec "groupes_metier_id" !!!
  366 + - bugfix : isSameGroup
  367 + - tous les tests actuels ok
  368 + - AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO => pris en compte (testé) aussi dans les tests avec setAuthorizations_TEST()
  369 + => chaque labo peut désormais adapter les autorisations des utilisateurs à sa sauce !!!
  370 + => on part des règles générales par défaut, puis on adapte si besoin, cool non ?
  371 + - Vues view (déjà fait avant) et index : les boutons d'action (éditer, valider, supprimer...) s'affichent désormais en fonction des autorisations centralisées
  372 +
  373 +05/06/2020 v3.7.9.32 (EP)
  374 + - AUTORISATIONS DESORMAIS ADAPTABLES POUR CHAQUE LABO
  375 + => chaque labo peut désormais adapter les autorisations des utilisateurs à sa sauce !!!
  376 + => on part des règles générales par défaut, puis on adapte si besoin, cool non ?
  377 +
  378 +04/06/2020 v3.7.9.31 (EP)
  379 + - MISE À JOUR DE TOUS LES CONTROLEURS pour le nouveau système d'autorisation
  380 + - SIMPLIFICATION DES AUTORISATIONS POUR LA PLUPART DES CONTROLEURS SIMPLES
  381 + - AUTORISATIONS PAR DÉFAUT POUR TOUT NOUVEAU CONTROLEUR BASIQUE
  382 + - AMELIORATIONS DE LA PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur)
  383 + => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple)
  384 +
  385 +03/06/2020 v3.7.9.30 (EP)
  386 + - NOUVELLE PAGE AFFICHANT LES AUTORISATIONS DYNAMIQUEMENT (/pages/acls ou /pages/acls/#nom_du_controleur)
  387 + => On peut ainsi vérifier ce qui est appliqué à l'instant T (juste après la modif d'une règle par exemple)
  388 +
  389 +03/06/2020 v3.7.9.29 (EP)
  390 + - NOUVEAU SYSTEME D'AUTORISATION DES ACTIONS => CENTRALISÉ et testé OK
  391 + => TOUS les tests passent sauf certains qui ne passent plus car les nouvelles conditions sont plus strictes
  392 + (ils ont été temporairement désactivés en attendant réécriture plus générique qui viendra très vite)
  393 + => Autorisations définies dans chaque controleur par setAuthorizations() qui initialise un tableau UNIQUE de AppController ($this->is_authorized_action)
  394 + => La méthode isAuthorized() de chaque controleur appelle isAuthorizedAction() (de AppController) qui autorise ou pas l'action en fonction de ce tableau unique
  395 + => Quand on veut changer une autorisation, il suffit de le faire UNE SEULE FOIS dans la méthode setAuthorizations()
  396 + Cette autorisation sera alors prise en compte PARTOUT dans le code (code des actions, des vues, etc...)
  397 + => L'initialisation des autorisations est faite (par la méthode setAuthorizationForAction() de AppController) dans un format standard,
  398 + quelque soit l'autorisation, donc c'est très LISIBLE et facile à modifier
  399 +
  400 +15/05/2020 v3.7.9.28 (EP)
  401 + - Renforcement tests suivis et emprunts (materiel validated only) et refactorisations
  402 + - ajout de 2 très gros tests qui tuent des vues matos/index et matos/view en cours... (ce qui m'évitera plein de tests à la main)
  403 + - Ajout de la méthode complexe isManageableByUser() dans MaterielsController.php et dans Materiel.php
  404 + - Ajout de la méthode getRelatedMateriel() dans AppController, très optimisée
  405 + - Vers une unicité toujours plus grande des tests d'autorisation d'action (uniquement dans isAuthorized())
  406 + - Utilisation systématique et UNIQUE de la méthode isAuthorized() de CHAQUE controleur pour savoir si une action est autorisée ou pas
  407 + - Utilisation systématique de variables "$CAN_xxx" dans les VUES pour tester si un affichage est autorisé ou pas
  408 + => bcp plus centralisé qu'avant, et bcp plus clean et lisible
  409 + => désormais TOUS les droits sont définis dans la SEULE méthode isAuthorized() de CHAQUE controleur et NULLE PART AILLEURS
  410 + => si on veut changer un droit d'accès quelconque, on ne le change QUE là. Ouf, on respire, c'est bien plus cohérent et maintenable qu'avant
  411 + => FIN de la galère de la gestion des droits (acl) enfin, il aura fallu quelques années pour y parvenir !!!
  412 +
343 413 11/05/2020 v3.7.9.27 (EP)
344 414 - Ajout d'un LOG applicatif dans le fichier /logs/debug.log pour toutes les actions importantes (add, edit, delete, ...) qui permet de savoir kiafekoi
345 415 - Suppression des méthodes isAuthorizedAction() et isAuthorizedActionFor() car plus simple de ne garder QUE isAuthorized() en la modifiant un peu... => du coup, c'est désormais cette SEULE méthode (dans CHAQUE controleur) qui décide de l'accès ou non à une action selon le profil utilisateur
... ...
tests/TestCase/Controller/General.php
... ... @@ -11,6 +11,7 @@ use App\Controller\MaterielsController;
11 11 use App\Controller\SuivisController;
12 12 //use App\Controller\SurCategoriesController;
13 13 use Cake\Http\Exception\NotImplementedException;
  14 +use Cake\Utility\Inflector;
14 15  
15 16 //use App\Controller\MaterielsController;
16 17  
... ... @@ -693,29 +694,43 @@ class General extends TestCase {
693 694  
694 695  
695 696 protected function inflectEntityName($entities_name) {
696   - $entities_name = strtolower($entities_name);
  697 + //$entities_name = strtolower($entities_name);
697 698 switch ($entities_name) {
  699 + case 'Materiel': $entities_name = 'Matériel'; break;
  700 + case 'Materiels': $entities_name = 'Matériels'; break;
698 701  
  702 + case 'User': $entities_name = 'Utilisateur'; break;
  703 + case 'Users': $entities_name = 'Utilisateurs'; break;
  704 +
  705 + case 'SurCategorie': $entities_name = 'Domaine'; break;
  706 + case 'SurCategories': $entities_name = 'Domaines'; break;
  707 +
  708 + /*
699 709 case 'materiel': $entities_name = 'matériel'; break;
700 710 case 'materiels': $entities_name = 'matériels'; break;
701 711  
702 712 case 'user': $entities_name = 'utilisateur'; break;
703 713 case 'users': $entities_name = 'utilisateurs'; break;
704 714  
705   - case 'surcategorie': $entities_name = 'domaine'; break;
706   - case 'surcategories': $entities_name = 'domaines'; break;
  715 + case 'sur-categorie': $entities_name = 'domaine'; break;
  716 + case 'sur-categories': $entities_name = 'domaines'; break;
  717 + */
707 718 }
708 719 // Par défaut, aucun changement (ex: 'suivis' => 'suivis')
709   - return $entities_name;
  720 + //return $entities_name;
  721 + return lcfirst($entities_name);
710 722 }
711 723  
712 724  
713 725 protected function _checkNbEntitiesInIndexViewIsAsExpected($entities_name,$nbentities_expected) {
714 726 //$this->get('/materiels/index');
  727 + //$entities_name = Inflector::dasherize($entities_name);
  728 + //debug("entities1 $entities_name");
715 729 $this->get("/$entities_name/index");
716 730 //debug($_SESSION);return;
717 731 $this->assertResponseOk();
718 732 $entities_name = $this->inflectEntityName($entities_name);
  733 + //debug("entities2 $entities_name");
719 734 $this->assertResponseContains("Liste des $entities_name ($nbentities_expected)", "Le nombre d'entités dans la vue 'index' est incorrect");
720 735 }
721 736  
... ... @@ -737,6 +752,8 @@ class General extends TestCase {
737 752 // Force le rechargement des entités materiel en BD (car on les modifie en cours de route)
738 753 //AppController::forceReload();
739 754 $entities_name = $this->getEntitiesName();
  755 + //debug("entities0 $entities_name");
  756 +
740 757 $IS_MATERIEL = ($entities_name=='Materiels');
741 758 //debug("entities_name is $entities_name");
742 759  
... ... @@ -1009,9 +1026,12 @@ class General extends TestCase {
1009 1026 //debug($this->_flashMessages);
1010 1027  
1011 1028 //$entities = 'materiels';
1012   - $entities_name = strtolower($this->getEntitiesName());
  1029 + //$entities_name = strtolower($this->getEntitiesName());
  1030 + //$entities_name = Inflector::dasherize($this->getEntitiesName());
  1031 + $entities_name = $this->getEntitiesName();
1013 1032 //$entities_name = $this->getEntitiesName();
1014   - $IS_MATERIEL = ($entities_name=='materiels');
  1033 + //$IS_MATERIEL = ($entities_name=='materiels');
  1034 + $IS_MATERIEL = ($entities_name=='Materiels');
1015 1035  
1016 1036 //$getpost = in_array($action, ['add','add_by_copy','edit','delete', 'statusCreated']) ? 'post' : 'get';
1017 1037 //$getpost = in_array($action, ['view', 'index', 'find', 'printLabelRuban']) ? 'get':'post';
... ... @@ -1058,7 +1078,8 @@ class General extends TestCase {
1058 1078 if ($SHOULD_BE_SUCCESS) {
1059 1079 $flash_message = null;
1060 1080 $this->assertResponseSuccess();
1061   - if ($entities_name=='materiels' && $action=='printLabelRuban') {
  1081 + //if ($entities_name=='materiels' && $action=='printLabelRuban') {
  1082 + if ($entities_name=='Materiels' && $action=='printLabelRuban') {
1062 1083 /*
1063 1084 $this->assertFileResponse('inventirap_label.label', 'pas de fichier généré');
1064 1085 $this->assertHeader('Content-type', 'application/xml');
... ... @@ -1098,6 +1119,7 @@ class General extends TestCase {
1098 1119 case 'add_by_copy':
1099 1120 $expected_flash_message .= 'ajouté';
1100 1121 // Vérifier la conséquence de l'action : 1 entité de plus
  1122 + //debug("entities_name4 is $entities_name");
1101 1123 $this->_checkNbEntitiesInIndexViewIsAsExpected($entities_name, $nbentities+1);
1102 1124 break;
1103 1125  
... ... @@ -1190,7 +1212,8 @@ class General extends TestCase {
1190 1212 protected function _testActionDeleteEntity($role) {
1191 1213 $action = 'delete';
1192 1214  
1193   - $entities_name = strtolower($this->getEntitiesName());
  1215 + //$entities_name = strtolower($this->getEntitiesName());
  1216 + $entities_name = $this->getEntitiesName();
1194 1217  
1195 1218 $this->d("*******************");
1196 1219 $this->d(" CONTROLEUR $entities_name, ACTION $action, ROLE $role");
... ...
tests/TestCase/Controller/MaterielsControllerTest.php
... ... @@ -1943,7 +1943,7 @@ class MaterielsControllerTest extends General {
1943 1943 // On doit faire ceci (qui appelle l'action index) pour que la variable $_SESSION existe !!!
1944 1944 // et donc aussi le USER authentifié ci-dessus avec authAs()
1945 1945 $nbentities = $this->getNbEntitiesExpectedInIndexView();
1946   - $this->_checkNbEntitiesInIndexViewIsAsExpected('materiels', $nbentities);
  1946 + $this->_checkNbEntitiesInIndexViewIsAsExpected('Materiels', $nbentities);
1947 1947 //debug($_SESSION);return;
1948 1948 // pas NULL why ?
1949 1949 // On sauvegarde le user courant
... ... @@ -2046,7 +2046,7 @@ class MaterielsControllerTest extends General {
2046 2046 // et donc aussi le USER authentifié ci-dessus avec authAs()
2047 2047 $nbentities = $this->getNbEntitiesExpectedInIndexView();
2048 2048 //debug($_SESSION); // NULL why ?
2049   - $this->_checkNbEntitiesInIndexViewIsAsExpected('materiels', $nbentities);
  2049 + $this->_checkNbEntitiesInIndexViewIsAsExpected('Materiels', $nbentities);
2050 2050 //debug($_SESSION);return;
2051 2051 // pas NULL why ?
2052 2052 // On sauvegarde le user courant
... ... @@ -2503,7 +2503,7 @@ class MaterielsControllerTest extends General {
2503 2503 $this->authAs('SUPER');
2504 2504 // Nb materiels au départ dans la BD
2505 2505 $nbentities = $this->getNbEntitiesExpectedInIndexView();
2506   - $this->_checkNbEntitiesInIndexViewIsAsExpected('materiels', $nbentities);
  2506 + $this->_checkNbEntitiesInIndexViewIsAsExpected('Materiels', $nbentities);
2507 2507 // Données minimum à "poster" pour créer un nouveau matériel
2508 2508 $data = $this->getNewEntityWithAllMandatoryFields();
2509 2509  
... ... @@ -2514,7 +2514,7 @@ class MaterielsControllerTest extends General {
2514 2514 $action = 'add';
2515 2515 $this->_doActionAndCheckResult($action, null, $SUCCESS=true, $data);
2516 2516 $nbentities++;
2517   - $this->_checkNbEntitiesInIndexViewIsAsExpected('materiels', $nbentities);
  2517 + $this->_checkNbEntitiesInIndexViewIsAsExpected('Materiels', $nbentities);
2518 2518 // On récupère ce dernier matériel créé from BD
2519 2519 $m = $this->Materiels->find()->last();
2520 2520 $id = $m->id;
... ... @@ -2608,7 +2608,7 @@ class MaterielsControllerTest extends General {
2608 2608 $this->_doActionAndCheckResult('edit', $id, $SUCCESS=true, [ 'nom_responsable' => 'user1 SUPER' ]);
2609 2609 $this->_doActionAndCheckResult($action, $id, $SUCCESS=true);
2610 2610 $nbentities--;
2611   - $this->_checkNbEntitiesInIndexViewIsAsExpected('materiels', $nbentities);
  2611 + $this->_checkNbEntitiesInIndexViewIsAsExpected('Materiels', $nbentities);
2612 2612  
2613 2613 }
2614 2614  
... ...
tests/TestCase/Controller/SurCategoriesControllerTest.php
... ... @@ -112,7 +112,7 @@ class SurCategoriesControllerTest extends General
112 112 *
113 113 * @dataProvider dataProviderActionsAndRoles4
114 114 *
115   - * @requires PHP 7
  115 + * @requires PHP 5.6
116 116 * (https://phpunit.readthedocs.io/fr/latest/incomplete-and-skipped-tests.html#sauter-des-tests-en-utilisant-requires)
117 117 */
118 118 public function testAuthorizationsForAllActionsOnSurCategories($action, $role_short, $role_long) {
... ...