From 8630ba325ba95f584ecb40b96c97f6f7a86b6566 Mon Sep 17 00:00:00 2001 From: Etienne Pallier Date: Thu, 16 May 2019 17:13:36 +0200 Subject: [PATCH] Bugfix tests --- README.md | 4 ++-- TESTS.sh | 5 +++++ src/Controller/MaterielsController.php | 5 ++++- src/Model/Table/MaterielsTable.php | 1 + src/Template/Materiels/edit.ctp | 4 +++- tests/Fixture/MaterielsFixture.php | 9 +++++++++ tests/Fixture/SitesFixture.php | 4 ++++ tests/TestCase/Controller/MaterielsControllerTest.php | 28 +++++++++++++++++++++------- 8 files changed, 49 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 230f7fa..86ac963 100644 --- a/README.md +++ b/README.md @@ -54,9 +54,9 @@ Logiciel testé et validé sur les configurations suivantes : VERSION ACTUELLE Date: 16/05/2019 -Version: 2.12.12 +Version: 2.12.13 Author: EP -Commentaire: Bugfix ajout materiel +Commentaire: Bugfix tests IMPORTANT : - Pour connaitre la version actuelle, taper "./VERSION" diff --git a/TESTS.sh b/TESTS.sh index 2b869ae..da27e67 100755 --- a/TESTS.sh +++ b/TESTS.sh @@ -11,3 +11,8 @@ vendor/bin/phpunit || vendor/phpunit/phpunit/phpunit #vendor/bin/phpunit --verbose --log-tap tap.log #vendor/bin/phpunit --testdox +# Executer UN SEUL test: +# Ex: je veux executer ONLY le test testMat31CreateAs() de MaterielsControllerTest: +#vendor/bin/phpunit --filter testMat31CreateAs +#vendor/bin/phpunit --filter testMat32CreateAdministratifOrTechnicalAs + diff --git a/src/Controller/MaterielsController.php b/src/Controller/MaterielsController.php index 475b45c..f7f8c2f 100755 --- a/src/Controller/MaterielsController.php +++ b/src/Controller/MaterielsController.php @@ -820,8 +820,11 @@ class MaterielsController extends AppController 'action' => 'view', $id ]); - } else + } else { + debug("(EP debug): "); + debug($materiel->errors()); $this->Flash->error(__("Le matériel n'a pas pu être $action".".")); + } } // if POST diff --git a/src/Model/Table/MaterielsTable.php b/src/Model/Table/MaterielsTable.php index b2f1ede..7ee2e96 100755 --- a/src/Model/Table/MaterielsTable.php +++ b/src/Model/Table/MaterielsTable.php @@ -431,6 +431,7 @@ class MaterielsTable extends AppTable if (empty($entity->get('date_reception'))) { $entity->set('date_reception', null); } + // TRES IMPORTANT, sinon echec de la sauvegarde !!! return true; } } diff --git a/src/Template/Materiels/edit.ctp b/src/Template/Materiels/edit.ctp index 77f01d1..48f9a34 100755 --- a/src/Template/Materiels/edit.ctp +++ b/src/Template/Materiels/edit.ctp @@ -23,7 +23,9 @@ $PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; $PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; $allProfiles = $allProfiles; -$_serialize = $_serialize; // True or False +// PAS TOUJOURS +//$_serialize = $_serialize; // True or False + $username = $username; $configuration = $configuration; $priviledgedUser = $priviledgedUser; // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié (pas dans la table "utilisateurs") diff --git a/tests/Fixture/MaterielsFixture.php b/tests/Fixture/MaterielsFixture.php index a7c6385..ea191b0 100755 --- a/tests/Fixture/MaterielsFixture.php +++ b/tests/Fixture/MaterielsFixture.php @@ -711,6 +711,9 @@ class MaterielsFixture extends TestFixture { 'metrologie' => 0, 'fournisseur_id' => 2 ], + + // nom_createur = 'test0 test9' + //'nom_responsable' => 'test0 test9' [ 'id' => 11, 'designation' => 'Test 11 (C)', @@ -736,8 +739,10 @@ class MaterielsFixture extends TestFixture { 'etiquette' => 0, 'lieu_detail' => 'Lorem ipsum dolor sit amet', 'nom_responsable' => 'test0 test9', + //'nom_responsable' => 'user5 USER', 'email_responsable' => 'Lorem ipsum dolor sit amet', 'nom_createur' => 'test0 test9', + //'nom_createur' => 'user5 USER', 'nom_modificateur' => 'Lorem ipsum dolor sit amet', 'created' => '2016-04-19 09:09:29', 'modified' => '2016-04-19 09:09:29', @@ -747,6 +752,7 @@ class MaterielsFixture extends TestFixture { 'metrologie' => 0, 'fournisseur_id' => 1 ], + [ 'id' => 12, 'designation' => 'Test 12 (V)', @@ -819,6 +825,8 @@ class MaterielsFixture extends TestFixture { 'metrologie' => 0, 'fournisseur_id' => 1 ], + + // Materiel ARCHIVED => pas vu par un simple utilisateur (materiel/index/ ne l'affiche pas) [ 'id' => 14, 'designation' => 'Test 14 (A)', @@ -830,6 +838,7 @@ class MaterielsFixture extends TestFixture { 'materiel_administratif' => 1, 'materiel_technique' => 1, 'status' => 'ARCHIVED', + //'status' => 'TOBEARCHIVED', 'date_acquisition' => '2016-05-10', 'prix_ht' => 75, 'eotp' => 'Lorem ipsum dolor sit amet', diff --git a/tests/Fixture/SitesFixture.php b/tests/Fixture/SitesFixture.php index 8b26561..d66c86a 100755 --- a/tests/Fixture/SitesFixture.php +++ b/tests/Fixture/SitesFixture.php @@ -39,5 +39,9 @@ class SitesFixture extends TestFixture 'id' => 1, 'nom' => 'Lorem ipsum dolor sit amet' ], + [ + 'id' => 9, + 'nom' => 'N/A' + ], ]; } diff --git a/tests/TestCase/Controller/MaterielsControllerTest.php b/tests/TestCase/Controller/MaterielsControllerTest.php index 4310021..80a42df 100755 --- a/tests/TestCase/Controller/MaterielsControllerTest.php +++ b/tests/TestCase/Controller/MaterielsControllerTest.php @@ -71,6 +71,7 @@ class MaterielsControllerTest extends General { 'materiel_technique' => 1, //'status' => 'CREATED', 'date_acquisition' => '19-04-2016', + //'date_acquisition' => '19-04-2019', /* 'nom_responsable' => 'Jacques Utilisateur', 'email_responsable' => 'Jacques.Utilisateur@irap.omp.eu' @@ -117,10 +118,11 @@ class MaterielsControllerTest extends General { parent::tearDown(); } - // This is a data provider used for a lot of tests + // This are data providers used for a lot of tests // See https://jtreminio.com/2013/03/unit-testing-tutorial-part-2-assertions-writing-a-useful-test-and-dataprovider - public function dataProviderRoles6() { return $this->ROLES6; } public function dataProviderRoles5() { return $this->ROLES5; } + // Idem dataProviderRoles5 mais avec USER_from_ldap en plus: + public function dataProviderRoles6() { return $this->ROLES6; } @@ -456,7 +458,9 @@ class MaterielsControllerTest extends General { $newMateriel["$fields[0]"] = $i; $newMateriel["$fields[1]"] = $j; $combination = [$i,$j]; + // ni administratif ni technique => must FAIL if ($combination == [0,0]) $this->_testMatCreate1FailsAs($role, $newMateriel, implode(',',$combination)); + // technique only if ($combination == [0,1]) { // cree un nouveau materiel //$this->_testMatCreateAs($role, $newMateriel, implode(',',$combination)); @@ -502,19 +506,29 @@ class MaterielsControllerTest extends General { * @dataProvider dataProviderRoles6 */ //private function _testMatCreateAs($role, $materiel=null) { $this->testMat31CreateAs($role, $materiel); } - public function testMat31CreateAs($role, $materiel=null) - { - $materiel = $materiel ? $this->newMaterielWithAllMandatoryFields : $materiel; + public function testMat31CreateAs($role, $materiel=null) { + //$materiel = $materiel ? $this->newMaterielWithAllMandatoryFields : $materiel; + if (is_null($materiel)) $materiel = $this->newMaterielWithAllMandatoryFields; + //debug($materiel); //$this->setUp(); // On doit pouvoir accéder à la page une fois authentifié $this->authAs($role); + + // AVANT add $this->get('/materiels/index'); + // USER ne voit pas les materiels ARCHIVED $nbmat = $this->USER_IS_ADMIN_AT_LEAST() ? 7 : 6; $this->assertResponseContains("Liste des matériels (".$nbmat.")", $role); - $this->post('/materiels/add', $this->newMaterielWithAllMandatoryFields); + //$this->post('/materiels/add', $this->newMaterielWithAllMandatoryFields); + $this->post('/materiels/add', $materiel); + + // APRES add $this->get('/materiels/index'); $nbmat++; - $this->assertResponseContains("Liste des matériels (".$nbmat.")", $role." Le matériel ne s'ajoute pas correctement"); + // VOIR LE HTML DE LA PAGE WEB + //var_dump($this->_getBodyAsString()); + $this->assertResponseContains("Liste des matériels (".$nbmat.")", "(testMat31CreateAs): Le matériel ne s'ajoute pas correctement (avec le profil $role)"); + //$this->assertResponseContains("Liste des matériels (", "(testMat31CreateAs): Le matériel ne s'ajoute pas correctement avec le profil $role"); $this->assertResponseContains("Test 15", "Le matériel ne s'ajoute pas correctement."); $this->assertResponseContains("TEST-2016-0015", "La génération du n°de labo n'est pas bonne."); //$this->tearDown(); -- libgit2 0.21.2