Commit b4bee8f97004b02b2bad53dd2df7b9340a7b48ef

Authored by Etienne Pallier
1 parent c7dcac63
Exists in master and in 1 other branch dev

Bugfix (update) TESTS suite à évolution du code : tous passent !

v4.107.26-3.7.9
CHANGES.txt
... ... @@ -306,10 +306,14 @@ Commencer à implémenter le nouveau workflow v5 :
306 306 ======= CHANGES =======
307 307  
308 308 -------
309   -01/12/2020 v4.107.25-3.7.9 (total projet : 357367 lignes)
310   - - Mise à jour (update et cleanup) du script de création COMPLET de la BD (structure)
311   - - Mise à jour (cleanup) du script d'installation du projet
312   - - A tester : install from scratch
  309 +02/12/2020 v4.107.26-3.7.9
  310 + - (b) Bugfix (update) TESTS suite à évolution du code et règle sur étiquette : tous passent !
  311 +
  312 +-------
  313 +01/12/2020 v4.107.25-3.7.9
  314 + - (i) Mise à jour (update et cleanup) du script de création COMPLET de la BD (structure)
  315 + - (i) Mise à jour (cleanup) du script d'installation du projet
  316 + - (i) A tester : install from scratch
313 317  
314 318 -------
315 319 30/11/2020 v4.107.24-3.7.9 (total projet : 357367 lignes)
... ...
README.md
... ... @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes :
52 52  
53 53 --------------------------------------------------------------------------------------------
54 54  
55   -Date: 01/12/2020
56   -Version: 4.107.25-3.7.9
  55 +Date: 02/12/2020
  56 +Version: 4.107.26-3.7.9
57 57  
58 58  
59 59 HISTORIQUE DES CHANGEMENTS DE VERSION : voir le fichier CHANGES.txt (ou la page web /pages/changes)
... ...
src/Controller/MaterielsController.php
... ... @@ -515,8 +515,12 @@ class MaterielsController extends AppController {
515 515 ]);
516 516  
517 517 // Action 'printLabelRuban' (impression d'une étiquette)
518   - $this->setAuthorizationsForAction('printLabelRuban (imprimer étiquette)', ['conf.hasPrinter',0] );
  518 + // On ne peut imprimer QUE si titreuse présente ET matos VALIDATED :
519 519 //$this->setAuthorizationsForAction('printLabelRuban (imprimer étiquette)', ['VALIDATED && conf.hasPrinter',0] );
  520 + // On ne peut imprimer que si titreuse présente :
  521 + $this->setAuthorizationsForAction('printLabelRuban (imprimer étiquette)', ['conf.hasPrinter',0] );
  522 +
  523 + // Déclarer etiquette collée
520 524 $this->setAuthorizationsForAction('setLabelIsPlaced (déclarer étiquette collée)', ['VALIDATED && conf.hasPrinter',0] );
521 525 $this->setAuthorizationsForAction('setLabelIsNotPlaced', ['VALIDATED && conf.hasPrinter',0] );
522 526 /*
... ... @@ -710,6 +714,7 @@ class MaterielsController extends AppController {
710 714 }
711 715  
712 716 public function isStatus($status) {
  717 + //debug($status);
713 718 return in_array($status, array_keys(self::statuses));
714 719 }
715 720  
... ... @@ -5156,7 +5161,7 @@ class MaterielsController extends AppController {
5156 5161 */
5157 5162 $text_line1_numinv = trim("$numeroLab");
5158 5163 $text_line2_date = trim("$dateAcquisition");
5159   - $text_line3_tutelle .= "$organisme " . trim($numeroInventaireOrganisme ? '/ ' . "$numeroInventaireOrganisme" : '');
  5164 + $text_line3_tutelle = "$organisme " . trim($numeroInventaireOrganisme ? '/ ' . "$numeroInventaireOrganisme" : '');
