Commit 8630ba325ba95f584ecb40b96c97f6f7a86b6566
1 parent
f603f4d2
Exists in
master
and in
2 other branches
Bugfix tests
Showing
8 changed files
with
49 additions
and
11 deletions
Show diff stats
README.md
@@ -54,9 +54,9 @@ Logiciel testé et validé sur les configurations suivantes : | @@ -54,9 +54,9 @@ Logiciel testé et validé sur les configurations suivantes : | ||
54 | VERSION ACTUELLE | 54 | VERSION ACTUELLE |
55 | 55 | ||
56 | Date: 16/05/2019 | 56 | Date: 16/05/2019 |
57 | -Version: 2.12.12 | 57 | +Version: 2.12.13 |
58 | Author: EP | 58 | Author: EP |
59 | -Commentaire: Bugfix ajout materiel | 59 | +Commentaire: Bugfix tests |
60 | 60 | ||
61 | IMPORTANT : | 61 | IMPORTANT : |
62 | - Pour connaitre la version actuelle, taper "./VERSION" | 62 | - Pour connaitre la version actuelle, taper "./VERSION" |
TESTS.sh
@@ -11,3 +11,8 @@ vendor/bin/phpunit || vendor/phpunit/phpunit/phpunit | @@ -11,3 +11,8 @@ vendor/bin/phpunit || vendor/phpunit/phpunit/phpunit | ||
11 | #vendor/bin/phpunit --verbose --log-tap tap.log | 11 | #vendor/bin/phpunit --verbose --log-tap tap.log |
12 | #vendor/bin/phpunit --testdox | 12 | #vendor/bin/phpunit --testdox |
13 | 13 | ||
14 | +# Executer UN SEUL test: | ||
15 | +# Ex: je veux executer ONLY le test testMat31CreateAs() de MaterielsControllerTest: | ||
16 | +#vendor/bin/phpunit --filter testMat31CreateAs | ||
17 | +#vendor/bin/phpunit --filter testMat32CreateAdministratifOrTechnicalAs | ||
18 | + |
src/Controller/MaterielsController.php
@@ -820,8 +820,11 @@ class MaterielsController extends AppController | @@ -820,8 +820,11 @@ class MaterielsController extends AppController | ||
820 | 'action' => 'view', | 820 | 'action' => 'view', |
821 | $id | 821 | $id |
822 | ]); | 822 | ]); |
823 | - } else | 823 | + } else { |
824 | + debug("(EP debug): "); | ||
825 | + debug($materiel->errors()); | ||
824 | $this->Flash->error(__("Le matériel n'a pas pu être $action".".")); | 826 | $this->Flash->error(__("Le matériel n'a pas pu être $action".".")); |
827 | + } | ||
825 | } // if POST | 828 | } // if POST |
826 | 829 | ||
827 | 830 |
src/Model/Table/MaterielsTable.php
@@ -431,6 +431,7 @@ class MaterielsTable extends AppTable | @@ -431,6 +431,7 @@ class MaterielsTable extends AppTable | ||
431 | if (empty($entity->get('date_reception'))) { | 431 | if (empty($entity->get('date_reception'))) { |
432 | $entity->set('date_reception', null); | 432 | $entity->set('date_reception', null); |
433 | } | 433 | } |
434 | + // TRES IMPORTANT, sinon echec de la sauvegarde !!! | ||
434 | return true; | 435 | return true; |
435 | } | 436 | } |
436 | } | 437 | } |
src/Template/Materiels/edit.ctp
@@ -23,7 +23,9 @@ $PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; | @@ -23,7 +23,9 @@ $PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS; | ||
23 | $PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; | 23 | $PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN; |
24 | $allProfiles = $allProfiles; | 24 | $allProfiles = $allProfiles; |
25 | 25 | ||
26 | -$_serialize = $_serialize; // True or False | 26 | +// PAS TOUJOURS |
27 | +//$_serialize = $_serialize; // True or False | ||
28 | + | ||
27 | $username = $username; | 29 | $username = $username; |
28 | $configuration = $configuration; | 30 | $configuration = $configuration; |
29 | $priviledgedUser = $priviledgedUser; // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié (pas dans la table "utilisateurs") | 31 | $priviledgedUser = $priviledgedUser; // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié (pas dans la table "utilisateurs") |
tests/Fixture/MaterielsFixture.php
@@ -711,6 +711,9 @@ class MaterielsFixture extends TestFixture { | @@ -711,6 +711,9 @@ class MaterielsFixture extends TestFixture { | ||
711 | 'metrologie' => 0, | 711 | 'metrologie' => 0, |
712 | 'fournisseur_id' => 2 | 712 | 'fournisseur_id' => 2 |
713 | ], | 713 | ], |
714 | + | ||
715 | + // nom_createur = 'test0 test9' | ||
716 | + //'nom_responsable' => 'test0 test9' | ||
714 | [ | 717 | [ |
715 | 'id' => 11, | 718 | 'id' => 11, |
716 | 'designation' => 'Test 11 (C)', | 719 | 'designation' => 'Test 11 (C)', |
@@ -736,8 +739,10 @@ class MaterielsFixture extends TestFixture { | @@ -736,8 +739,10 @@ class MaterielsFixture extends TestFixture { | ||
736 | 'etiquette' => 0, | 739 | 'etiquette' => 0, |
737 | 'lieu_detail' => 'Lorem ipsum dolor sit amet', | 740 | 'lieu_detail' => 'Lorem ipsum dolor sit amet', |
738 | 'nom_responsable' => 'test0 test9', | 741 | 'nom_responsable' => 'test0 test9', |
742 | + //'nom_responsable' => 'user5 USER', | ||
739 | 'email_responsable' => 'Lorem ipsum dolor sit amet', | 743 | 'email_responsable' => 'Lorem ipsum dolor sit amet', |
740 | 'nom_createur' => 'test0 test9', | 744 | 'nom_createur' => 'test0 test9', |
745 | + //'nom_createur' => 'user5 USER', | ||
741 | 'nom_modificateur' => 'Lorem ipsum dolor sit amet', | 746 | 'nom_modificateur' => 'Lorem ipsum dolor sit amet', |
742 | 'created' => '2016-04-19 09:09:29', | 747 | 'created' => '2016-04-19 09:09:29', |
743 | 'modified' => '2016-04-19 09:09:29', | 748 | 'modified' => '2016-04-19 09:09:29', |
@@ -747,6 +752,7 @@ class MaterielsFixture extends TestFixture { | @@ -747,6 +752,7 @@ class MaterielsFixture extends TestFixture { | ||
747 | 'metrologie' => 0, | 752 | 'metrologie' => 0, |
748 | 'fournisseur_id' => 1 | 753 | 'fournisseur_id' => 1 |
749 | ], | 754 | ], |
755 | + | ||
750 | [ | 756 | [ |
751 | 'id' => 12, | 757 | 'id' => 12, |
752 | 'designation' => 'Test 12 (V)', | 758 | 'designation' => 'Test 12 (V)', |
@@ -819,6 +825,8 @@ class MaterielsFixture extends TestFixture { | @@ -819,6 +825,8 @@ class MaterielsFixture extends TestFixture { | ||
819 | 'metrologie' => 0, | 825 | 'metrologie' => 0, |
820 | 'fournisseur_id' => 1 | 826 | 'fournisseur_id' => 1 |
821 | ], | 827 | ], |
828 | + | ||
829 | + // Materiel ARCHIVED => pas vu par un simple utilisateur (materiel/index/ ne l'affiche pas) | ||
822 | [ | 830 | [ |
823 | 'id' => 14, | 831 | 'id' => 14, |
824 | 'designation' => 'Test 14 (A)', | 832 | 'designation' => 'Test 14 (A)', |
@@ -830,6 +838,7 @@ class MaterielsFixture extends TestFixture { | @@ -830,6 +838,7 @@ class MaterielsFixture extends TestFixture { | ||
830 | 'materiel_administratif' => 1, | 838 | 'materiel_administratif' => 1, |
831 | 'materiel_technique' => 1, | 839 | 'materiel_technique' => 1, |
832 | 'status' => 'ARCHIVED', | 840 | 'status' => 'ARCHIVED', |
841 | + //'status' => 'TOBEARCHIVED', | ||
833 | 'date_acquisition' => '2016-05-10', | 842 | 'date_acquisition' => '2016-05-10', |
834 | 'prix_ht' => 75, | 843 | 'prix_ht' => 75, |
835 | 'eotp' => 'Lorem ipsum dolor sit amet', | 844 | 'eotp' => 'Lorem ipsum dolor sit amet', |
tests/Fixture/SitesFixture.php
@@ -39,5 +39,9 @@ class SitesFixture extends TestFixture | @@ -39,5 +39,9 @@ class SitesFixture extends TestFixture | ||
39 | 'id' => 1, | 39 | 'id' => 1, |
40 | 'nom' => 'Lorem ipsum dolor sit amet' | 40 | 'nom' => 'Lorem ipsum dolor sit amet' |
41 | ], | 41 | ], |
42 | + [ | ||
43 | + 'id' => 9, | ||
44 | + 'nom' => 'N/A' | ||
45 | + ], | ||
42 | ]; | 46 | ]; |
43 | } | 47 | } |
tests/TestCase/Controller/MaterielsControllerTest.php
@@ -71,6 +71,7 @@ class MaterielsControllerTest extends General { | @@ -71,6 +71,7 @@ class MaterielsControllerTest extends General { | ||
71 | 'materiel_technique' => 1, | 71 | 'materiel_technique' => 1, |
72 | //'status' => 'CREATED', | 72 | //'status' => 'CREATED', |
73 | 'date_acquisition' => '19-04-2016', | 73 | 'date_acquisition' => '19-04-2016', |
74 | + //'date_acquisition' => '19-04-2019', | ||
74 | /* | 75 | /* |
75 | 'nom_responsable' => 'Jacques Utilisateur', | 76 | 'nom_responsable' => 'Jacques Utilisateur', |
76 | 'email_responsable' => 'Jacques.Utilisateur@irap.omp.eu' | 77 | 'email_responsable' => 'Jacques.Utilisateur@irap.omp.eu' |
@@ -117,10 +118,11 @@ class MaterielsControllerTest extends General { | @@ -117,10 +118,11 @@ class MaterielsControllerTest extends General { | ||
117 | parent::tearDown(); | 118 | parent::tearDown(); |
118 | } | 119 | } |
119 | 120 | ||
120 | - // This is a data provider used for a lot of tests | 121 | + // This are data providers used for a lot of tests |
121 | // See https://jtreminio.com/2013/03/unit-testing-tutorial-part-2-assertions-writing-a-useful-test-and-dataprovider | 122 | // See https://jtreminio.com/2013/03/unit-testing-tutorial-part-2-assertions-writing-a-useful-test-and-dataprovider |
122 | - public function dataProviderRoles6() { return $this->ROLES6; } | ||
123 | public function dataProviderRoles5() { return $this->ROLES5; } | 123 | public function dataProviderRoles5() { return $this->ROLES5; } |
124 | + // Idem dataProviderRoles5 mais avec USER_from_ldap en plus: | ||
125 | + public function dataProviderRoles6() { return $this->ROLES6; } | ||
124 | 126 | ||
125 | 127 | ||
126 | 128 | ||
@@ -456,7 +458,9 @@ class MaterielsControllerTest extends General { | @@ -456,7 +458,9 @@ class MaterielsControllerTest extends General { | ||
456 | $newMateriel["$fields[0]"] = $i; | 458 | $newMateriel["$fields[0]"] = $i; |
457 | $newMateriel["$fields[1]"] = $j; | 459 | $newMateriel["$fields[1]"] = $j; |
458 | $combination = [$i,$j]; | 460 | $combination = [$i,$j]; |
461 | + // ni administratif ni technique => must FAIL | ||
459 | if ($combination == [0,0]) $this->_testMatCreate1FailsAs($role, $newMateriel, implode(',',$combination)); | 462 | if ($combination == [0,0]) $this->_testMatCreate1FailsAs($role, $newMateriel, implode(',',$combination)); |
463 | + // technique only | ||
460 | if ($combination == [0,1]) { | 464 | if ($combination == [0,1]) { |
461 | // cree un nouveau materiel | 465 | // cree un nouveau materiel |
462 | //$this->_testMatCreateAs($role, $newMateriel, implode(',',$combination)); | 466 | //$this->_testMatCreateAs($role, $newMateriel, implode(',',$combination)); |
@@ -502,19 +506,29 @@ class MaterielsControllerTest extends General { | @@ -502,19 +506,29 @@ class MaterielsControllerTest extends General { | ||
502 | * @dataProvider dataProviderRoles6 | 506 | * @dataProvider dataProviderRoles6 |
503 | */ | 507 | */ |
504 | //private function _testMatCreateAs($role, $materiel=null) { $this->testMat31CreateAs($role, $materiel); } | 508 | //private function _testMatCreateAs($role, $materiel=null) { $this->testMat31CreateAs($role, $materiel); } |
505 | - public function testMat31CreateAs($role, $materiel=null) | ||
506 | - { | ||
507 | - $materiel = $materiel ? $this->newMaterielWithAllMandatoryFields : $materiel; | 509 | + public function testMat31CreateAs($role, $materiel=null) { |
510 | + //$materiel = $materiel ? $this->newMaterielWithAllMandatoryFields : $materiel; | ||
511 | + if (is_null($materiel)) $materiel = $this->newMaterielWithAllMandatoryFields; | ||
512 | + //debug($materiel); | ||
508 | //$this->setUp(); | 513 | //$this->setUp(); |
509 | // On doit pouvoir accéder à la page une fois authentifié | 514 | // On doit pouvoir accéder à la page une fois authentifié |
510 | $this->authAs($role); | 515 | $this->authAs($role); |
516 | + | ||
517 | + // AVANT add | ||
511 | $this->get('/materiels/index'); | 518 | $this->get('/materiels/index'); |
519 | + // USER ne voit pas les materiels ARCHIVED | ||
512 | $nbmat = $this->USER_IS_ADMIN_AT_LEAST() ? 7 : 6; | 520 | $nbmat = $this->USER_IS_ADMIN_AT_LEAST() ? 7 : 6; |
513 | $this->assertResponseContains("Liste des matériels (".$nbmat.")", $role); | 521 | $this->assertResponseContains("Liste des matériels (".$nbmat.")", $role); |
514 | - $this->post('/materiels/add', $this->newMaterielWithAllMandatoryFields); | 522 | + //$this->post('/materiels/add', $this->newMaterielWithAllMandatoryFields); |
523 | + $this->post('/materiels/add', $materiel); | ||
524 | + | ||
525 | + // APRES add | ||
515 | $this->get('/materiels/index'); | 526 | $this->get('/materiels/index'); |
516 | $nbmat++; | 527 | $nbmat++; |
517 | - $this->assertResponseContains("Liste des matériels (".$nbmat.")", $role." Le matériel ne s'ajoute pas correctement"); | 528 | + // VOIR LE HTML DE LA PAGE WEB |
529 | + //var_dump($this->_getBodyAsString()); | ||
530 | + $this->assertResponseContains("Liste des matériels (".$nbmat.")", "(testMat31CreateAs): Le matériel ne s'ajoute pas correctement (avec le profil $role)"); | ||
531 | + //$this->assertResponseContains("Liste des matériels (", "(testMat31CreateAs): Le matériel ne s'ajoute pas correctement avec le profil $role"); | ||
518 | $this->assertResponseContains("Test 15", "Le matériel ne s'ajoute pas correctement."); | 532 | $this->assertResponseContains("Test 15", "Le matériel ne s'ajoute pas correctement."); |
519 | $this->assertResponseContains("TEST-2016-0015", "La génération du n°de labo n'est pas bonne."); | 533 | $this->assertResponseContains("TEST-2016-0015", "La génération du n°de labo n'est pas bonne."); |
520 | //$this->tearDown(); | 534 | //$this->tearDown(); |