Commit 8630ba325ba95f584ecb40b96c97f6f7a86b6566

Authored by Etienne Pallier
1 parent f603f4d2
Exists in master and in 2 other branches dev, dev-IRAP

Bugfix tests

@@ -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"
@@ -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();