Commit 8630ba325ba95f584ecb40b96c97f6f7a86b6566

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

Bugfix tests

README.md
... ... @@ -54,9 +54,9 @@ Logiciel testé et validé sur les configurations suivantes :
54 54 VERSION ACTUELLE
55 55  
56 56 Date: 16/05/2019
57   -Version: 2.12.12
  57 +Version: 2.12.13
58 58 Author: EP
59   -Commentaire: Bugfix ajout materiel
  59 +Commentaire: Bugfix tests
60 60  
61 61 IMPORTANT :
62 62 - Pour connaitre la version actuelle, taper "./VERSION"
... ...
TESTS.sh
... ... @@ -11,3 +11,8 @@ vendor/bin/phpunit || vendor/phpunit/phpunit/phpunit
11 11 #vendor/bin/phpunit --verbose --log-tap tap.log
12 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 820 'action' => 'view',
821 821 $id
822 822 ]);
823   - } else
  823 + } else {
  824 + debug("(EP debug): ");
  825 + debug($materiel->errors());
824 826 $this->Flash->error(__("Le matériel n'a pas pu être $action"."."));
  827 + }
825 828 } // if POST
826 829  
827 830  
... ...
src/Model/Table/MaterielsTable.php
... ... @@ -431,6 +431,7 @@ class MaterielsTable extends AppTable
431 431 if (empty($entity->get('date_reception'))) {
432 432 $entity->set('date_reception', null);
433 433 }
  434 + // TRES IMPORTANT, sinon echec de la sauvegarde !!!
434 435 return true;
435 436 }
436 437 }
... ...
src/Template/Materiels/edit.ctp
... ... @@ -23,7 +23,9 @@ $PROFILE_ADMINPLUS = $PROFILE_ADMINPLUS;
23 23 $PROFILE_SUPERADMIN = $PROFILE_SUPERADMIN;
24 24 $allProfiles = $allProfiles;
25 25  
26   -$_serialize = $_serialize; // True or False
  26 +// PAS TOUJOURS
  27 +//$_serialize = $_serialize; // True or False
  28 +
27 29 $username = $username;
28 30 $configuration = $configuration;
29 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 711 'metrologie' => 0,
712 712 'fournisseur_id' => 2
713 713 ],
  714 +
  715 + // nom_createur = 'test0 test9'
  716 + //'nom_responsable' => 'test0 test9'
714 717 [
715 718 'id' => 11,
716 719 'designation' => 'Test 11 (C)',
... ... @@ -736,8 +739,10 @@ class MaterielsFixture extends TestFixture {
736 739 'etiquette' => 0,
737 740 'lieu_detail' => 'Lorem ipsum dolor sit amet',
738 741 'nom_responsable' => 'test0 test9',
  742 + //'nom_responsable' => 'user5 USER',
739 743 'email_responsable' => 'Lorem ipsum dolor sit amet',
740 744 'nom_createur' => 'test0 test9',
  745 + //'nom_createur' => 'user5 USER',
741 746 'nom_modificateur' => 'Lorem ipsum dolor sit amet',
742 747 'created' => '2016-04-19 09:09:29',
743 748 'modified' => '2016-04-19 09:09:29',
... ... @@ -747,6 +752,7 @@ class MaterielsFixture extends TestFixture {
747 752 'metrologie' => 0,
748 753 'fournisseur_id' => 1
749 754 ],
  755 +
750 756 [
751 757 'id' => 12,
752 758 'designation' => 'Test 12 (V)',
... ... @@ -819,6 +825,8 @@ class MaterielsFixture extends TestFixture {
819 825 'metrologie' => 0,
820 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 831 'id' => 14,
824 832 'designation' => 'Test 14 (A)',
... ... @@ -830,6 +838,7 @@ class MaterielsFixture extends TestFixture {
830 838 'materiel_administratif' => 1,
831 839 'materiel_technique' => 1,
832 840 'status' => 'ARCHIVED',
  841 + //'status' => 'TOBEARCHIVED',
833 842 'date_acquisition' => '2016-05-10',
834 843 'prix_ht' => 75,
835 844 'eotp' => 'Lorem ipsum dolor sit amet',
... ...
tests/Fixture/SitesFixture.php
... ... @@ -39,5 +39,9 @@ class SitesFixture extends TestFixture
39 39 'id' => 1,
40 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 71 'materiel_technique' => 1,
72 72 //'status' => 'CREATED',
73 73 'date_acquisition' => '19-04-2016',
  74 + //'date_acquisition' => '19-04-2019',
74 75 /*
75 76 'nom_responsable' => 'Jacques Utilisateur',
76 77 'email_responsable' => 'Jacques.Utilisateur@irap.omp.eu'
... ... @@ -117,10 +118,11 @@ class MaterielsControllerTest extends General {
117 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 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 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 458 $newMateriel["$fields[0]"] = $i;
457 459 $newMateriel["$fields[1]"] = $j;
458 460 $combination = [$i,$j];
  461 + // ni administratif ni technique => must FAIL
459 462 if ($combination == [0,0]) $this->_testMatCreate1FailsAs($role, $newMateriel, implode(',',$combination));
  463 + // technique only
460 464 if ($combination == [0,1]) {
461 465 // cree un nouveau materiel
462 466 //$this->_testMatCreateAs($role, $newMateriel, implode(',',$combination));
... ... @@ -502,19 +506,29 @@ class MaterielsControllerTest extends General {
502 506 * @dataProvider dataProviderRoles6
503 507 */
504 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 513 //$this->setUp();
509 514 // On doit pouvoir accéder à la page une fois authentifié
510 515 $this->authAs($role);
  516 +
  517 + // AVANT add
511 518 $this->get('/materiels/index');
  519 + // USER ne voit pas les materiels ARCHIVED
512 520 $nbmat = $this->USER_IS_ADMIN_AT_LEAST() ? 7 : 6;
513 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 526 $this->get('/materiels/index');
516 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 532 $this->assertResponseContains("Test 15", "Le matériel ne s'ajoute pas correctement.");
519 533 $this->assertResponseContains("TEST-2016-0015", "La génération du n°de labo n'est pas bonne.");
520 534 //$this->tearDown();
... ...