/[openfoncier]/branches/3.14.x/tests/testPieces.php
ViewVC logotype

Contents of /branches/3.14.x/tests/testPieces.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2988 - (show annotations)
Fri Apr 25 07:26:59 2014 UTC (10 years, 9 months ago) by nmeucci
Original Path: trunk/tests/testPieces.php
File size: 21640 byte(s)
Suppression des droits d'ajout de pièce pour les profils autres qu'administrateurs.

1 <?php
2 /**
3 *
4 *
5 * @package openfoncier
6 * @version SVN : $Id:
7 */
8
9 //
10 require_once "base.php";
11
12 /**
13 * Cette classe permet de tester l'interface de l'onglet "Pièce"
14 *
15 * Données utilisées : dossier AT0130551200001P0
16 * Fichiers utilisés :
17 * testImportManuel.jpg, testImportManuel.pdf, testImportManuel2.pdf
18 */
19 class PiecesTest extends Base2TestCase {
20
21 /**
22 * Test l'ajout de pièce
23 */
24 public function testAjoutPiece() {
25 //On se connecte à l'application
26 $this->login("admin", "admin");
27 //On clic sur le menu
28 $this->byLinkText("Mes Encours")->click();
29 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
30 $this->verifyNoErrors();
31 //On clic sur le dossier
32 $this->byLinkText("AT 013055 12 00001P0")->click();
33 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
34 $this->verifyNoErrors();
35 //On clic sur l'onglet
36 $this->byId("document_numerise")->click();sleep(1);
37 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
38 $this->verifyNoErrors();
39 //On vérifie qu'il n'y a aucun enregistrement
40 $this->assertRegExp("/^[\s\S]*Aucun enregistrements[\s\S]*$/",$this->byId("sousform-document_numerise")->text());
41 //On vérifie la présence du bouton "Ajouter" (le "+" au dessus du tableau)
42 //et du texte "Ajouter un document"
43 $this->assertRegExp("/^[\s\S]*Ajouter un document[\s\S]*$/",$this->byId("sousform-document_numerise")->text());
44 //On clic sur "Ajouter un document"
45 $this->byCssSelector(".add-16")->click();
46 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
47 $this->verifyNoErrors();
48 //On ecrit les données
49 $this->byId("date_creation")->clear();
50 $this->acceptAlert();
51 $this->byId("date_creation")->value("01/01/2013");
52 $this->select($this->byId("document_numerise_type"))->selectOptionByLabel("notification de délai");
53 //On clic sur le bouton pour ajouter un fichier
54 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
55 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
56 $this->verifyNoErrors();
57 //On sélectionne un document non pdf
58 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.jpg");
59 $this->byName("submit")->click();
60 //On vérifie le message d'erreur
61 $this->assertRegExp("/^[\s\S]*Le fichier n'est pas conforme à la liste des extension\(s\) autorisée\(s\) \(.pdf\)\. \[testImportManuel\.jpg\][\s\S]*$/",$this->byCssSelector("#upload-container .message .text")->text());
62 //On sélectionne un document pdf
63 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf");
64 $this->byName("submit")->click();
65 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
66 $this->verifyNoErrors();
67 //On clic sur le bouton ajouter
68 $this->byXPath('//input[@value="Ajouter"]')->click();
69 //On clic sur le bouton retour
70 $this->byCssSelector("#sformulaire a.retour")->click();sleep(1);
71 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
72 $this->verifyNoErrors();
73 //On vérifie que le document à été ajouté
74 $this->assertRegExp("/^[\s\S]*20130101NDL.pdf[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise table")->text());
75 //On vérifie la categorie du document
76 $this->assertRegExp("/^[\s\S]*Autre[\s\S]*$/",$this->byCssSelector("thead tr th.headerCat")->text());
77 //On vérifie la date de dépot du document
78 $this->assertEquals("01/01/2013", $this->byCssSelector("thead tr th.headerDate")->text());
79 //On affiche le fichier pdf
80 $this->byLinkText("20130101NDL.pdf")->click();sleep(5);
81 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
82 $this->verifyNoErrors();
83 // Liste les fenêtres
84 $windows = $this->windowHandles();
85 // Change la fenêtre
86 $this->window($windows[1]);
87 // On vérifie qu'il n'y ait pas d'erreur
88 $this->verifynoerrors();
89 // On vérifie que le text est présent
90 $this->assertRegExp("/^[\s\S]*TEST IMPORT MANUEL 1[\s\S]*$/",$this->source());
91 // On ferme la fenêtre
92 $this->closeWindow();
93 // On change le focus de la fenêtre
94 $this->window($windows[0]);
95 //On se déconnecte de l'application
96 $this->logout();
97
98 }
99
100 /**
101 * Test l'ajout de pièce déjà existante
102 */
103 public function testAjoutPieceUnique() {
104 // On se connecte à l'application
105 $this->login("admin", "admin");
106 // On clic sur le menu
107 $this->byLinkText("Mes Encours")->click();
108 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
109 $this->verifyNoErrors();
110 // On clic sur le dossier
111 $this->byLinkText("AT 013055 12 00001P0")->click();
112 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
113 $this->verifyNoErrors();
114 //On clic sur l'onglet
115 $this->byId("document_numerise")->click();
116 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
117 $this->verifyNoErrors();
118 //On clic sur "Ajouter un document"
119 $this->byCssSelector(".add-16")->click();
120 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
121 $this->verifyNoErrors();
122 // On ecrit les données
123 $this->byId("date_creation")->clear();
124 $this->acceptAlert();
125 $this->byId("date_creation")->value("01/01/2013");
126 $this->select($this->byId("document_numerise_type"))->selectOptionByLabel("notification de délai");
127 // On clic sur le bouton pour ajouter un fichier
128 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
129 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
130 $this->verifyNoErrors();
131 // On sélectionne le document
132 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf");
133 $this->byName("submit")->click();
134 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
135 $this->verifyNoErrors();
136 // On clic sur le bouton pour voir le fichier ajouté
137 $this->byCssSelector("span.ui-icon.ui-icon-newwin")->click();
138 // On clic sur le fichier ajouté
139 $this->byLinkText("testImportManuel.pdf")->click();sleep(5);
140 // Liste les fenêtres
141 $windows = $this->windowHandles();
142 // On bascule sur le nouvel onglet PDF
143 $this->window($windows[1]);
144 // On vérifie qu'il n'y ait pas d'erreur
145 $this->verifynoerrors();
146 // On vérifie que le text est présent
147 $this->assertContains("TEST IMPORT MANUEL 1", $this->source());
148 // On ferme la fenêtre
149 $this->closeWindow();
150 // On revient sur la fenêtre de base
151 $this->window($windows[0]);
152 // On clique sur le bouton fermer
153 $this->byLinkText("Fermer")->click();sleep(1);
154 // On vérifie qu'il n'y ait pas d'erreur
155 $this->verifynoerrors();
156 // On clic sur le bouton ajouter
157 $this->byXPath('//input[@value="Ajouter"]')->click();sleep(5);
158 // On vérifie qu'il y une erreur
159 $this->assertRegExp("/^[\s\S]*Les valeurs saisies dans les champs[\s\S]*$/",$this->byId("sformulaire")->text());
160 // On se déconnecte de l'application
161 $this->logout();
162
163 }
164
165 /**
166 * Test la modification des pièces numérisés par l'administrateur
167 */
168 public function testModificationPiece() {
169 //On se connecte à l'application
170 $this->login("admin", "admin");
171 //On clic sur le menu
172 $this->byLinkText("Instruction")->click();
173 $this->byLinkText("Recherche")->click();
174 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
175 $this->verifyNoErrors();
176 //On clic sur le dossier
177 $this->byLinkText("AT 013055 12 00001P0")->click();
178 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
179 $this->verifyNoErrors();
180 //On clic sur l'onglet
181 $this->byId("document_numerise")->click();
182 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
183 $this->verifyNoErrors();
184 //On clic sur le document
185 $this->byLinkText("20130101NDL.pdf")->click();
186 // On vérifie que les informations s'affichent
187 $this->assertEquals("01/01/2013", $this->byId('date_creation')->text());
188 $this->assertEquals("notification de délai", $this->byId('document_numerise_type')->text());
189 // On clic sur le bouton modifier
190 $this->byId("action-sousform-document_numerise-modifier")->click();
191 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
192 $this->verifyNoErrors();
193 // On enlève le fichier
194 $this->byCssSelector("span.ui-icon.ui-icon-closethick")->click();
195 //On clic sur le bouton Modifier
196 $this->byXPath('//input[@value="Modifier"]')->click();sleep(1);
197 // On vérifie le message d'erreur
198 $this->assertRegExp("/^[\s\S]*SAISIE NON[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise div.message")->text());
199 // On modifie les données
200 $this->byId("date_creation")->clear();
201 $this->acceptAlert();
202 $this->byId("date_creation")->value("20/04/2013");
203 $this->select($this->byId("document_numerise_type"))->selectOptionByValue("40");
204 //On clic sur le bouton pour ajouter un fichier
205 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
206 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
207 $this->verifyNoErrors();
208 //On sélectionne un document non pdf
209 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel2.pdf");
210 $this->byName("submit")->click();
211 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
212 $this->verifyNoErrors();
213 //On clic sur le bouton modifier
214 $this->byXPath('//input[@value="Modifier"]')->click();sleep(1);
215 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
216 $this->verifyNoErrors();
217 //On clic sur le bouton retour
218 $this->byCssSelector("#sformulaire a.retour")->click();sleep(1);
219 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
220 $this->verifyNoErrors();
221 //On affiche le fichier pdf
222 $this->byLinkText("Visualiser")->click();
223 $this->byLinkText("20130420DGPA04.pdf")->click();sleep(5);
224 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
225 $this->verifyNoErrors();
226 // Liste les fenêtres
227 $windows = $this->windowHandles();
228 // Change la fenêtre
229 $this->window($windows[1]);
230 // On vérifie qu'il n'y ait pas d'erreur
231 $this->verifynoerrors();
232 // On vérifie que le text est présent
233 $this->assertRegExp("/^[\s\S]*TEST IMPORT MANUEL 2[\s\S]*$/",$this->source());
234 // On ferme la fenêtre
235 $this->closeWindow();
236 // On change le focus de la fenêtre
237 $this->window($windows[0]);
238 // On ferme l'overlay
239 $this->byLinkText("Fermer")->click();
240 //On se déconnecte de l'application
241 $this->logout();
242 }
243
244 /**
245 * Test la suppression des pièces numérisés par l'administrateur
246 */
247
248 public function testSuppressionPiece() {
249 //On se connecte à l'application
250 $this->login("admin", "admin");
251 //On clic sur le menu
252 $this->byLinkText("Instruction")->click();
253 $this->byLinkText("Recherche")->click();
254 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
255 $this->verifyNoErrors();
256 //On clic sur le dossier
257 $this->byLinkText("AT 013055 12 00001P0")->click();
258 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
259 $this->verifyNoErrors();
260 //On clic sur l'onglet
261 $this->byId("document_numerise")->click();
262 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
263 $this->verifyNoErrors();
264 //On clic sur le document
265 $this->byLinkText("20130420DGPA04.pdf")->click();
266 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
267 $this->verifyNoErrors();
268 // On vérifie que les informations s'affichent
269 $this->assertEquals("20/04/2013", $this->byId('date_creation')->text());
270 $this->assertEquals("plan de composition d'ensemble du projet", $this->byId('document_numerise_type')->text());
271 // On clic sur le bouton supprimer
272 $this->byXPath("(//div[@id='portlet-actions']/ul/li[2]/a/span)[2]")->click();
273 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
274 $this->verifyNoErrors();
275 //On clic sur le bouton supprimer
276 $this->byXPath('//input[@value="Supprimer"]')->click();
277 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
278 $this->verifyNoErrors();
279 //On clic sur le bouton retour
280 $this->byCssSelector("#sformulaire a.retour")->click();sleep(1);
281 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
282 $this->verifyNoErrors();
283 //On vérifie qu'il n'y a aucun enregistrement
284 $this->assertRegExp("/^[\s\S]*Aucun enregistrements[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise")->text());
285 //On se déconnecte de l'application
286 $this->logout();
287 }
288
289 /**
290 * Test l'affichage des pièces numérisées dans un DA]
291 */
292
293 public function testAffichageDA() {
294
295 // On se connecte à l'application
296 $this->login("instr", "instr");
297 // On clique sur le menu
298 $this->byLinkText("Autorisation")->click();
299 $this->byLinkText("Dossiers D'autorisation")->click();
300 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
301 $this->verifyNoErrors();
302 // On clique sur un dossier d'autorisation possédant au moins un arrêté signé
303 $this->byLinkText("AZ 013055 12 00001")->click();
304 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
305 $this->verifyNoErrors();
306 // On clique sur l'onglet "Pièce(s)"
307 $this->byId("document_numerise")->click();
308 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
309 $this->verifyNoErrors();
310 // On vérifie que le document est présent
311 // html body#jqueryui div#content.ui-widget div#formulaire.ui-tabs div#ui-tabs-2.i-tabs-panel div#sousform-document_numerise div#sousform-document_numerise div.formEntete table.tab-tab
312 $this->assertRegExp("/^[\s\S]*20130614ARRT.pdf[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise table")->text());
313 // On clique sur le document
314 $this->byLinkText("20130614ARRT.pdf")->click();sleep(5);
315 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
316 $this->verifyNoErrors();
317 // Liste les fenêtres
318 $windows = $this->windowHandles();
319 // Change la fenêtre
320 $this->window($windows[1]);
321 // On vérifie qu'il n'y ait pas d'erreur
322 $this->verifynoerrors();
323 // On vérifie que le text est présent
324 $this->assertRegExp("/^[\s\S]*sjudgbjuwskfdhgvujdfkgvh[\s\S]*$/",$this->source());
325 // On ferme la fenêtre
326 $this->closeWindow();
327 // On change le focus de la fenêtre
328 $this->window($windows[0]);
329 //On se déconnecte de l'application
330 $this->logout();
331 }
332
333 /**
334 * Test de l'ajout de pièce à un dossier AT et envoi de message au
335 * référentiel ERP
336 */
337
338 public function testAjoutPieceDossierAT(){
339
340 //{{{On ajoute un dossier AT
341 // On se connecte à l'application
342 $this->login("admin", "admin");
343 //On clique sur le menu "Guichet Unique"
344 $this->byLinkText("Guichet Unique")->click();
345 //On clique sur l'entrée de menu "Nouveau Dossier"
346 $this->byLinkText("Nouveau Dossier")->click();
347 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
348 $this->verifyNoErrors();
349 //On choisit le type détaillé de dossier d'autorisation
350 $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("8");
351 //On choisit le type de la demande
352 $this->select($this->byId("demande_type"))->selectOptionByValue("8");
353 //On saisit le pétitionnaire principal
354 $this->byId("add_petitionnaire_principal")->click();
355 $this->byId("particulier_nom")->value("test");
356 $this->byCssSelector("#sousform-petitionnaire .formControls input")->click();
357 sleep(2);
358 $this->byCssSelector("#sousform-petitionnaire .formControls .retour")->click();
359 //On ajoute la demande
360 $this->byXPath("//input[@value='Ajouter']")->click();
361 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
362 $this->verifyNoErrors();
363 // On vérifie le message de validation
364 $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
365 //On récupère le numéro de dossier d'instruction créé
366 preg_match('/(AT)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
367 $dossier = $dossier[0];
368 //On se déconnecte de l'application
369 $this->deconnect();
370 //}}}
371
372 //{{{On ajoute une pièce au dossier AT
373 // On se connecte à l'application
374 $this->login("instr", "instr");
375 //On clique sur le menu "Instruction"
376 $this->byLinkText("Instruction")->click();
377 //On clique sur le menu "Recherche"
378 $this->byLinkText("Recherche")->click();
379 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
380 $this->verifyNoErrors();
381 //On clique sur le lien du dossier
382 $this->byLinkText($dossier)->click();
383 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
384 $this->verifyNoErrors();
385 //On clique sur l'onglet "document numérisé"
386 $this->byId("document_numerise")->click();
387 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
388 $this->verifyNoErrors();
389 //On clique sur "Ajouter un document"
390 $this->byCssSelector(".formEntete p a")->click();
391 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
392 $this->verifyNoErrors();
393 //On ajoute un fichier
394 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
395 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf");
396 $this->byName("submit")->click();
397 //On choisit le type de document
398 $this->select($this->byId("document_numerise_type"))->selectOptionByValue("78");
399 //On valide l'ajout
400 $this->byXPath("//input[@value='Ajouter']")->click();
401 sleep(2);
402 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
403 $this->verifyNoErrors();
404 //On vérifie le message de validation
405 $this->assertRegExp("/^[\s\S]*Le message a été transmis au référentiel ERP.[\s\S]*$/",$this->byCssSelector("#sousform-document_numerise .message")->text());
406 //}}}
407
408 //{{{On vérifie que le message ne s'affiche pas sur un autre dossier
409 //On clique sur le menu "Instruction"
410 $this->byLinkText("Instruction")->click();
411 //On clique sur le menu "Recherche"
412 $this->byLinkText("Recherche")->click();
413 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
414 $this->verifyNoErrors();
415 //On clique sur le lien du dossier
416 $this->byLinkText("CU 013055 12 00001P0")->click();
417 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
418 $this->verifyNoErrors();
419 //On clique sur l'onglet "document numérisé"
420 $this->byId("document_numerise")->click();
421 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
422 $this->verifyNoErrors();
423 //On clique sur "Ajouter un document"
424 $this->byCssSelector(".formEntete p a")->click();
425 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
426 $this->verifyNoErrors();
427 //On ajoute un fichier
428 $this->byCssSelector("span.ui-icon.ui-icon-arrowthickstop-1-s")->click();
429 $this->byName("userfile[]")->value(dirname(__FILE__)."/binary_files/testImportManuel.pdf");
430 $this->byName("submit")->click();
431 //On choisit le type de document
432 $this->select($this->byId("document_numerise_type"))->selectOptionByValue("78");
433 //On valide l'ajout
434 $this->byXPath("//input[@value='Ajouter']")->click();
435 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
436 $this->verifyNoErrors();
437 //On vérifie le message de validation
438 $this->assertNotContains("Le message a été transmis au référentiel ERP.",$this->byCssSelector("#sousform-document_numerise .message")->text());
439 //On se déconnecte de l'application
440 $this->deconnect();
441 //}}}
442 }
443 }
444
445 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26