Commit 2eb4bb8576ca2340c532afa4c21aff10c77b5e80
Exists in
master
and in
1 other branch
Merge dev branch into master branch (vv3.7.9.49)
Showing
5 changed files
with
50 additions
and
13 deletions
Show diff stats
README.md
... | ... | @@ -54,10 +54,13 @@ Logiciel testé et validé sur les configurations suivantes : |
54 | 54 | VERSION ACTUELLE |
55 | 55 | |
56 | 56 | Date: 26/06/2020 |
57 | -Version: 3.7.9.48 | |
57 | +Version: 3.7.9.49 | |
58 | 58 | Author: EP |
59 | 59 | Commentaire: |
60 | - - TEST3 : Ajout en cours (presque fini) d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents). | |
60 | + - TEST3 : Ajout (terminé) d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents) | |
61 | + - bugfix autorisations d'affichage des boutons d'action sur documents dans materiels/view/ | |
62 | + - Nombreuses refactorisations | |
63 | + - ... | |
61 | 64 | |
62 | 65 | - Amélioration page /pages/acls |
63 | 66 | |
... | ... | @@ -102,6 +105,11 @@ La liste ci-dessous est aussi en ligne ici : https://tinyurl.com/labinvent#headi |
102 | 105 | |
103 | 106 | ----------------------------------------------------------------------------------------------------------- |
104 | 107 | |
108 | +26/06/2020 v3.7.9.48-49 (EP) | |
109 | + - TEST3 : Ajout d'un 3ème (et DERNIER) gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues pour TOUS les materiels de la BD de test (fixture), aussi bien dans la vue index globale que dans CHAQUE vue détaillée de chaque matériel (et surtout en vérifiant aussi la liste des entités associées (suivis,emprunts,documents). | |
110 | + - bugfix autorisations d'affichage des boutons d'action sur documents dans materiels/view/ | |
111 | + - Nombreuses refactorisations | |
112 | + | |
105 | 113 | 25/06/2020 v3.7.9.43-47 (EP) |
106 | 114 | - TEST2 : Ajout d'un 2ème très gros test générique des vues index et view de Materiels (/materiels/index et /view) qui teste le CONTENU des vues (les boutons d'action) |
107 | 115 | à partir d'UN UNIQUE matériel de test qui est modifié à souhait pour essayer de représenter tous les grands cas possibles | ... | ... |
src/Controller/MaterielsController.php
... | ... | @@ -1116,9 +1116,23 @@ class MaterielsController extends AppController { |
1116 | 1116 | //$CAN_EDIT_OR_DELETE_EMPRUNTS = $CAN_MANAGE_EMPRUNTS; |
1117 | 1117 | |
1118 | 1118 | // - docs liés |
1119 | - $CAN_MANAGE_FILES = $CAN_EDIT; // edit, delete, ou envoi devis par mail | |
1119 | + //$CAN_MANAGE_FILES = $CAN_EDIT; // edit, delete, ou envoi devis par mail | |
1120 | 1120 | //$CAN_MANAGE_FILES = $CONTEXT1; // edit, delete, ou envoi devis par mail |
1121 | 1121 | //$CAN_MANAGE_FILES = $dc->isAuthorized($u,'edit') && $dc->isAuthorized($u,'delete') && $dc->isAuthorized($u,'mailDevis'); |
1122 | + $CAN_MANAGE_FILES = false; | |
1123 | + if ($e->documents) { | |
1124 | + $e1 = $e->documents[0]; | |
1125 | + //debug($emprunt1); | |
1126 | + //$CAN_MANAGE_EMPRUNTS = $ec->isAuthorizedAction('edit', $emprunt1->id, false, $u); | |
1127 | + $CAN_MANAGE_FILES = $dc->isAuthorizedActionForCurrentUser('edit', $e1->id, null, $u); | |
1128 | + // on peut faire de même avec l'action delete | |
1129 | + //$CAN_MANAGE_EMPRUNTS = $sc->isAuthorized($u,'delete', $suivi1->id); | |
1130 | + } | |
1131 | + $this->d("CAN_MANAGE_FILES ? "); $this->d2($CAN_MANAGE_FILES); | |
1132 | + $CAN_EDIT_OR_DELETE_OR_SENDBYMAIL_FILES = $CAN_MANAGE_FILES; | |
1133 | + | |
1134 | + | |
1135 | + | |
1122 | 1136 | |
1123 | 1137 | $this->set(compact('CAN_MANAGE_SUIVIS', 'CAN_MANAGE_EMPRUNTS', 'CAN_MANAGE_FILES')); |
1124 | 1138 | ... | ... |
src/Template/Materiels/view.ctp
tests/TestCase/Controller/General.php
... | ... | @@ -264,8 +264,8 @@ class General extends TestCase { |
264 | 264 | ]; |
265 | 265 | foreach ($actions as $action) |
266 | 266 | //foreach ([0,1] as $i) { |
267 | - //foreach ([0] as $i) { | |
268 | - foreach ([0,1,2,3] as $i) { | |
267 | + foreach ([1] as $i) { | |
268 | + //foreach ([0,1,2,3] as $i) { | |
269 | 269 | $item = [ $action, $roles4[$i], $this->ROLES4[$i][0] ]; |
270 | 270 | //debug($item); |
271 | 271 | $actions_and_roles[] = $item; | ... | ... |
tests/TestCase/Controller/MaterielsControllerTest.php
... | ... | @@ -1918,6 +1918,8 @@ class MaterielsControllerTest extends General { |
1918 | 1918 | * @dataProvider dataProviderRoles4 |
1919 | 1919 | */ |
1920 | 1920 | public function testMaterielPagesIndexAndView2($role) { |
1921 | + //if ($role != 'RESP') return; | |
1922 | + | |
1921 | 1923 | $this->authAs($role); |
1922 | 1924 | |
1923 | 1925 | $this->d("*******************"); |
... | ... | @@ -1962,6 +1964,7 @@ class MaterielsControllerTest extends General { |
1962 | 1964 | if ( $m->status!='ARCHIVED' || $this->USER_IS_ADMIN_AT_LEAST() ) |
1963 | 1965 | $this->_checkIndexPageContainsALineForThisMateriel($m,$cm); |
1964 | 1966 | } |
1967 | + | |
1965 | 1968 | // 2) teste sa vue détaillée (et la liste de ses suivis et emprunts) |
1966 | 1969 | $id = $m->id; |
1967 | 1970 | if ($cm->isAuthorizedActionForCurrentUser('view',$id)) { |
... | ... | @@ -1970,9 +1973,10 @@ class MaterielsControllerTest extends General { |
1970 | 1973 | // a) tester que la vue contient bien les boutons attendus |
1971 | 1974 | $this->_checkViewPageContainsAllAuthorizedActionButtonsForMaterielId($id, $user, $cm); |
1972 | 1975 | //TODO: |
1973 | - // b) tester la liste des suivis et emprunts | |
1976 | + // b) tester la liste des suivis, emprunts, et docs | |
1974 | 1977 | $this->_checkViewPageContainsAllRelatedEntitiesForMateriel($m, $user, $cm); |
1975 | 1978 | } |
1979 | + | |
1976 | 1980 | } |
1977 | 1981 | } |
1978 | 1982 | |
... | ... | @@ -2130,7 +2134,7 @@ class MaterielsControllerTest extends General { |
2130 | 2134 | private function _checkViewPageContainsAllRelatedEntitiesForMateriel($m, $user, $cm) { |
2131 | 2135 | $related_entities_names = ['suivis', 'emprunts', 'documents']; |
2132 | 2136 | foreach ($related_entities_names as $entities_name) { |
2133 | - debug("- ******* Checking presence (in view) of related entity $entities_name *******"); | |
2137 | + $this->d("- ******* Checking presence (in view) of related entity $entities_name *******"); | |
2134 | 2138 | |
2135 | 2139 | // 1) check titre du style "Suivi(s) du matériel (0)" |
2136 | 2140 | $entities = $m->$entities_name; |
... | ... | @@ -2142,12 +2146,12 @@ class MaterielsControllerTest extends General { |
2142 | 2146 | $this->assertResponseContains("$entity_title matériel ("); |
2143 | 2147 | $this->assertResponseContains("$entity_title matériel ($nbentities)"); |
2144 | 2148 | //$related_entities = $m->suivis; |
2145 | - debug("for matos $m->id, $entities_name entities are"); | |
2149 | + //debug("for matos $m->id, $entities_name entities are"); | |
2146 | 2150 | //debug($suivis); |
2147 | 2151 | |
2148 | 2152 | // 2) check présence de chaque entité avec ses boutons d'action (edit, delete) et ses attributs (nom, autres...) |
2149 | 2153 | foreach ($entities as $e) { |
2150 | - debug("check entity id $e->id name $e->nom"); | |
2154 | + //debug("check entity id $e->id name $e->nom"); | |
2151 | 2155 | |
2152 | 2156 | /* a) Boutons action (edit,delete) |
2153 | 2157 | * La présence (ou non) des boutons dépend uniquement du matériel affiché. |
... | ... | @@ -2160,6 +2164,13 @@ class MaterielsControllerTest extends General { |
2160 | 2164 | // delete |
2161 | 2165 | $action = "$entities_name/delete"; // suivis/edit |
2162 | 2166 | $this->_checkActionButtonIsPresentInPage($action, $e->id, $user); |
2167 | + /* | |
2168 | + // (docs) mailDevis | |
2169 | + if ($entities_name == 'documents') { | |
2170 | + $action = "$entities_name/mailDevis"; // suivis/edit | |
2171 | + $this->_checkActionButtonIsPresentInPage($action, $e->id, $user); | |
2172 | + } | |
2173 | + */ | |
2163 | 2174 | |
2164 | 2175 | // b) Attributs (nom...) |
2165 | 2176 | //$this->assertResponseContains($e->id); |
... | ... | @@ -2278,7 +2289,7 @@ class MaterielsControllerTest extends General { |
2278 | 2289 | |
2279 | 2290 | //TODO: |
2280 | 2291 | private function _checkActionButtonIsPresentInPage($action_name, $id, $user) { |
2281 | - return true; | |
2292 | + //return true; | |
2282 | 2293 | |
2283 | 2294 | $controller_name = null; |
2284 | 2295 | $controller = null; |
... | ... | @@ -2288,13 +2299,17 @@ class MaterielsControllerTest extends General { |
2288 | 2299 | $action_name = $args[1]; |
2289 | 2300 | $controller = $this->_getControllerInstanceFromName($controller_name); |
2290 | 2301 | //} |
2302 | + //debug($action_name); | |
2291 | 2303 | $button_should_be_present = $controller->isAuthorizedActionForCurrentUser($action_name, $id, null, $user); |
2304 | + //debug("button_should_be_present is"); debug($button_should_be_present); | |
2292 | 2305 | $action_link = Inflector::dasherize($action_name); // statusTobearchived => status-tobearchived |
2293 | - $elem = '<a href="/'.$controller_name.'/'.$action_link.'/'.$id.'"'; // <a href="/materiels/status-tobearchived/12015" | |
2306 | + //$elem = '<a href="/'.$controller_name.'/'.$action_link.'/'.$id.'"'; // <a href="/materiels/status-tobearchived/12015" | |
2307 | + $elem = '/'.$controller_name.'/'.$action_link.'/'.$id; // <a href="/materiels/status-tobearchived/12015" | |
2308 | + //debug($elem); | |
2294 | 2309 | if ($button_should_be_present) |
2295 | 2310 | $this->assertResponseContains($elem, "La ligne du $controller_name d'id $id dans la vue 'view' des matériels (/materiels/view) NE contient PAS le bouton '$action_name' ($action_link) pourtant attendu !"); |
2296 | 2311 | else |
2297 | - $this->assertResponseContains($elem, "La ligne du $controller_name d'id $id dans la vue 'view' des matériels (/materiels/view) contient le bouton '$action_name' ($action_link) pourtant inattendu !"); | |
2312 | + $this->assertResponseNotContains($elem, "La ligne du $controller_name d'id $id dans la vue 'view' des matériels (/materiels/view) contient le bouton '$action_name' ($action_link) pourtant inattendu !"); | |
2298 | 2313 | } |
2299 | 2314 | |
2300 | 2315 | private function _checkActionButtonIsPresentInIndexPage($action, $id, $cm) { | ... | ... |