5160 5165  
5161 5166 // (EP202006) NB: La 1ère ligne (xml version...) pose problème, donc je la vire
5162 5167 //'<?xml version="1.0" encoding="utf-8"POINTINTERROG>
... ...
tests/TestCase/Controller/General.php
... ... @@ -1000,8 +1000,9 @@ class General extends TestCase {
1000 1000 $u = $this->getCurrentUser();
1001 1001 $m = $this->getMaterielsTable()->get($id);
1002 1002 //$m = $this->getMateriel($id);
1003   -
  1003 + debug("statut:"); debug($status);
1004 1004 $NOT = FALSE;
  1005 +
1005 1006 // Statut commence par 'NOT' ?
1006 1007 if (strpos($status,'NOT ') === 0) {
1007 1008 $NOT = TRUE;
... ... @@ -1009,7 +1010,8 @@ class General extends TestCase {
1009 1010 $status = substr($status,4);
1010 1011 }
1011 1012  
1012   - // Condition de statut complexe (avec un && ou un ||) ? => pour simplifiier, on ne tient compte que du statut
  1013 + // Condition de statut complexe ? (normalement de la forme "STATUS &&_ou_|| autre_condition")
  1014 + // => pour simplifier, on ne tient compte que du STATUS (donc le 1er argument)
1013 1015 if ( (strpos($status,'&&')!==FALSE) || (strpos($status,'||')!==FALSE) ) {
1014 1016 //debug("statut complexe '$status'");
1015 1017 $status = explode(' ', $status)[0];
... ... @@ -1017,7 +1019,13 @@ class General extends TestCase {
1017 1019 //debug("=> simplifié en '$status'");
1018 1020 }
1019 1021  
1020   - if ($mc->isStatus($status)) {
  1022 + //if ($mc->isStatus($status)) {
  1023 + if (! $mc->isStatus($status))
  1024 + // On a un cas spécial, du style 'conf.hasPrinter' (sans statut avant, alors que ça pourrait être "VALIDATED && conf.hasPrinter")
  1025 + // Pour le moment, on ne le traite pas...
  1026 + //throw new \Exception("Le statut du matériel est incorrect !!!");
  1027 + ;
  1028 + else {
1021 1029 /*
1022 1030 $m->status = $WITH_SAME_STATUS ? $status : $mc->getNextStatusFrom($status);
1023 1031 if ($NOT) $m->status = $mc->getNextStatusFrom($status);
... ... @@ -1031,16 +1039,18 @@ class General extends TestCase {
1031 1039  
1032 1040 // On sauvegarde le matos modifié
1033 1041 //if (! $this->Materiels->save($m))
1034   - if ($DO_SAVE && !$this->getMaterielsTable()->save($m))
1035   - throw new \Exception("La sauvegarde du materiel modifié ne se fait pas !!!");
1036   -
1037   - return $m;
  1042 + //if ($DO_SAVE && !$this->getMaterielsTable()->save($m))
  1043 + if ($DO_SAVE)
  1044 + if (! $this->getMaterielsTable()->save($m) )
  1045 + throw new \Exception("La sauvegarde du materiel modifié ne se fait pas !!!");
  1046 + //return $m;
1038 1047 }
  1048 + //else throw new \Exception("Le statut du matériel est incorrect !!!");
1039 1049  
1040   - else throw new \Exception("Le statut du matériel est incorrect !!!");
1041   -
  1050 + return $m;
1042 1051 }
1043 1052  
  1053 +
1044 1054 private function _updateMatosBelongingToCurrentUserAndInSameGroup($id, $BELONGS=true, $SAMEGROUP=true, $DO_SAVE=true) {
1045 1055 $u = $this->getCurrentUser();
1046 1056 $m = $this->Materiels->get($id);
... ... @@ -1135,8 +1145,15 @@ class General extends TestCase {
1135 1145 $this->assertHeader('Content-Disposition', 'attachment; filename="'.$filename.'"');
1136 1146 //$this->assertHeader('Content-Disposition', "attachment; filename='$filename'");
1137 1147 $msg_error = "L'action $action n'est pas autorisée (pour le role {$this->getUserRole()}) alors qu'elle devrait !!!";
  1148 + // - DLS :
  1149 + /*
1138 1150 $this->assertResponseContains("ContinuousLabel", $msg_error);
1139 1151 $this->assertResponseContains("<PaperOrientation>Landscape</PaperOrientation>", $msg_error);
  1152 + */
  1153 + // - DCD :
  1154 + $this->assertResponseContains("DYMOLabel", $msg_error);
  1155 + $this->assertResponseContains("19X7-TAPE BLACK/WHITE", $msg_error); // format 19mm
  1156 + $this->assertResponseContains("<Orientation>Landscape</Orientation>", $msg_error);
1140 1157 }
1141 1158 // GET
1142 1159 if ($getpost == 'get') {
... ...
tests/TestCase/Controller/MaterielsControllerTest.php
... ... @@ -147,13 +147,13 @@ class MaterielsControllerTest extends General {
147 147 'nom_modificateur' => 'Jean Administration',
148 148 */
149 149  
  150 + 'prix_ht' => 75,
150 151 // CHAMPS NECESSAIRES POUR MATERIEL VALIDATED :
151 152 /*
152 153 'date_reception' => '2016-04-19',
153 154 'nom_responsable' => 'Lorem ipsum dolor sit amet',
154 155 'fournisseur_id' => 1
155 156 'organisme_id' => 1,
156   - 'prix_ht' => 75,
157 157 'numero_commande' => 'Lorem ipsum dolor sit amet',
158 158 */
159 159 ];
... ... @@ -614,7 +614,8 @@ class MaterielsControllerTest extends General {
614 614 //if ( in_array($role, ['ADMIN','ADMINP','SUPER']) ) {
615 615 if ($this->USER_IS_ADMIN_AT_LEAST()) {
616 616 $this->assertResponseContains("Informations administratives");
617   - $this->assertResponseContains("Centre(s) Financier(s) / EOTP");
  617 + //$this->assertResponseContains("Centre(s) Financier(s) / EOTP");
  618 + $this->assertResponseContains("Entité(s) dépensière(s)");
618 619 }
619 620 else $this->assertResponseNotContains("Informations administratives");
620 621  
... ... @@ -662,7 +663,8 @@ class MaterielsControllerTest extends General {
662 663 $role,
663 664 //in_array($role,['ADMIN', 'ADMINP', 'SUPER']),
664 665 $this->USER_IS_ADMIN_AT_LEAST(),
665   - ["EOTP" => "à la partie administrative sur le formulaire add"]
  666 + ["Entité(s) dépensière(s)" => "à la partie administrative sur le formulaire add"]
  667 + //["EOTP" => "à la partie administrative sur le formulaire add"]
666 668 );
667 669 /*
668 670 $this->assertResponseNotContains('EOTP', 'Le profil utilisateur a accès à la partie administrative sur le formulaire add.');
... ... @@ -1201,7 +1203,8 @@ class MaterielsControllerTest extends General {
1201 1203  
1202 1204 $this->get('/materiels/edit/11');
1203 1205  
1204   - $this->assertResponseContains('EOTP', 'Le profil admin+ n\'a pas accès à la partie administrative sur le formulaire edit.');
  1206 + //$this->assertResponseContains('EOTP', 'Le profil admin+ n\'a pas accès à la partie administrative sur le formulaire edit.');
  1207 + $this->assertResponseContains('Entité(s) dépensière(s)', 'Le profil admin+ n\'a pas accès à la partie administrative sur le formulaire edit.');
1205 1208 }
1206 1209  
1207 1210 /**
... ... @@ -1957,7 +1960,8 @@ class MaterielsControllerTest extends General {
1957 1960 $this->assertResponseContains('Test 11', 'Le profil utilisateur n\'a pas accès au formulaire edit, alors que le matériel lui appartient.');
1958 1961 // (EP 17/7/19 changed)
1959 1962 //$this->assertResponseNotContains('EOTP', 'Le profil utilisateur a accès à la partie administrative sur le formulaire edit.');
1960   - $this->assertResponseContains('EOTP', 'Le profil utilisateur doit avoir accès à la partie administrative sur le formulaire edit (mais en read only).');
  1963 + //$this->assertResponseContains('EOTP', 'Le profil utilisateur doit avoir accès à la partie administrative sur le formulaire edit (mais en read only).');
  1964 + $this->assertResponseContains('Entité(s) dépensière(s)', 'Le profil utilisateur doit avoir accès à la partie administrative sur le formulaire edit (mais en read only).');
1961 1965 }
1962 1966  
1963 1967  
... ...