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

Diff of /branches/3.14.x/tests/testInstruction.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2605 by softime, Thu Dec 12 18:00:35 2013 UTC revision 3006 by softime, Mon Apr 28 17:59:38 2014 UTC
# Line 105  class Instruction extends Base2TestCase Line 105  class Instruction extends Base2TestCase
105          $this->deconnect();          $this->deconnect();
106      }      }
107      // Fonction public      // Fonction public
108      public function test01OuvertureMenu() {      public function test_01_OuvertureMenu() {
109          // Récupération des utilisateurs          // Récupération des utilisateurs
110          $utilisateurs = $this->listUtlisateurs;          $utilisateurs = $this->listUtlisateurs;
111          // Pour chaque utilisateur on lance le test          // Pour chaque utilisateur on lance le test
# Line 277  class Instruction extends Base2TestCase Line 277  class Instruction extends Base2TestCase
277          $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());          $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
278          // On se déconnecte          // On se déconnecte
279          $this->deconnect();          $this->deconnect();
280            //{{{ Ajout de d'un nouveau dossier
281            // On se connecte à l'application
282            $this->login("guichet", "guichet");
283            //On clique sur le menu des instructions
284            $this->byLinkText("Nouveau Dossier")->click();
285            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
286            $this->verifyNoErrors();
287            //On ajoute un nouveau dossier
288            $dossier = $this->addDossierInstruction(1, 1);
289            // On se déconnecte
290            $this->deconnect();
291            //}}}
292          // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
293          $this->login("instr", "instr");          $this->login("instr", "instr");
294          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
# Line 286  class Instruction extends Base2TestCase Line 298  class Instruction extends Base2TestCase
298          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
299          $this->verifyNoErrors();          $this->verifyNoErrors();
300          sleep(1);          sleep(1);
301          // On clique sur le lien "DP 013055 12 00001P0" dans le tableau          // On clique sur le dossier dernièrement créé
302          $this->byLinkText("DP 013055 12 00001P0")->click();          $this->byLinkText($dossier)->click();
303          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
304          $this->verifyNoErrors();          $this->verifyNoErrors();
305          // On clique sur l'onglet "Instruction"          // On clique sur l'onglet "Instruction"
# Line 299  class Instruction extends Base2TestCase Line 311  class Instruction extends Base2TestCase
311          $this->byCssSelector(".actions-max-1 a")->click();          $this->byCssSelector(".actions-max-1 a")->click();
312          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
313          $this->verifyNoErrors();          $this->verifyNoErrors();
314          //On choisi un événement          //On choisi l'événement CDEC majoration appel decision [majoration]
315          $this->select($this->byId("evenement"))->selectOptionByValue("22");          $this->select($this->byId("evenement"))->selectOptionByValue("22");
316          //On valide le formulaire          //On valide le formulaire
317          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
318            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
319            $this->verifyNoErrors();
320          // On vérifie le mesage d'erreur          // On vérifie le mesage d'erreur
321          $this->assertRegExp('/.*Restriction non valide*/', $this->byCssSelector("#sousform-instruction .message .text")->text());          $this->assertRegExp('/.*Restriction non valide*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
322          // On se déconnecte          // On se déconnecte
# Line 335  class Instruction extends Base2TestCase Line 349  class Instruction extends Base2TestCase
349          $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());          $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
350          // On se déconnecte          // On se déconnecte
351          $this->deconnect();          $this->deconnect();
352    
353            // On se connecte en tant que "admin"
354            $this->login("admin", "admin");
355            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
356            $this->verifyNoErrors();
357            // On clique sur le lien "Paramétrage Dossiers" dans le menu
358            $this->byLinkText("Paramétrage Dossiers")->click();
359            // On clique sur le sousmenu "Événement"
360            $this->byLinkText("Événement")->click();
361            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
362            $this->verifyNoErrors();
363            // On remplis le champs de recherche simple
364            $this->byCssSelector("input[name='recherche']")->value('accepter un dossier sans réserve');
365            // On clique sur le bouton recherche
366            $this->byCssSelector(".ui-button")->click();
367            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
368            $this->verifyNoErrors();
369            // On clique sur le résultat
370            $this->byLinkText("accepter un dossier sans réserve")->click();
371            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
372            $this->verifyNoErrors();
373            // On clique sur le bouton "Modifier"
374            $this->byId('bible')->click();
375            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
376            $this->verifyNoErrors();
377            // On Ajoute 2 éléments de bible automatique
378            $this->byId('bible')->click();
379            //On clique sur le "+" du tableau
380            $this->byClassName("add-16")->click();
381            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
382            $this->verifyNoErrors();
383            $this->byCssSelector('#sousform-bible #libelle')->value("test 1");
384            $this->byId('contenu')->value("test contenu 1");
385            $this->select($this->byId("complement"))->selectOptionByValue("1");
386            $this->select($this->byId("automatique"))->selectOptionByValue("Oui");
387            // On valide la modification
388            $this->byCssSelector("input[value='Ajouter']")->click();
389            sleep(1);
390            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
391            $this->verifyNoErrors();
392            // On vérifie le message de validation
393            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-bible .message")->text());
394            //On retourne sur le tableau d'instructions
395            $this->byCssSelector("#sousform-bible .retour")->click();
396            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
397            $this->verifyNoErrors();
398            //On clique sur le "+" du tableau
399            $this->byClassName("add-16")->click();
400            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
401            $this->verifyNoErrors();
402            $this->byCssSelector('#sousform-bible #libelle')->value("test 2");
403            $this->byId('contenu')->value("test contenu 2");
404            $this->select($this->byId("complement"))->selectOptionByValue("2");
405            $this->select($this->byId("automatique"))->selectOptionByValue("Oui");
406            // On valide la modification
407            $this->byCssSelector("input[value='Ajouter']")->click();
408            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
409            $this->verifyNoErrors();
410            // On vérifie le message de validation
411            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-bible .message")->text());
412            // On se déconnecte
413            $this->deconnect();
414    //
415          // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
416          $this->login("instr", "instr");          $this->login("instr", "instr");
417          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
# Line 344  class Instruction extends Base2TestCase Line 421  class Instruction extends Base2TestCase
421          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
422          $this->verifyNoErrors();          $this->verifyNoErrors();
423          sleep(1);          sleep(1);
424          // On clique sur le lien "DP 013055 12 00001P0" dans le tableau          // On clique sur le dossier dernièrement créé
425          $this->byLinkText("DP 013055 12 00001P0")->click();          $this->byLinkText($dossier)->click();
426          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
427          $this->verifyNoErrors();          $this->verifyNoErrors();
428          // On clique sur l'onglet "Instruction"          // On clique sur l'onglet "Instruction"
# Line 357  class Instruction extends Base2TestCase Line 434  class Instruction extends Base2TestCase
434          $this->byCssSelector(".actions-max-1 a")->click();          $this->byCssSelector(".actions-max-1 a")->click();
435          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
436          $this->verifyNoErrors();          $this->verifyNoErrors();
437          //On choisi un événement          //On choisi l'événement CDEC majoration appel decision [majoration]
438          $this->select($this->byId("evenement"))->selectOptionByValue("22");          $this->select($this->byId("evenement"))->selectOptionByValue("22");
439          //On valide le formulaire          //On valide le formulaire
440          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
# Line 387  class Instruction extends Base2TestCase Line 464  class Instruction extends Base2TestCase
464          $this->verifyNoErrors();          $this->verifyNoErrors();
465          //On choisi l'événement "accepter un dossier sans réserve [acceptation]"          //On choisi l'événement "accepter un dossier sans réserve [acceptation]"
466          $this->select($this->byId("evenement"))->selectOptionByValue("81");          $this->select($this->byId("evenement"))->selectOptionByValue("81");
467            // On clique sur la bible automatique
468            $this->byLinkText('automatique')->click();
469          // On clique sur la bible          // On clique sur la bible
470          $this->byLinkText('bible')->click();          $this->byLinkText('bible')->click();
471          // On vérifie qu'il y est les enregistrments "V56" et "V64"          // On vérifie qu'il y est les enregistrments "V56" et "V64"
# Line 395  class Instruction extends Base2TestCase Line 474  class Instruction extends Base2TestCase
474          $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',          $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',
475              $this->byCssSelector("#tab-bible")->text());              $this->byCssSelector("#tab-bible")->text());
476          // On choisit plusieurs éléments          // On choisit plusieurs éléments
477          $this->byId('checkbox0')->click();          $this->byId('checkbox5')->click();
478          $this->byId('checkbox1')->click();          $this->byId('checkbox6')->click();
479          // On valide le formulaire          // On valide le formulaire
480          $this->byXPath("//input[@value='Valider']")->click();          $this->byXPath("//input[@value='Valider']")->click();
481          // On vérifie le contenu du champ "complément"          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
482          $this->assertRegExp('/^[\s\S]*Vu l\'avis favorable de l\'Architecte des Bâtiments de France en date du[\s\S]*$/', $this->byCssSelector("#complement")->text());          $this->verifyNoErrors();
         $this->assertRegExp('/^[\s\S]*Vu l\'avis favorable avec prescriptions de la Direction Régionale des Affaires Culturelles en date du[\s\S]*$/', $this->byCssSelector("#complement")->text());  
483          // On valide le formulaire          // On valide le formulaire
484          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
485          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
486          $this->verifyNoErrors();          $this->verifyNoErrors();
487          sleep(1);          // On vérifie le message de validation
488          $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());          $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
489          //On retourne sur le tableau d'instructions          //On retourne sur le tableau d'instructions
490          $this->byCssSelector("#sousform-instruction .retour")->click();          $this->byCssSelector("#sousform-instruction .retour")->click();
491          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
492          $this->verifyNoErrors();          $this->verifyNoErrors();
493          //On affiche l'instruction          // On clique sur l'instruction
494          $this->byLinkText("accepter un dossier sans réserve")->click();          $this->byLinkText("accepter un dossier sans réserve")->click();
495          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
496          $this->verifyNoErrors();          $this->verifyNoErrors();
497            // On vérifie le contenu du champ "complément"
498            $this->assertContains("contenu 1", $this->byId("complement_om_html")->text());
499            $this->assertContains("Vu l'avis favorable de l'Architecte des Bâtiments de France en date du", $this->byId("complement_om_html")->text());
500            $this->assertContains("Vu l'avis favorable avec prescriptions de la Direction Régionale des Affaires Culturelles en date du", $this->byId("complement_om_html")->text());
501            $this->assertContains("contenu 2", $this->byId("complement2_om_html")->text());
502          //On vérifie que certains champs apparaissent          //On vérifie que certains champs apparaissent
503          $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());          $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
504          $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());          $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
505          // On se déconnecte          // On se déconnecte
506            $this->deconnect();
507    
508            //{{{
509            // Ajout de d'un nouveau dossier pour test d'ajout d'événement d'instruction
510            // sans lettretype
511            // On se connecte à l'application
512            $this->login("guichet", "guichet");
513            //On clique sur le menu des instructions
514            $this->byLinkText("Nouveau Dossier")->click();
515            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
516            $this->verifyNoErrors();
517            //On ajoute un nouveau dossier
518            $dossier = $this->addDossierInstruction(1, 1, "Test instruction sans édition");
519            // On se déconnecte
520            $this->deconnect();
521            // On se connecte en tant que "instr"
522            $this->login("instr", "instr");
523            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
524            $this->verifyNoErrors();
525            // On clique sur le lien "Mes encours" dans le menu
526            $this->byLinkText("Mes Encours")->click();
527            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
528            $this->verifyNoErrors();
529            sleep(1);
530            // On clique sur le dossier dernièrement créé
531            $this->byLinkText($dossier)->click();
532            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
533            $this->verifyNoErrors();
534            // On clique sur l'onglet "Instruction"
535            $this->byId("instruction")->click();
536            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
537            $this->verifyNoErrors();
538            //Ajout d'une instruction de refus
539            // On clique sur le lien d'ajout dans le tableau
540            $this->byCssSelector(".actions-max-1 a")->click();
541            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
542            $this->verifyNoErrors();
543            //On choisi l'événement Refus HS
544            $this->select($this->byId("evenement"))->selectOptionByValue("94");
545            //On valide le formulaire
546            $this->byXPath("//input[@value='Ajouter']")->click();
547            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
548            $this->verifyNoErrors();
549            // On vérifie le mesage de validation
550            $this->assertRegExp(
551                '/.*Vos modifications ont bien été enregistrées.*/',
552                $this->byCssSelector("#sousform-instruction .message .text")->text()
553            );
554            //On retourne sur le tableau d'instructions
555            $this->byCssSelector("#sousform-instruction .retour")->click();
556            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
557            $this->verifyNoErrors();
558            // On clique sur l'instruction
559            $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
560            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
561            $this->verifyNoErrors();
562            // On vérifie qu'il n'y a pas d'action "Édition" dans le portlet d'actions
563            $test = preg_match(
564                '/Édition/i',
565                $this->byCssSelector("#sousform-instruction #portlet-actions")->text()
566            );
567            $this->assertTrue(!$test);
568            // On vérifie qu'il n'y a pas d'action "Finaliser le document" dans
569            // le portlet d'actions
570            $test = preg_match(
571                '/Finaliser le document/i',
572                $this->byCssSelector("#sousform-instruction #portlet-actions")->text()
573            );
574            $this->assertTrue(!$test);
575            // On se déconnecte
576          $this->logout();          $this->logout();
577            // }}}
578      }      }
579    
580      /**      /**
581       * Test le formulaire de la demande de type qui possède des select filtrés       * test le formulaire de la demande de type qui possède des select filtrés
582       */       */
583      public function test_05_ajout_lot() {      public function test_05_ajout_lot() {
584          // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
# Line 476  class Instruction extends Base2TestCase Line 630  class Instruction extends Base2TestCase
630          // On se déconnecte          // On se déconnecte
631          $this->logout();          $this->logout();
632      }      }
633    //
634      /**      /**
635       * Test du lien automatique entre choix autorité compétente dans DI et       * test du lien automatique entre choix autorité compétente dans DI et
636       * évènement d'instruction à créer       * évènement d'instruction à créer
637       */       */
638      // Fonction privé      // Fonction privé
# Line 522  class Instruction extends Base2TestCase Line 676  class Instruction extends Base2TestCase
676          $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());          $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
677          // On se déconnecte          // On se déconnecte
678          $this->deconnect();          $this->deconnect();
679    //
680          // On se connecte en tant que "admin"          // On se connecte en tant que "admin"
681          $this->login("admin", "admin");          $this->login("admin", "admin");
682          sleep(1);          sleep(1);
# Line 533  class Instruction extends Base2TestCase Line 687  class Instruction extends Base2TestCase
687          $this->byLinkText("AZ 013055 12 00001P0")->click();          $this->byLinkText("AZ 013055 12 00001P0")->click();
688          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
689          $this->verifyNoErrors();          $this->verifyNoErrors();
690          // On verifie que l'autorité compétente à changée.          // On verifie que l'autorité compétente à changée
691          $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());          $this->assertEquals('Commune pour état', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
692          // On clique sur l'onglet "Instruction"          // On clique sur l'onglet "Instruction"
693          $this->byId("instruction")->click();          $this->byId("instruction")->click();
694          $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();          $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
695          sleep(1);          sleep(1);
696          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
697          $this->verifyNoErrors();          $this->verifyNoErrors();
         $this->byXPath("(//div[@id='portlet-actions']/ul/li[2]/a/span)[2]")->click();  
698          // On supprime l'element et on verifie le retour de l'autorité "commune"          // On supprime l'element et on verifie le retour de l'autorité "commune"
699          $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();          $this->byId("action-sousform-instruction-supprimer")->click();
700            // On valide le formulaire
701            $this->byXPath("//input[@value='Supprimer']")->click();sleep(1);
702            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
703            $this->verifyNoErrors();
704            // On clique sur le bouton retour
705            $this->byLinkText("Retour")->click();
706            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
707            $this->verifyNoErrors();
708            // On vérifie que l'événement d'instruction n'est plus dans le tableau
709            $this->assertNotContains("Changer l'autorité compétente 'commune état'", $this->byId("sousform-instruction")->text());
710          // Retour à l'onglet principal          // Retour à l'onglet principal
711          $this->byId("main")->click();          $this->byId("main")->click();
712            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
713            $this->verifyNoErrors();
714            // On rafraîchit la page
715          $this->refresh();          $this->refresh();
716          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
717          $this->verifyNoErrors();          $this->verifyNoErrors();
718          // On verifie que l'autorité compétente à changée.          // On verifie que l'autorité compétente à changée.
719          $this->assertRegExp('/.*Commune*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());          $this->assertEquals('Commune', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
720          // On se déconnecte          // On se déconnecte
721          $this->deconnect();          $this->deconnect();
722      }      }
# Line 566  class Instruction extends Base2TestCase Line 732  class Instruction extends Base2TestCase
732          // On vérifie la déconnexion          // On vérifie la déconnexion
733          $this->verifyDeconnect();          $this->verifyDeconnect();
734      }      }
735    //
736      /**      /**
737       * Test de l'ajout de données techniques au dossier       * test de l'ajout de données techniques au dossier
738       */       */
739      public function test_07_edition_donnees_techniques() {      public function test_07_edition_donnees_techniques() {
740            // On se connecte en tant que "guichet"
741            $this->login("guichet", "guichet");
742            /** On instancie une nouvelle demande initial PCI **/
743            // On clique sur le menu "Guichet Unique"
744            $this->byLinkText("Guichet Unique")->click();
745            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
746            $this->verifyNoErrors();
747            // On clique sur le sous-menu "Nouveau Dossier"
748            $this->byLinkText("Nouveau Dossier")->click();
749            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
750            $this->verifyNoErrors();
751            $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1");
752            $dossier = $this->addDossierInstruction(1, 1, "Test cerfa");
753            // On se déconnecte
754            $this->deconnect();
755          // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
756          $this->login("admin", "admin");          $this->login("admin", "admin");
757          sleep(1);          sleep(1);
# Line 588  class Instruction extends Base2TestCase Line 769  class Instruction extends Base2TestCase
769          $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();          $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
770          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
771          $this->verifyNoErrors();          $this->verifyNoErrors();
772            // On modifie la durée de validité
773            $this->byId("om_validite_fin")->clear();
774            $this->acceptAlert();
775            $this->byId("om_validite_fin")->value("31/12/2013");
776            // On valide le formulaire
777            $this->byXPath("//input[@value='Modifier']")->click();
778            // On vérifie le message de validation
779            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
780            // On se déconnecte
781            $this->deconnect();
782            // On verifie que les données techniques sont toujours disponibles
783            // On se connecte en tant que "instr"
784            $this->login("instr", "instr");
785            // On clique sur le lien "Mes encours" dans le menu
786            $this->byLinkText("Mes Encours")->click();
787            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
788            $this->verifyNoErrors();
789            // On clique sur le lien "PC 013055 12 00002P0" dans le tableau
790            $this->byLinkText($dossier)->click();
791            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
792            $this->verifyNoErrors();
793            // On click sur le lien "Données techniques"
794            $this->byId("action-form-dossier_instruction_mes_encours-donnees_techniques")->click();
795            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
796            $this->verifyNoErrors();
797            sleep(1);
798            // Vérification des fieldset
799            $this->assertContains("Aménager", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
800            $this->assertContains("Construire", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
801            $this->assertContains("Démolir", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
802            $this->byCssSelector(".ui-dialog-titlebar-close")->click();
803            // On se déconnecte
804            $this->deconnect();
805            // On se connecte en tant que "admin"
806            $this->login("admin", "admin");
807            sleep(1);
808            // Ouverture du menu de paramétrage des dossiers
809            $this->byLinkText("Paramétrage Dossiers")->click();
810            // Ouverture du menu des cerfa
811            $this->byLinkText("Cerfa")->click();
812            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
813            $this->verifyNoErrors();
814            //On clique sur le "+" du tableau
815            $this->byClassName("add-16")->click();
816            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
817            $this->verifyNoErrors();
818            $this->byId("libelle")->value("test cerfa 2");
819            $this->byId("code")->value("cerfa 2");
820            $this->byId("om_validite_debut")->value("01/04/2014");
821            $this->byId("om_validite_fin")->value("01/04/2018");
822          // Ajout de champs au formulaire des données techniques          // Ajout de champs au formulaire des données techniques
823          $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();          $this->byXPath("//div[@id='form-content']/div[2]/fieldset/legend")->click();
824          $this->byId("terr_juri_titul")->click();          $this->byId("terr_juri_titul")->click();
# Line 598  class Instruction extends Base2TestCase Line 829  class Instruction extends Base2TestCase
829          $this->byId("terr_juri_oin")->click();          $this->byId("terr_juri_oin")->click();
830          $this->byId("terr_juri_desc")->click();          $this->byId("terr_juri_desc")->click();
831          // Validation du formulaire          // Validation du formulaire
832          $this->byXPath("//input[@value='Modifier']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
833          // Vérification des erreurs          // Vérification des erreurs
834          $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());          $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
835          $this->byLinkText("Retour")->click();          $this->byLinkText("Retour")->click();
836            // Ouverture du menu des DATD
837            $this->byLinkText("Type DA Détaillé")->click();
838            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
839            $this->verifyNoErrors();
840            // Ouverture du PCI
841            $this->byLinkText("PCI")->click();
842            // Modification du DATD affiché
843            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
844            $this->select($this->byId("cerfa"))->clearSelectedOptions();
845            $this->select($this->byName("cerfa"))->selectOptionByLabel("test cerfa 2");
846            // On valide le formulaire
847            $this->byXPath("//input[@value='Modifier']")->click();
848            // On vérifie le message de validation
849            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
850            // On clique sur "Retour"
851            $this->byLinkText("Retour")->click();
852            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
853            $this->verifyNoErrors();
854            // On clique sur "Retour"
855            $this->byLinkText("Retour")->click();
856            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
857            $this->verifyNoErrors();
858            // Ouverture du PCI
859            $this->byLinkText("AZ")->click();
860            // Modification du DATD affiché
861            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
862            $this->select($this->byName("cerfa"))->selectOptionByValue("");
863            // On valide le formulaire
864            $this->byXPath("//input[@value='Modifier']")->click();
865            // On vérifie le message de validation
866            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
867            // On clique sur "Retour"
868            $this->byLinkText("Retour")->click();
869            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
870            $this->verifyNoErrors();
871          // On se déconnecte          // On se déconnecte
872          $this->deconnect();          $this->deconnect();
873            // On verifie que les données techniques sont toujours disponibles
874          // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
875          $this->login("instr", "instr");          $this->login("instr", "instr");
876          // On clique sur le lien "Mes encours" dans le menu          // On clique sur le lien "Mes encours" dans le menu
# Line 611  class Instruction extends Base2TestCase Line 878  class Instruction extends Base2TestCase
878          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
879          $this->verifyNoErrors();          $this->verifyNoErrors();
880          // On clique sur le lien "AZ0130551200001P0" dans le tableau          // On clique sur le lien "AZ0130551200001P0" dans le tableau
881          $this->byLinkText("AZ 013055 12 00001P0")->click();          $this->byLinkText($dossier)->click();
882          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
883          $this->verifyNoErrors();          $this->verifyNoErrors();
884          // On click sur le lien "Données techniques"          // On click sur le lien "Données techniques"
885          $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();          $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
886          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
887          $this->verifyNoErrors();          $this->verifyNoErrors();
888            // Vérification des fieldset
889            $this->assertContains("Aménager", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
890            $this->assertContains("Construire", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
891            $this->assertContains("Démolir", $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
892            $this->byCssSelector(".ui-dialog-titlebar-close")->click();
893            // On se déconnecte
894            $this->deconnect();
895            // On se connecte en tant que "instr"
896            $this->login("guichet", "guichet");
897            /** On instancie une nouvelle demande initial PCI **/
898            // On clique sur le menu "Guichet Unique"
899            $this->byLinkText("Guichet Unique")->click();
900            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
901            $this->verifyNoErrors();
902            // On clique sur le sous-menu "Nouveau Dossier"
903            $this->byLinkText("Nouveau Dossier")->click();
904            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
905            $this->verifyNoErrors();
906            $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue("1");
907            $dossier = $this->addDossierInstruction(1, 1, "Test cerfa");
908            // On se déconnecte
909            $this->deconnect();
910            // On se connecte en tant que "instr"
911            $this->login("instr", "instr");
912            // On clique sur le lien "Mes encours" dans le menu
913            $this->byLinkText("Mes Encours")->click();
914            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
915            $this->verifyNoErrors();
916            //On cherche le service
917            $this->byName("recherche")->value(str_replace(" ","",$dossier));
918            //On valide
919            $this->byName("s1")->click();
920            // On clique sur le lien "AZ0130551200001P0" dans le tableau
921            $this->byLinkText($dossier)->click();
922            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
923            $this->verifyNoErrors();
924            // On click sur le lien "Données techniques"
925            $this->byXPath("//div[@id='portlet-actions']/ul/li[2]/a/span")->click();
926          sleep(1);          sleep(1);
         // Modification des données techniques  
         $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();  
927          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
928          $this->verifyNoErrors();          $this->verifyNoErrors();
929            $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sousform-donnees_techniques #form-content")->text());
930            $this->byCssSelector(".ui-dialog-titlebar-close")->click();
931            // On se déconnecte
932            $this->deconnect();
933            // On se connecte en tant que "instr"
934            $this->login("admin", "admin");
935          sleep(1);          sleep(1);
936          $this->assertRegExp('/^[\s\S]*Terrain[\s\S]*$/', $this->byCssSelector("#sformulaire #form-content legend")->text());          // Ouverture du menu de paramétrage des dossiers
937          // Validation du formulaire          $this->byLinkText("Paramétrage Dossiers")->click();
938            // Ouverture du menu des cerfa
939            $this->byLinkText("Cerfa")->click();
940            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
941            $this->verifyNoErrors();
942            // Afficher les éléments expirés
943            $this->byLinkText("Afficher les éléments expirés")->click();
944            sleep(0.5);
945            // Ouverture d'un cerfa
946            $this->byLinkText("cerfa de test n°1")->click();
947            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
948            $this->verifyNoErrors();
949            // Modification du cerfa affiché
950            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
951            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
952            $this->verifyNoErrors();
953            // On modifie la durée de validité
954            $this->byId("om_validite_fin")->clear();
955            $this->acceptAlert();
956            $this->byId("om_validite_fin")->value("31/12/2018");
957            // On valide le formulaire
958            $this->byXPath("//input[@value='Modifier']")->click();
959            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
960            $this->verifyNoErrors();
961            // Ouverture du menu des DATD
962            $this->byLinkText("Type DA Détaillé")->click();
963            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
964            $this->verifyNoErrors();
965            // Ouverture du PCI
966            $this->byLinkText("PCI")->click();
967            // Modification du DATD affiché
968            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
969            $this->select($this->byId("cerfa"))->clearSelectedOptions();
970            $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°1");
971            // On valide le formulaire
972            $this->byXPath("//input[@value='Modifier']")->click();
973            // On vérifie le message de validation
974            $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
975            // On clique sur "Retour"
976            $this->byLinkText("Retour")->click();
977            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
978            $this->verifyNoErrors();
979            // On clique sur "Retour"
980            $this->byLinkText("Retour")->click();
981            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
982            $this->verifyNoErrors();
983            // Ouverture du PCI
984            $this->byLinkText("AZ")->click();
985            // Modification du DATD affiché
986            $this->byXPath("//div[@id='portlet-actions']/ul/li/a/span")->click();
987            $this->select($this->byName("cerfa"))->selectOptionByLabel("cerfa de test n°1");
988            // On valide le formulaire
989          $this->byXPath("//input[@value='Modifier']")->click();          $this->byXPath("//input[@value='Modifier']")->click();
990          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
991          $this->verifyNoErrors();          $this->verifyNoErrors();
         $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text());  
         $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();  
         sleep(1);  
992          // On se déconnecte          // On se déconnecte
993          $this->logout();          $this->logout();
   
994      }      }
995    //
996      /**      /**
997       * Test un événement d'instruction qui a un événement "retour"       * test un événement d'instruction qui a un événement "retour"
998       */       */
999      public function test_08_evenement_instruction_retour() {      public function test_08_evenement_instruction_retour() {
1000    //
         // Instancie la timezone  
         date_default_timezone_set('Europe/Paris');  
   
1001          // On se connecte à l'application en tant qu'administrateur          // On se connecte à l'application en tant qu'administrateur
1002          $this->login("admin", "admin");          $this->login("admin", "admin");
1003          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1004          $this->verifyNoErrors();          $this->verifyNoErrors();
1005    //
1006          /** On ajoute une action "retour signature" **/          /** On ajoute une action "retour signature" **/
1007          // On clique sur le menu "Paramétrage Dossiers"          // On clique sur le menu "Paramétrage Dossiers"
1008          $this->byLinkText("Paramétrage Dossiers")->click();          $this->byLinkText("Paramétrage Dossiers")->click();
# Line 671  class Instruction extends Base2TestCase Line 1024  class Instruction extends Base2TestCase
1024          // On vérifie le message de validation          // On vérifie le message de validation
1025          $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());          $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1026          /** Fin **/          /** Fin **/
1027    //
1028          /** On ajoute un événement "retour signature" **/          /** On ajoute un événement "retour signature" **/
1029          // On clique sur le sous-menu "Événement"          // On clique sur le sous-menu "Événement"
1030          $this->byLinkText("Événement")->click();          $this->byLinkText("Événement")->click();
# Line 714  class Instruction extends Base2TestCase Line 1067  class Instruction extends Base2TestCase
1067          // On vérifie le message de validation          // On vérifie le message de validation
1068          $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());          $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1069          /** Fin **/          /** Fin **/
1070    //
1071          /** On ajoute une durée de validité au type de DA PCI **/          /** On ajoute une durée de validité au type de DA PCI **/
1072          // On clique sur le sous-menu "Type DA Détaillé"          // On clique sur le sous-menu "Type DA Détaillé"
1073          $this->byLinkText("Type DA Détaillé")->click();          $this->byLinkText("Type DA Détaillé")->click();
# Line 732  class Instruction extends Base2TestCase Line 1085  class Instruction extends Base2TestCase
1085          // On vérifie le message de validation          // On vérifie le message de validation
1086          $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());          $this->assertContains("Vos modifications ont bien été enregistrées.", $this->byCssSelector(".message .text")->text());
1087          /** Fin **/          /** Fin **/
1088    //
1089          /** On instancie une nouvelle demande initial PCI **/          /** On instancie une nouvelle demande initial PCI **/
1090          // On clique sur le menu "Guichet Unique"          // On clique sur le menu "Guichet Unique"
1091          $this->byLinkText("Guichet Unique")->click();          $this->byLinkText("Guichet Unique")->click();
# Line 786  class Instruction extends Base2TestCase Line 1139  class Instruction extends Base2TestCase
1139          preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);          preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
1140          $dossier = $dossier[0];          $dossier = $dossier[0];
1141          /** Fin **/          /** Fin **/
1142    //
1143          /** On ajoute une instruction de dossier accepter et on la finalise **/          /** On ajoute une instruction de dossier accepter et on la finalise **/
1144          // On clique sur le menu "Instruction"          // On clique sur le menu "Instruction"
1145          $this->byLinkText("Instruction")->click();          $this->byLinkText("Instruction")->click();
# Line 806  class Instruction extends Base2TestCase Line 1159  class Instruction extends Base2TestCase
1159          $this->byId("instruction")->click();          $this->byId("instruction")->click();
1160          // On ajoute un événement d'instruction          // On ajoute un événement d'instruction
1161          $this->byId("action-soustab-instruction-corner-ajouter")->click();          $this->byId("action-soustab-instruction-corner-ajouter")->click();
1162          // On sélectionne l'évenement "accepter un dossier sans réserve"          // On choisit un signataire Albert Dupont
1163          $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");          $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
1164            //On choisit l'instruction 'accepter un dossier sans réserve
1165            //[acceptation]'
1166            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1167          // On valide le formulaire          // On valide le formulaire
1168          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
1169          // On vérifie le message          // On vérifie le message
# Line 831  class Instruction extends Base2TestCase Line 1187  class Instruction extends Base2TestCase
1187          // Récupération du numéro d'événement          // Récupération du numéro d'événement
1188          $evenement = $this->byCssSelector("#instruction.field_value")->text();          $evenement = $this->byCssSelector("#instruction.field_value")->text();
1189          /** Fin **/          /** Fin **/
1190    //
1191          /** On met à jour la date de retour signature **/          /** On met à jour la date de retour signature **/
1192          // Date de retour signature          // Date de retour signature
1193          $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5,  date("Y")));          $date_retour_signature = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+5,  date("Y")));
# Line 859  class Instruction extends Base2TestCase Line 1215  class Instruction extends Base2TestCase
1215          // On vérifie le message de validation          // On vérifie le message de validation
1216          $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());          $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
1217          /** Fin **/          /** Fin **/
1218    //
1219          /** Vérifie l'instruction "retour" et le DI **/          /** Vérifie l'instruction "retour" et le DI **/
1220          // Date de validité          // Date de validité
1221          $date_validite = date("d/m/Y", mktime(0, 0, 0, date("m")+5, date("d")+5,  date("Y")));          $date_validite = $this->mois_date(date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+5,  date("Y"))), 5, "+");
1222            $date_validite = date("d/m/Y", strtotime($date_validite));
1223          // On clique sur le menu "Instruction"          // On clique sur le menu "Instruction"
1224          $this->byLinkText("Instruction")->click();          $this->byLinkText("Instruction")->click();
1225          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché          // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
# Line 886  class Instruction extends Base2TestCase Line 1243  class Instruction extends Base2TestCase
1243          // On contrôle la date de retour signature          // On contrôle la date de retour signature
1244          $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());          $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
1245          /** Fin **/          /** Fin **/
1246    //
1247            // On se déconnecte
1248            $this->logout();
1249    //
1250        }
1251        //
1252        /**
1253         * test la suppression d'un événement d'instruction lié à une demande qui ne
1254         * créée pas de nouveau dossier d'instruction
1255         */
1256        public function test_09_suppression_evenement_demande(){
1257            //
1258            //Ajout du paramétrage d'une nouvelle demande
1259            // On se connecte à l'application en tant qu'administrateur
1260            $this->login("admin", "admin");
1261            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1262            $this->verifyNoErrors();
1263            //On clique sur "Paramétrage dossier"
1264            $this->byLinkText("Paramétrage Dossiers")->click();
1265            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1266            $this->verifyNoErrors();
1267            //On clique sur Type
1268            $this->byLinkText("Type")->click();
1269            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1270            $this->verifyNoErrors();
1271            //On clique sur le "+" du tableau
1272            $this->byClassName("add-16")->click();
1273            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1274            $this->verifyNoErrors();
1275            //On saisit le type de la demande
1276            $this->byId("code")->value("test_09_suppression");
1277            $this->byId("libelle")->value("test_09_suppression");
1278            // On sélectionne le groupe 'Autorisation ADS'
1279            $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);
1280            // On sélectionne 'AZ (Demande d'autorisation spéciale de travaux dans
1281            // le périmètre d'une AVAP)'
1282            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);
1283            // On sélectionne la nature 'Dossier existant'
1284            $this->select($this->byId("demande_nature"))->selectOptionByValue("2");
1285            // On sélectionne l'état 'En cours'
1286            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue("1");
1287            // On sélectionne l'événement 'Defrichement soumis a enquete publique'
1288            $this->select($this->byId("evenement"))->selectOptionByValue("15");
1289            // On sélectionne la contrainte 'Avec récupération demandeur'
1290            $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");
1291            // On clique sur le bouton ajouter
1292            $this->byXPath("//input[@value='Ajouter']")->click();
1293            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1294            $this->verifyNoErrors();
1295            // On vérifie que le type de demande a bien été ajouté
1296            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1297            //On se déconnecte
1298            $this->deconnect();
1299            //
1300            //Création d'un nouveau dossier d'instruction
1301            // On se connecte à l'application
1302            $this->login("guichet", "guichet");
1303            //On clique sur "Dossier En Cours"
1304            $this->byLinkText("Dossier En Cours")->click();
1305            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1306            $this->verifyNoErrors();
1307            //On clique sur le dossier "AZ0130551200001P0"
1308            $this->byId("action-tab-demande_dossier_encours-left-consulter-AZ0130551200001P0")->click();
1309            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1310            $this->verifyNoErrors();
1311            // On vérifie l'état du DI
1312            $this->assertContains("notifier", $this->byCssSelector("#fieldset-form-demande_dossier_encours-etat-du-dossier_instruction.cadre div.fieldsetContent div.field div.form-content")->text());
1313            //On sélectionne le type de la demande
1314            $this->select($this->byId("demande_type"))->selectOptionByLabel("test_09_suppression");sleep(1);
1315            // On clique sur le bouton ajouter
1316            $this->byXPath("//input[@value='Ajouter']")->click();
1317            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1318            $this->verifyNoErrors();
1319            // On vérifie que le type de demande a bien été ajouté
1320            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1321            //On se déconnecte
1322            $this->deconnect();
1323            //
1324            //Suppression de l'événement d'instruction
1325            // On se connecte à l'application
1326            $this->login("admin", "admin");
1327            //On clique sur le menu "Instruction"
1328            $this->byLinkText("Instruction")->click();
1329            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1330            $this->verifyNoErrors();
1331            //On clique sur le menu "Recherche"
1332            $this->byLinkText("Recherche")->click();
1333            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1334            $this->verifyNoErrors();
1335            //On clique sur le dossier "AZ 013055 12 00001P0"
1336            $this->byLinkText("AZ 013055 12 00001P0")->click();
1337            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1338            $this->verifyNoErrors();
1339            //On clique sur l'onglet "Instruction"
1340            $this->byId("instruction")->click();
1341            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1342            $this->verifyNoErrors();
1343            //On clique sur l'instruction "Defrichement soumis a enquete publique"
1344            $this->byLinkText("Defrichement soumis a enquete publique")->click();
1345            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1346            $this->verifyNoErrors();
1347            //On définalise l'instruction
1348            $this->byClassName("definalise")->click();
1349            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1350            $this->verifyNoErrors();
1351            //On clique "Supprimer"
1352            $this->byCssSelector("#sousform-instruction .delete-16")->click();
1353            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1354            $this->verifyNoErrors();
1355            //On clique sur supprimer
1356            $this->byXPath("//input[@value='Supprimer']")->click();
1357            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1358            $this->verifyNoErrors();
1359            //On vérifie que lasuppression a été éffectuée
1360            $this->assertContains("La suppression a été correctement effectuée.",
1361                $this->byCssSelector("#sousform-instruction .message .text")->text());
1362            // On se déconnecte
1363            $this->logout();
1364        }
1365    //
1366        /**
1367         * test sur les types d'éditions des consultations
1368         */
1369        function test_10_nouveau_type_edition_consultation(){
1370            //
1371            //On saisit un service de test        
1372            // On se connecte à l'application
1373            $this->login("admin", "admin");
1374            //On clique sur "Paramétrage"
1375            $this->byLinkText("Paramétrage")->click();
1376            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1377            $this->verifyNoErrors();
1378            //On clique sur "Service"
1379            $this->byLinkText("Service")->click();
1380            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1381            $this->verifyNoErrors();        
1382            //On clique sur le "+" du tableau
1383            $this->byClassName("add-16")->click();
1384            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1385            $this->verifyNoErrors();
1386            //On saisit les données du service
1387            $this->byId("abrege")->value("test_10");
1388            $this->byId("libelle")->value("test_10");
1389            $this->byId("consultation_papier")->click();
1390            $this->select($this->byId("edition"))->selectOptionByLabel("test_10");
1391            // On clique sur le bouton ajouter
1392            $this->byXPath("//input[@value='Ajouter']")->click();
1393            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1394            $this->verifyNoErrors();
1395            // On vérifie que le service a bien été ajouté
1396            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1397            //On se déconnecte
1398            $this->deconnect();
1399            //
1400            //On ajoute une consultation sur un dossier et on vérifie l'édition
1401            // On se connecte à l'application
1402            $this->login("instr", "instr");
1403            //On clique sur "Recherche"
1404            $this->byLinkText("Recherche")->click();
1405            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1406            $this->verifyNoErrors();
1407            //On choisit le dossier "AZ 013055 12 00001P0"
1408            $this->byLinkText("AZ 013055 12 00001P0")->click();
1409            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1410            $this->verifyNoErrors();
1411            //On clique sur l'onglet "Consultation"
1412            $this->byId("consultation")->click();
1413            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1414            $this->verifyNoErrors();
1415            //On clique sur le "+" du tableau
1416            $this->byClassName("add-16")->click();
1417            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1418            $this->verifyNoErrors();
1419            //On saist une nouvelle consultation
1420            $this->select($this->byId("service"))->selectOptionByLabel("test_10");
1421            // On clique sur le bouton ajouter
1422            $this->byXPath("//input[@value='Ajouter']")->click();
1423            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1424            $this->verifyNoErrors();
1425            // On vérifie que la consultation a bien été ajoutée
1426            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1427            //On clique sur retour
1428            $this->byCssSelector("#sousform-consultation .retour")->click();
1429            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1430            $this->verifyNoErrors();
1431            //On clique sur la consultation au service "test_10"
1432            $this->byLinkText("test_10")->click();
1433            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1434            $this->verifyNoErrors();
1435            //On affiche le PDF
1436            $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1437            // Liste les fenêtres
1438            $windows = $this->windowHandles();
1439            // Change la fenêtre
1440            $this->window($windows[1]);
1441            // On vérifie qu'il n'y ait pas d'erreur
1442            $this->verifynoerrors();
1443            // On vérifie que le text est présent
1444            $this->assertContains("test_10",$this->source());
1445            $this->assertNotContains("test_10_2",$this->source());
1446            // On ferme la fenêtre
1447            $this->closeWindow();
1448            // On change le focus de la fenêtre
1449            $this->window($windows[0]);
1450            //On se déconnecte
1451            $this->deconnect();
1452            //
1453            //On change l'édition
1454            // On se connecte à l'application
1455            $this->login("admin", "admin");
1456            //On clique sur "Paramétrage"
1457            $this->byLinkText("Paramétrage")->click();
1458            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1459            $this->verifyNoErrors();
1460            //On clique sur "Service"
1461            $this->byLinkText("Service")->click();
1462            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1463            $this->verifyNoErrors();
1464            //On cherche le service
1465            $this->byName("recherche")->value("test_10");
1466            //On valide
1467            $this->byName("s1")->click();
1468            //On clique sur le service test_10
1469            $this->byLinkText("test_10")->click();
1470            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1471            $this->verifyNoErrors();
1472            //On clique sur "Modifier" dans le portail d'action
1473            $this->byClassName("edit-16")->click();
1474            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1475            $this->verifyNoErrors();
1476            //On choisit une seconde édition
1477            $this->select($this->byId("edition"))->selectOptionByLabel("test_10_2");
1478            // On clique sur le bouton ajouter
1479            $this->byXPath("//input[@value='Modifier']")->click();
1480            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1481            $this->verifyNoErrors();
1482            // On vérifie que le service a bien été ajouté
1483            $this->assertContains('Vos modifications ont bien été enregistrées', $this->byCssSelector(".message .text")->text());
1484            //On se déconnecte
1485            $this->deconnect();
1486            //
1487            //On vérifie que c'est la bonne édition qui est affiché
1488            // On se connecte à l'application
1489            $this->login("instr", "instr");
1490            //On clique sur "Recherche"
1491            $this->byLinkText("Recherche")->click();
1492            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1493            $this->verifyNoErrors();
1494            //On choisit le dossier "AZ 013055 12 00001P0"
1495            $this->byLinkText("AZ 013055 12 00001P0")->click();
1496            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1497            $this->verifyNoErrors();
1498            //On clique sur l'onglet "Consultation"
1499            $this->byId("consultation")->click();
1500            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1501            $this->verifyNoErrors();
1502            //On clique sur la consultation au service "test_10"
1503            $this->byLinkText("test_10")->click();
1504            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1505            $this->verifyNoErrors();
1506            //on definalise la consultaion
1507            $this->byClassName("definalise")->click();
1508            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1509            $this->verifyNoErrors();
1510            //On vérifie que la consultation s'est bien définalisée
1511            $this->assertEquals('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-consultation .message .text")->text());sleep(10);
1512            //On affiche le PDF
1513            $this->byId("action-sousform-consultation-pdfetat")->click();sleep(5);
1514            // Liste les fenêtres
1515            $windows = $this->windowHandles();
1516            // Change la fenêtre
1517            $this->window($windows[1]);
1518            // On vérifie qu'il n'y ait pas d'erreur
1519            $this->verifynoerrors();
1520            // On vérifie que le text est présent
1521            $this->assertContains("test_10_2",$this->source());
1522            // On ferme la fenêtre
1523            $this->closeWindow();
1524            // On change le focus de la fenêtre
1525            $this->window($windows[0]);
1526            //
1527            // On se déconnecte
1528            $this->logout();
1529        }
1530    //
1531        /**
1532         * test sur un événement non verrouillable
1533         */
1534        public function test_11_evenement_non_verrouillable(){
1535    //
1536            /* On crée une nouvelle demande initial */
1537            // On se connecte à l'application
1538            $this->login("guichet", "guichet");
1539            // On clique sur le menu "Nouveau Dossier"
1540            $this->byLinkText("Nouveau Dossier")->click();
1541            // On vérifie qu'il n'y ait pas d'erreur
1542            $this->verifynoerrors();
1543            // On vérifie le nom de l'onglet
1544            $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1545            // On sélectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1546            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1547            // On selectionne le label "Dépôt Initial"
1548            $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1549            // On clique pour ajouter un pétitionnaire principale
1550            $this->byId("add_petitionnaire_principal")->click();
1551            // On remplit le champ
1552            $this->byId("particulier_nom")->value("DURAND");
1553            // On remplit le champ
1554            $this->byId("particulier_prenom")->value("MICKAEL");
1555            // On remplit le champ
1556            $this->byId("particulier_date_naissance")->value("03/01/1956");
1557            // On remplit le champ
1558            $this->byId("particulier_commune_naissance")->value("LILLE");
1559            // On remplit le champ
1560            $this->byId("particulier_departement_naissance")->value("NORD");
1561            // On remplit le champ
1562            $this->byId("numero")->value("12");
1563            // On remplit le champ
1564            $this->byId("voie")->value("RUE DE LA LOI");
1565            // On remplit le champ
1566            $this->byId("complement")->value("APPT 12");
1567            // On remplit le champ
1568            $this->byId("localite")->value("MARSEILLE");
1569            // On remplit le champ
1570            $this->byId("code_postal")->value("13012");
1571            // On remplit le champ
1572            $this->byId("telephone_fixe")->value("0404040404");
1573            // On clique sur ajouter
1574            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
1575            // On vérifie qu'il n'y ait pas d'erreur
1576            $this->verifynoerrors();
1577            // On vérifie le message
1578            $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
1579            // On clique sur le bouton retour
1580            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
1581            // On vérifie que le text est présent
1582            $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
1583            // On clique sur ajouter
1584            $this->byXPath("//input[@value='Ajouter']")->click();
1585            // On vérifie qu'il n'y ait pas d'erreur
1586            $this->verifynoerrors();
1587            // On vérifie le message
1588            $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
1589            // Récupération du numéro de dossier
1590            preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $matches);
1591            $dossier_libelle = $matches[0];
1592            $dossier = str_replace(' ', '', $dossier_libelle);
1593            $dossier_dir = substr_replace($dossier, '.', -2, -3);
1594            // On clique
1595            $this->byCssSelector("a.lien")->click();sleep(5);
1596            // Liste les fenêtres
1597            $windows = $this->windowHandles();
1598            // Change la fenêtre
1599            $this->window($windows[1]);
1600            // On vérifie qu'il n'y ait pas d'erreur
1601            $this->verifynoerrors();
1602            // On vérifie que le text est présent
1603            $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
1604            // On ferme la fenêtre
1605            $this->closeWindow();
1606            // On change le focus de la fenêtre
1607            $this->window($windows[0]);
1608            // On clique sur le bouton retour
1609            $this->byLinkText("Retour")->click();
1610            // On vérifie qu'il n'y ait pas d'erreur
1611            $this->verifynoerrors();
1612            // On vérifie que le répertoire s'est crée
1613            $this->assertTrue(file_exists("../trs/numerisation/Todo/".$dossier_dir));
1614            // On se déconnecte
1615            $this->deconnect();
1616            /* Fin */
1617    //
1618            /* On accepte le dossier d'instruction et le finalise */
1619            // On se connecte à l'application
1620            $this->login("instr", "instr");
1621            // On clique sur le menu 'Recherche'
1622            $this->byLinkText("Recherche")->click();
1623            // On recherche le dossier crée
1624            $this->byId("dossier")->value($dossier);
1625            // On clique sur le bouton recherche
1626            $this->byId("adv-search-submit")->click();
1627            // On clique sur le résultat
1628            $this->byLinkText($dossier_libelle)->click();
1629            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1630            $this->verifyNoErrors();
1631            // On clique sur l'onglet "Instruction"
1632            $this->byId("instruction")->click();
1633            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1634            $this->verifyNoErrors();
1635            // On clique sur le lien d'ajout dans le tableau
1636            $this->byCssSelector(".actions-max-1 a")->click();
1637            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1638            $this->verifyNoErrors();
1639            //On choisit l'instruction 'accepter un dossier sans réserve
1640            //[acceptation]'
1641            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1642            // On valide le formulaire
1643            $this->byXPath("//input[@value='Ajouter']")->click();
1644            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1645            $this->verifyNoErrors();
1646            sleep(1);
1647            $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-instruction .message .text")->text());
1648            // On retourne sur le tableau d'instructions
1649            $this->byCssSelector("#sousform-instruction .retour")->click();
1650            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1651            $this->verifyNoErrors();
1652            // On clique sur l'événement d'instruction "accepter un dossier sans réserve"
1653            $this->byLinkText("accepter un dossier sans réserve")->click();
1654            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1655            $this->verifyNoErrors();
1656            // On valide l'instruction (un événement verrouillable ne pourrait pas
1657            // être finalisé)
1658            $this->byId("action-sousform-instruction-finalisation")->click();
1659            // On vérifie le message de validation
1660            $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1661            /* Fin */
1662        }
1663    //
1664        /**
1665         * test que les données du dossier d'autorisation sont recopiés dans les
1666         * champs 'archive_' de l'événement d'instruction de la création du nouveau
1667         * dossier d'instruction
1668         */
1669        public function test_12_recopie_donnees_da_vers_nouveau_di(){
1670            //
1671            //{{{ Ajout de d'un nouveau dossier
1672            // On se connecte à l'application
1673            $this->login("guichet", "guichet");
1674            //On clique sur le menu des instructions
1675            $this->byLinkText("Nouveau Dossier")->click();
1676            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1677            $this->verifyNoErrors();
1678            //On ajoute un nouveau dossier
1679            $dossier = $this->addDossierInstruction( 1, 1);                
1680            // On se déconnecte
1681            $this->deconnect();
1682            //}}}
1683            //
1684            //{{{ Clôture du nouveau dossier
1685            // On se connecte à l'application
1686            $this->login("instr", "instr");
1687            //On clique sur le menu "Recherche"
1688            $this->byLinkText("Recherche")->click();
1689            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1690            $this->verifyNoErrors();
1691            // On recherche le dossier crée
1692            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1693            // On clique sur le bouton recherche
1694            $this->byId("adv-search-submit")->click();
1695            // On clique sur le résultat
1696            $this->byLinkText($dossier)->click();
1697            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1698            $this->verifyNoErrors();
1699            //On clique sur l'onglet "instruction"
1700            $this->byId("instruction")->click();
1701            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1702            $this->verifyNoErrors();
1703            // On ajoute une instruction
1704            $this->byCssSelector("#sousform-instruction .add-16")->click();
1705            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1706            $this->verifyNoErrors();
1707            //On choisit l'instruction 'accepter un dossier sans réserve
1708            //[acceptation]'
1709            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1710            // On clique sur ajouter
1711            $this->byXPath("//input[@value='Ajouter']")->click();
1712            // On vérifie qu'il n'y ait pas d'erreur
1713            $this->verifynoerrors();
1714            // On vérifie le message
1715            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1716            //On rafraichit la page pour vérifier que le dossier est clôturé
1717            $this->refresh();
1718            $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1719            // On se déconnecte
1720            $this->deconnect();
1721            //}}}
1722            //
1723            //{{{ Ajout de l'action
1724            // On se connecte à l'application
1725            $this->login("admin", "admin");
1726            //On clique sur le menu "Paramétrage dossiers"
1727            $this->byLinkText("Paramétrage Dossiers")->click();
1728            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1729            $this->verifyNoErrors();
1730            //On clique sur le menu "Action"
1731            $this->byLinkText("Action")->click();
1732            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1733            $this->verifyNoErrors();
1734            //On clique sur le "+" du tableau
1735            $this->byClassName("add-16")->click();
1736            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1737            $this->verifyNoErrors();
1738            //On remplit la règle de calcul de la date de validité
1739            $this->byId("action")->value("test_12_recopie_donnees");
1740            $this->byId("libelle")->value("test_12_recopie_donnees");
1741            $this->byId("regle_date_validite")->value("archive_date_validite+12");
1742            // On clique sur ajouter
1743            $this->byXPath("//input[@value='Ajouter']")->click();
1744            // On vérifie qu'il n'y ait pas d'erreur
1745            $this->verifynoerrors();
1746            // On vérifie le message
1747            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1748            //}}}
1749            //
1750            //{{{ Ajout de l'événement
1751            //On clique sur le menu "Événement"
1752            $this->byLinkText("Événement")->click();
1753            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1754            $this->verifyNoErrors();
1755            //On clique sur le "+" du tableau
1756            $this->byClassName("add-16")->click();
1757            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1758            $this->verifyNoErrors();
1759            //On remplit l'événement qui va être ajouté avec la nouvelle demande
1760            $this->byId("libelle")->value("test_12_recopie_donnees");
1761            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1762            // On sélectionne PCI - P - Initial
1763            $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1764            $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees");
1765            // On clique sur ajouter
1766            $this->byXPath("//input[@value='Ajouter']")->click();
1767            // On vérifie qu'il n'y ait pas d'erreur
1768            $this->verifynoerrors();
1769            // On vérifie le message
1770            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1771            //}}}
1772            //
1773            //{{{ Ajout du type de dossier d'instruction
1774            //On clique sur le menu "Type DI"
1775            $this->byLinkText("Type DI")->click();
1776            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1777            $this->verifyNoErrors();
1778            //On clique sur le "+" du tableau
1779            $this->byClassName("add-16")->click();
1780            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1781            $this->verifyNoErrors();
1782            //On remplit le type de la demande
1783            $this->byId("code")->value("DT");
1784            $this->byId("libelle")->value("test_12_recopie_donnees");
1785            // On sélectionne PCI (Permis de construire pour une maison individuelle
1786            // et / ou ses annexes)
1787            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1788            $this->byId("suffixe")->click();
1789            // On clique sur ajouter
1790            $this->byXPath("//input[@value='Ajouter']")->click();
1791            // On vérifie qu'il n'y ait pas d'erreur
1792            $this->verifynoerrors();
1793            // On vérifie le message
1794            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1795            //}}}
1796            //
1797            //{{{ Ajout du type de la demande
1798            //On clique sur le menu "Type"
1799            $this->byLinkText("Type")->click();
1800            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1801            $this->verifyNoErrors();
1802            //On clique sur le "+" du tableau
1803            $this->byClassName("add-16")->click();
1804            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1805            $this->verifyNoErrors();
1806            //On remplit le type de la demande
1807            $this->byId("code")->value("test_12_recopie_donnees");
1808            $this->byId("libelle")->value("test_12_recopie_donnees");
1809            // On sélectionne Autorisation ADS
1810            $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1811            // On sélectionne PCI (Permis de construire pour une maison individuelle
1812            // et / ou ses annexes)
1813            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1814            // On sélectionne Dossier existant
1815            $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1816            // On sélectionne Accordé
1817            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
1818            $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1819            $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1820            // On clique sur ajouter
1821            $this->byXPath("//input[@value='Ajouter']")->click();
1822            // On vérifie qu'il n'y ait pas d'erreur
1823            $this->verifynoerrors();
1824            // On vérifie le message
1825            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1826            //On clique sur retour
1827            $this->byClassName("retour")->click();
1828            // On vérifie qu'il n'y ait pas d'erreur
1829            $this->verifynoerrors();
1830            //On saisit le libellé du type de la demande saisit
1831            $this->byName("recherche")->value("test_12_recopie_donnees");
1832            //On valide
1833            $this->byName("s1")->click();
1834            // On vérifie qu'il n'y ait pas d'erreur
1835            $this->verifynoerrors();
1836            //On clique sur le type de la demande
1837            $this->byLinkText("test_12_recopie_donnees")->click();
1838            // On vérifie qu'il n'y ait pas d'erreur
1839            $this->verifynoerrors();
1840            //On récupère l'identifiant du type de la demande
1841            $demande_type = $this->byId("demande_type")->text();
1842            // On se déconnecte
1843            $this->deconnect();
1844            //}}}
1845            //
1846            //{{{ Ajout de d'un nouveau dossier
1847            // On se connecte à l'application
1848            $this->login("guichet", "guichet");
1849            //On clique sur le menu des instructions
1850            $this->byLinkText("Dossier En Cours")->click();
1851            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1852            $this->verifyNoErrors();
1853            //On ajoute un nouveau dossier
1854            $dossier = $this->addDossierInstruction(1, $demande_type, "Test validité", 2, str_replace(" ", "", $dossier));                
1855            // On se déconnecte
1856            $this->deconnect();
1857            //}}}
1858            //
1859            //{{{ Vérification de la date de validité
1860            // On se connecte à l'application
1861            $this->login("instr", "instr");
1862            //On clique sur le menu "Recherche"
1863            $this->byLinkText("Recherche")->click();
1864            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1865            $this->verifyNoErrors();
1866            // On recherche le dossier crée
1867            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1868            // On clique sur le bouton recherche
1869            $this->byId("adv-search-submit")->click();
1870            // On clique sur le résultat
1871            $this->byLinkText($dossier)->click();
1872            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1873            $this->verifyNoErrors();
1874            //On vérifie la date de validité
1875            $date_validite = $this->mois_date(date("Y-m-d"), 12, "+");
1876            $date_validite = date("d/m/Y", strtotime($date_validite));
1877            $this->assertEquals($date_validite, $this->byId("date_validite")->text());
1878            // On se déconnecte
1879            $this->deconnect();
1880            //}}}
1881        }
1882        //
1883        /**
1884         * test de la numérotation des DI successifs
1885         */
1886        function test_13_numerotation_dossier_instruction_successif(){
1887                //
1888            //{{{ Ajout de d'un nouveau dossier d'instruction P0
1889            // On se connecte à l'application
1890            $this->login("guichet", "guichet");
1891            // On clique sur le menu "Nouveau Dossier"
1892            $this->byLinkText("Nouveau Dossier")->click();
1893            // On vérifie qu'il n'y ait pas d'erreur
1894            $this->verifynoerrors();
1895            // On ajoute un nouveau dossier d'instruction
1896            $dossierP0 = str_replace(" ", "", trim($this->addDossierInstruction(1, 1)));
1897            // On se déconnecte
1898            $this->deconnect();
1899            //}}}
1900            //
1901            //{{{ Accord du P0 créé
1902            // On se connecte à l'application
1903            $this->login("instr", "instr");
1904            // On clique sur le menu "Recherche"
1905            $this->byLinkText("Recherche")->click();
1906            // On vérifie qu'il n'y ait pas d'erreur
1907            $this->verifynoerrors();
1908            // On saisit le numéro du dossier d'instruction
1909            $this->byId("dossier")->value($dossierP0);
1910            // On valide la recherche
1911            $this->byId("adv-search-submit")->click();
1912            // On vérifie qu'il n'y ait pas d'erreur
1913            $this->verifynoerrors();
1914            // On clique sur le dossier d'instruction
1915            $this->byId("action-tab-dossier_instruction-left-consulter-".$dossierP0)->click();
1916            // On vérifie qu'il n'y ait pas d'erreur
1917            $this->verifynoerrors();
1918            // On clique sur l'onglet instruction
1919            $this->byId("instruction")->click();
1920            // On vérifie qu'il n'y ait pas d'erreur
1921            $this->verifynoerrors();
1922            // On clique sur le + du tableau
1923            $this->byClassName("add-16")->click();
1924            // On vérifie qu'il n'y ait pas d'erreur
1925            $this->verifynoerrors();
1926            // On choisit l'événement n°81 accepter un dossier sans réserve
1927            $this->select($this->byName("evenement"))->selectOptionByValue(81);
1928            // On clique sur ajouter
1929            $this->byXPath("//input[@value='Ajouter']")->click();
1930            sleep(1);
1931            // On vérifie qu'il n'y ait pas d'erreur
1932            $this->verifynoerrors();
1933            // On vérifie que l'événement d'instruction s'est bien ajouté
1934            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-instruction .message")->text());
1935            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1936            $this->verifyNoErrors();
1937            // On se déconnecte
1938            $this->deconnect();
1939            //}}}
1940            //
1941            //{{{ Ajout d'un nouveau type de dossier d'instruction
1942            // On se connecte à l'application
1943            $this->login("admin", "admin");
1944            // On clique sur le menu "Paramétrage Dossiers"
1945            $this->byLinkText("Paramétrage Dossiers")->click();
1946            // On vérifie qu'il n'y ait pas d'erreur
1947            $this->verifynoerrors();
1948            // On clique sur le menu "Type DI"
1949            $this->byLinkText("Type DI")->click();
1950            // On vérifie qu'il n'y ait pas d'erreur
1951            $this->verifynoerrors();
1952            // On clique sur le + du tableau
1953            $this->byClassName("add-16")->click();
1954            // On vérifie qu'il n'y ait pas d'erreur
1955            $this->verifynoerrors();
1956            //On saisit les données
1957            $this->byId("code")->value("TN");
1958            $this->byId("libelle")->value("Test numérotation");
1959            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1960            $this->byId("suffixe")->click();
1961            // On clique sur ajouter
1962            $this->byXPath("//input[@value='Ajouter']")->click();
1963            // On vérifie qu'il n'y ait pas d'erreur
1964            $this->verifynoerrors();
1965            // On vérifie que le type de dossier d'instruction s'est bien ajouté
1966            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1967            // On clique sur "Retour"
1968            $this->byClassName("retour")->click();
1969            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1970            $this->verifyNoErrors();
1971            //On saisie le nom due l'événement dans la recherche simple
1972            $this->byName("recherche")->value("Test numérotation");
1973            //On valide la recherche
1974            $this->byName('s1')->submit();
1975            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1976            $this->verifyNoErrors();
1977            //On clique sur l'événement
1978            $this->byLinkText("Test numérotation")->click();
1979            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1980            $this->verifyNoErrors();
1981            //On récupère l'identifiant
1982            $dossier_instruction_type = trim($this->byId("dossier_instruction_type")->text());
1983            //}}}
1984            //
1985            //{{{ Ajout d'un nouveau type de demande
1986            // On clique sur le menu "Type"
1987            $this->byLinkText("Type")->click();
1988            // On vérifie qu'il n'y ait pas d'erreur
1989            $this->verifynoerrors();
1990            // On clique sur le + du tableau
1991            $this->byClassName("add-16")->click();
1992            // On vérifie qu'il n'y ait pas d'erreur
1993            $this->verifynoerrors();
1994            //On saisit les données
1995            $this->byId("code")->value("TN");
1996            $this->byId("libelle")->value("Test numérotation");
1997            $this->select($this->byId("groupe"))->selectOptionByValue(1);
1998            sleep(1);
1999            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
2000            sleep(1);
2001            $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
2002            sleep(1);
2003            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
2004            sleep(1);
2005            $this->select($this->byId("dossier_instruction_type"))->selectOptionByValue($dossier_instruction_type);
2006            sleep(1);
2007            $this->select($this->byId("evenement"))->selectOptionByValue(1);
2008            // On clique sur ajouter
2009            $this->byXPath("//input[@value='Ajouter']")->click();
2010            // On vérifie qu'il n'y ait pas d'erreur
2011            $this->verifynoerrors();
2012            // On vérifie qu'il n'y ait pas d'erreur
2013            $this->verifynoerrors();
2014            // On vérifie que le type de dossier d'instruction s'est bien ajouté
2015            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
2016            // On clique sur "Retour"
2017            $this->byClassName("retour")->click();
2018            // On vérifie qu'il n'y ait pas d'erreur
2019            $this->verifynoerrors();
2020            // On saisit le libelle du type de la demande nouvellement créée
2021            $this->byClassName("champFormulaire")->value("Test numérotation");
2022            // On valide la recherche
2023            $this->byName("f1")->submit();
2024            //On clique sur le type de la demande
2025            $this->byLinkText("Test numérotation")->click();
2026            // On vérifie qu'il n'y ait pas d'erreur
2027            $this->verifynoerrors();
2028            // On récupère l'identifiant
2029            $idDemandeType = trim($this->byId("demande_type")->text());
2030            // On se déconnecte
2031            $this->deconnect();
2032            //}}}
2033            //
2034            //{{{ Ajout de d'un nouveau dossier d'instruction avec le nouveau type
2035            //de dossier d'instruction
2036            // On se connecte à l'application
2037            $this->login("guichet", "guichet");
2038            // On clique sur le menu "Dossier En Cours"
2039            $this->byLinkText("Dossier En Cours")->click();
2040            // On vérifie qu'il n'y ait pas d'erreur
2041            $this->verifynoerrors();
2042            // On ajoute un nouveau dossier d'instruction
2043            $dossierTN01 = trim($this->addDossierInstruction(1, $idDemandeType, "Test nouveau DI", 3, $dossierP0));
2044            //On vérifie que le numéro du dossier d'instruction est celui attendu
2045            assert(preg_match('/(PC)[0-9 ]*(TN01)/', $dossierTN01) === 1);
2046            // On se déconnecte
2047            $this->deconnect();
2048            //}}}
2049            
2050            
2051        }
2052    
2053        /**
2054         * test de la numérotation des DI successifs
2055         */
2056        function test_14_recalcul_donnees_DI_vers_DA(){
2057            //{{{ Ajout de d'un nouveau dossier
2058            // On se connecte à l'application
2059            $this->login("guichet", "guichet");
2060            //On clique sur le menu des instructions
2061            $this->byLinkText("Nouveau Dossier")->click();
2062            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2063            $this->verifyNoErrors();
2064            //On ajoute un nouveau dossier
2065            $dossier = $this->addDossierInstruction( 1, 1);                
2066            // On se déconnecte
2067            $this->deconnect();
2068            //}}}
2069            //
2070            //{{{
2071            // Mise à jour des données techniques
2072            // On se connecte à l'application
2073            $this->login("instr", "instr");
2074            //On clique sur le menu "Recherche"
2075            $this->byLinkText("Recherche")->click();
2076            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2077            $this->verifyNoErrors();
2078            // On recherche le dossier crée
2079            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
2080            // On clique sur le bouton recherche
2081            $this->byId("adv-search-submit")->click();
2082            // On clique sur le résultat
2083            $this->byLinkText($dossier)->click();
2084            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2085            $this->verifyNoErrors();
2086            // Ouverture du formulaire des données techniques
2087            $this->byCssSelector("#formulaire .rediger-16")->click();
2088            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2089            $this->verifyNoErrors();
2090            // Modification des données techniques
2091            $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
2092            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2093            $this->verifyNoErrors();
2094            sleep(1);
2095            // On déplie le fieldset Construire
2096            $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
2097            sleep(1);
2098            // On déplie le fieldset Destinations et surfaces des constructions
2099            $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
2100            sleep(1);
2101            //On remplit des données techniques
2102            $this->byId("su_cstr_shon1")->value("120");
2103            // On clique sur ajouter
2104            $this->byXPath("//input[@value='Modifier']")->click();
2105            sleep(1);
2106            // On vérifie qu'il n'y ait pas d'erreur
2107            $this->verifynoerrors();
2108            // On vérifie le message
2109            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-donnees_techniques .message")->text());
2110            //On clique sur retour
2111            $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
2112            //}}}
2113            //
2114            //{{{ Clôture du nouveau dossier
2115            //On clique sur le menu "Recherche"
2116            $this->byLinkText("Recherche")->click();
2117            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2118            $this->verifyNoErrors();
2119            // On recherche le dossier crée
2120            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
2121            // On clique sur le bouton recherche
2122            $this->byId("adv-search-submit")->click();
2123            // On clique sur le résultat
2124            $this->byLinkText($dossier)->click();
2125            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2126            $this->verifyNoErrors();
2127            //On clique sur l'onglet "instruction"
2128            $this->byId("instruction")->click();
2129            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2130            $this->verifyNoErrors();
2131            // On ajoute une instruction
2132            $this->byCssSelector("#sousform-instruction .add-16")->click();
2133            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2134            $this->verifyNoErrors();
2135            //On choisit l'instruction 'accepter un dossier sans réserve
2136            //[acceptation]'
2137            $this->select($this->byId("evenement"))->selectOptionByValue(81);
2138            // On clique sur ajouter
2139            $this->byXPath("//input[@value='Ajouter']")->click();
2140            // On vérifie qu'il n'y ait pas d'erreur
2141            $this->verifynoerrors();
2142            // On vérifie le message
2143            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
2144            //On rafraichit la page pour vérifier que le dossier est clôturé
2145            $this->refresh();
2146            $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
2147            //}}}
2148            //
2149            //{{{ Vérification des données techniques dans la visu DA
2150            //On clique sur le menu "Recherche"
2151            $this->byLinkText("Recherche")->click();
2152            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2153            $this->verifyNoErrors();
2154            // On recherche le dossier crée
2155            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
2156            // On clique sur le bouton recherche
2157            $this->byId("adv-search-submit")->click();
2158            // On clique sur le résultat
2159            $this->byLinkText($dossier)->click();
2160            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2161            $this->verifyNoErrors();
2162            //On clique sur l'onglet "DA"
2163            $this->byId("dossier_autorisation")->click();
2164            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2165            $this->verifyNoErrors();
2166            // On ajoute une instruction
2167            $this->byCssSelector("#sousform-dossier_autorisation .consult-16")->click();
2168            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2169            $this->verifyNoErrors();
2170            // Affichage des données techniques
2171            $this->byId("donnees_techniques_da")->click();
2172            sleep(1);
2173            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2174            $this->verifyNoErrors();
2175            // On déplie le fieldset Construire
2176            $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
2177            sleep(1);
2178            // On déplie le fieldset Destinations et surfaces des constructions
2179            $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
2180            sleep(1);
2181            $this->assertEquals("120", $this->byId("su_cstr_shon1")->text());
2182            //On clique sur retour
2183            $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
2184            // On se déconnecte
2185            $this->deconnect();
2186            //}}}
2187            
2188            // Vérification du calcul de l'état du DA
2189            //{{{ Ajout de d'un nouveau dossier
2190            // On se connecte à l'application
2191            $this->login("guichet", "guichet");
2192            //On clique sur le menu des instructions
2193            $this->byLinkText("Nouveau Dossier")->click();
2194            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2195            $this->verifyNoErrors();
2196            //On ajoute un nouveau dossier
2197            $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
2198            // On se déconnecte
2199            $this->deconnect();
2200            //}}}
2201            // On se connecte à l'application
2202            $this->login("instr", "instr");
2203            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2204            $this->verifyNoErrors();
2205            // On clique sur le lien "Mes encours" dans le menu
2206            $this->byLinkText("Mes Encours")->click();
2207            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2208            $this->verifyNoErrors();
2209            sleep(1);
2210            //On cherche le dossier d'instruction
2211            $this->byName("recherche")->value(str_replace(" ", "", $dossier));
2212            // On valide la recherche
2213            $this->byName("s1")->click();
2214            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2215            $this->verifyNoErrors();
2216            // On clique sur le dossier dernièrement créé
2217            $this->byLinkText($dossier)->click();
2218            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2219            $this->verifyNoErrors();
2220            $this->verifierEtatDA($dossier,81, "Accordé");
2221            // On se déconnecte
2222            $this->deconnect();
2223            //}}}
2224            //{{{ Ajout de d'un nouveau dossier
2225            // On se connecte à l'application
2226            $this->login("guichet", "guichet");
2227            //On clique sur le menu des instructions
2228            $this->byLinkText("Nouveau Dossier")->click();
2229            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2230            $this->verifyNoErrors();
2231            //On ajoute un nouveau dossier
2232            $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
2233            // On se déconnecte
2234            $this->deconnect();
2235            //}}}
2236            // On se connecte à l'application
2237            $this->login("instr", "instr");
2238            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2239            $this->verifyNoErrors();
2240            // On clique sur le lien "Mes encours" dans le menu
2241            $this->byLinkText("Mes Encours")->click();
2242            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2243            $this->verifyNoErrors();
2244            sleep(1);
2245            //On cherche le dossier d'instruction
2246            $this->byClassName("champFormulaire")->value(str_replace(" ", "", $dossier));
2247            // On valide la recherche
2248            $this->byId("f1")->submit();
2249            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2250            $this->verifyNoErrors();
2251            // On clique sur le dossier dernièrement créé
2252            $this->byLinkText($dossier)->click();
2253            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2254            $this->verifyNoErrors();
2255            $this->verifierEtatDA($dossier,31, "Refusé");
2256            // On se déconnecte
2257            $this->deconnect();
2258            //}}}
2259        }
2260        
2261        /*
2262         * Cette méthode teste l'envoi de message au référentiel ERP lors de l'ajout
2263         * d'instruction
2264         */
2265        public function test_15_envoi_de_message_erp(){
2266            
2267            // On se connecte en tant que "admin"
2268            $this->login("admin", "admin");
2269            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2270            $this->verifyNoErrors();
2271            //On clique sur Paramétrage Dossiers
2272            $this->byLinkText("Paramétrage Dossiers")->click();
2273            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2274            $this->verifyNoErrors();
2275            //On clique sur Service
2276            $this->byLinkText("Événement")->click();
2277            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2278            $this->verifyNoErrors();
2279            //Initialisation de la variable
2280            $evenements = array();
2281            //{{{ Ajout d'événements
2282            //On ajoute trois événements
2283            for ($i = 1 ; $i < 3 ; $i++){
2284                $evenements[] = $this->addEvenement("test_evenement_erp_".$i);
2285            }
2286            //}}}
2287            
2288            //{{{ On change trois variables erp_service_accessibilite,
2289            // erp_service_securite et erp_service_conformite
2290            //On clique sur Administration
2291            $this->byLinkText("Administration")->click();
2292            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2293            $this->verifyNoErrors();
2294            //On clique sur Paramètre
2295            $this->byLinkText("Paramètre")->click();
2296            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2297            $this->verifyNoErrors();
2298            $erp_evenement_accepter_sans_reserve = $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $evenements[0]);
2299            $erp_evenement_refuser_dossier = $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $evenements[1]);
2300            $option_referentiel_arrete = $this->changeParametreEvenementErp("option_referentiel_arrete", 'true');
2301            ///}}}
2302            // On se déconnecte
2303            $this->deconnect();
2304            
2305            // On se connecte en tant que "guichet"
2306            $this->login("guichet", "guichet");
2307            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2308            $this->verifyNoErrors();
2309            //{{{On ajoute un dossier d'instruction
2310            //On clique sur Nouveau Dossier
2311            $this->byLinkText("Nouveau Dossier")->click();
2312            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2313            $this->verifyNoErrors();
2314            //On ajoute le dossier
2315            $dossier = $this->addDossierInstruction("1", "1");
2316            //}}}
2317            // On se déconnecte
2318            $this->deconnect();
2319            
2320            // On se connecte en tant que "instr"
2321            $this->login("instr", "instr");
2322            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2323            $this->verifyNoErrors();
2324            //{{{ On ajoute trois événement
2325            //On clique sur Nouveau Dossier
2326            $this->byLinkText("Recherche")->click();
2327            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2328            $this->verifyNoErrors();
2329            //On cherche le dossier d'instruction
2330            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2331            // On valide la recherche
2332            $this->byId("adv-search-submit")->click();
2333            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2334            $this->verifyNoErrors();
2335            //On clique sur le dossier d'instruction
2336            $this->byLinkText($dossier)->click();
2337            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2338            $this->verifyNoErrors();
2339            //On clique sur Modifier
2340            $this->byClassName("edit-16")->click();
2341            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2342            $this->verifyNoErrors();
2343            //On clique sur erp
2344            $this->byId("erp")->click();
2345            //On valide le formulaire
2346            $this->byName("f1")->submit();
2347            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2348            $this->verifyNoErrors();
2349            // On vérifie le message
2350            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
2351            //On clique sur l'onglet instruction
2352            $this->byId("instruction")->click();
2353            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2354            $this->verifyNoErrors();
2355            //On ajoute trois consultations
2356            foreach ($evenements as $value) {
2357                $this->addInstruction($value);
2358            }
2359    
2360            //On clique sur le + du tableau
2361            $this->byClassName("add-16")->click();
2362            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2363            $this->verifyNoErrors();
2364            //On choisit l'événement
2365            $this->select($this->byId("evenement"))->selectOptionByValue(81);
2366            //On valide le formulaire
2367            $this->byName("f2")->submit();
2368            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2369            $this->verifyNoErrors();
2370            // On vérifie que le message de validation est présent
2371            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2372            //On clique sur Retour
2373            $this->byLinkText("Retour")->click();
2374            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2375            $this->verifyNoErrors();
2376            //On clique sur l'instruction
2377            $this->byLinkText("accepter un dossier sans réserve")->click();
2378            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2379            $this->verifyNoErrors();
2380            //On récupère le numéro d'instruction
2381            $instruction = trim($this->byId("instruction")->text());
2382            //On la finalise
2383            $this->byClassName("finalise")->click();
2384            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2385            $this->verifyNoErrors();
2386            // On vérifie que le message de validation est présent
2387            $this->assertContains('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2388            // On se déconnecte
2389            $this->deconnect();
2390            
2391            // On se connecte en tant que "admin"
2392            $this->login("admin", "admin");
2393            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2394            $this->verifyNoErrors();
2395            //On clique sur instruction
2396            $this->byLinkText("Instruction")->click();
2397            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2398            $this->verifyNoErrors();
2399            //On clique sur Recherche
2400            $this->byLinkText("Recherche")->click();
2401            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2402            $this->verifyNoErrors();
2403            //On cherche le dossier d'instruction
2404            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2405            // On valide la recherche
2406            $this->byId("adv-search-submit")->click();
2407            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2408            $this->verifyNoErrors();
2409            //On clique sur le dossier d'instruction
2410            $this->byLinkText($dossier)->click();
2411            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2412            $this->verifyNoErrors();
2413            //On clique sur l'onglet instruction
2414            $this->byId("instruction")->click();
2415            //On clique sur l'instruction accepter un dossier sans réserve
2416            $this->byLinkText("accepter un dossier sans réserve")->click();
2417            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2418            $this->verifyNoErrors();
2419            //On la definalise
2420            $this->byClassName("definalise")->click();
2421            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2422            $this->verifyNoErrors();
2423            // On vérifie que le message de validation est présent
2424            $this->assertContains('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2425            //On clique sur modifier
2426            $this->byCssSelector("#sousform-instruction .edit-16")->click();
2427            sleep(2);
2428            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2429            $this->verifyNoErrors();
2430            //On choisit un signataire Albert Dupont
2431            $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
2432            //On remplit la date de retour sign
2433            $this->byId("date_retour_signature")->value(date('d/m/Y'));
2434            //On valide le formulaire
2435            $this->byName("f2")->submit();
2436            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2437            $this->verifyNoErrors();
2438            // On vérifie que le message de validation est présent
2439            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2440            // On vérifie que le message d'envoi est présent
2441            $this->assertContains('Le message a été transmis au référentiel arrêté.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2442            //}}}
2443            
2444            // On se déconnecte
2445            $this->deconnect();
2446            
2447            // On se connecte en tant que "admin"
2448            $this->login("admin", "admin");
2449            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2450            $this->verifyNoErrors();
2451            //{{{ On remet les valeurs par défaut des paramètres
2452            //On clique sur Administration
2453            $this->byLinkText("Administration")->click();
2454            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2455            $this->verifyNoErrors();
2456            //On clique sur Paramètre
2457            $this->byLinkText("Paramètre")->click();
2458            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2459            $this->verifyNoErrors();
2460            $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $erp_evenement_accepter_sans_reserve);
2461            $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $erp_evenement_refuser_dossier);
2462            $this->changeParametreEvenementErp("option_referentiel_arrete", $option_referentiel_arrete);
2463            //}}}
2464            
2465            //On se déconnecte
2466            $this->logout();
2467        }
2468        
2469        /*
2470         * Cette méthode teste l'envoi de message au référentiel ERP lors de la
2471         * modification d'un dossier d'insruction
2472         */
2473        public function test_16_envoi_de_message_erp_dossier_instruction(){
2474            
2475            // On se connecte en tant que "admin"
2476            $this->login("admin", "admin");
2477            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2478            $this->verifyNoErrors();
2479            
2480            //{{{ On change deux variables erp_nature_dat et erp_dossier_nature_pc
2481            //On clique sur Administration
2482            $this->byLinkText("Administration")->click();
2483            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2484            $this->verifyNoErrors();
2485            //On clique sur Paramètre
2486            $this->byLinkText("Paramètre")->click();
2487            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2488            $this->verifyNoErrors();
2489            //On change la valeur des paramètres
2490            $erp_nature_dat = $this->changeParametreEvenementErp("erp_nature_dat", "AT");
2491            $erp_dossier_nature_pc = $this->changeParametreEvenementErp("erp_dossier_nature_pc", "PCI");
2492            //}}}
2493            // On se déconnecte
2494            $this->deconnect();
2495            
2496            //{{{Ajout d'un dossier AT par le guichet unique
2497            // On se connecte en tant que "guichet"
2498            $this->login("guichet", "guichet");
2499            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2500            $this->verifyNoErrors();
2501            //On clique sur Nouveau Dossier
2502            $this->byLinkText("Nouveau Dossier")->click();
2503            //On ajoute un dossier d'instruction de type AT
2504            $dossier = $this->addDossierInstruction(8, 8);
2505            //}}}
2506            // On se déconnecte
2507            $this->deconnect();
2508            
2509            // On se connecte en tant que "instr"
2510            $this->login("instr", "instr");
2511            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2512            $this->verifyNoErrors();
2513            //{{{On change le dossier en a été qualifié
2514            //On clique sur Recherche
2515            $this->byLinkText("Recherche")->click();
2516            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2517            $this->verifyNoErrors();
2518            //On cherche le dossier d'instruction
2519            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2520            // On valide la recherche
2521            $this->byId("adv-search-submit")->click();
2522            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2523            $this->verifyNoErrors();
2524            //On clique sur le dossier d'instruction
2525            $this->byLinkText($dossier)->click();
2526            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2527            $this->verifyNoErrors();
2528            //On clique sur modifier
2529            $this->byClassName("edit-16")->click();
2530            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2531            $this->verifyNoErrors();
2532            //On décoche à qualifier
2533            $this->byId("a_qualifier")->click();
2534            //On valide le formulaire
2535            $this->byName("f1")->submit();
2536            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2537            $this->verifyNoErrors();
2538            // On vérifie que le message de validation est présent
2539            $this->assertContains('Vos modifications ont bien été enregistrées.',
2540                $this->byCssSelector(".message .text")->text());
2541            // On vérifie que le message d'envoi est présent
2542            $this->assertContains('Le message a été transmis au référentiel ERP.',
2543                $this->byCssSelector(".message .text")->text());
2544            //}}}
2545            // On se déconnecte
2546            $this->deconnect();
2547            
2548            //{{{Ajout d'un dossier PC par le guichet unique
2549            // On se connecte en tant que "guichet"
2550            $this->login("guichet", "guichet");
2551            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2552            $this->verifyNoErrors();
2553            //On clique sur Nouveau Dossier
2554            $this->byLinkText("Nouveau Dossier")->click();
2555            //On ajoute un dossier d'instruction de type AT
2556            $dossier = $this->addDossierInstruction(1, 1);
2557            //}}}
2558            // On se déconnecte
2559            $this->deconnect();
2560            
2561            // On se connecte en tant que "instr"
2562            $this->login("instr", "instr");
2563            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2564            $this->verifyNoErrors();
2565            //{{{On change le dossier en ERP
2566            //On clique sur Recherche
2567            $this->byLinkText("Recherche")->click();
2568            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2569            $this->verifyNoErrors();
2570            //On cherche le dossier d'instruction
2571            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2572            // On valide la recherche
2573            $this->byId("adv-search-submit")->click();
2574            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2575            $this->verifyNoErrors();
2576            //On clique sur le dossier d'instruction
2577            $this->byLinkText($dossier)->click();
2578            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2579            $this->verifyNoErrors();
2580            //On clique sur modifier
2581            $this->byClassName("edit-16")->click();
2582            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2583            $this->verifyNoErrors();
2584            //On décoche à qualifier
2585            $this->byId("a_qualifier")->click();
2586            //On coche ERP
2587            $this->byId("erp")->click();
2588            //On valide le formulaire
2589            $this->byName("f1")->submit();
2590            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2591            $this->verifyNoErrors();
2592            // On vérifie que le message de validation est présent
2593            $this->assertContains('Vos modifications ont bien été enregistrées.',
2594                $this->byCssSelector(".message .text")->text());
2595            // On vérifie que le message d'envoi est présent
2596            $this->assertContains('Le message a été transmis au référentiel ERP.',
2597                $this->byCssSelector(".message .text")->text());
2598            //}}}
2599            // On se déconnecte
2600            $this->deconnect();
2601            
2602            // On se connecte en tant que "admin"
2603            $this->login("admin", "admin");
2604            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2605            $this->verifyNoErrors();
2606            
2607            //{{{ On change deux variables erp_nature_dat et erp_dossier_nature_pc
2608            //On clique sur Administration
2609            $this->byLinkText("Administration")->click();
2610            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2611            $this->verifyNoErrors();
2612            //On clique sur Paramètre
2613            $this->byLinkText("Paramètre")->click();
2614            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2615            $this->verifyNoErrors();
2616            //On change la valeur des paramètres
2617            $this->changeParametreEvenementErp("erp_nature_dat", $erp_nature_dat);
2618            $this->changeParametreEvenementErp("erp_dossier_nature_pc", $erp_dossier_nature_pc);
2619            //}}}
2620            
2621            //On se déconnecte
2622            $this->logout();
2623        }
2624    
2625        /**
2626         * test d'annulation d'un DA.
2627         */
2628        function test_17_di_annulation() {
2629            // On se connecte en tant que "admin"
2630            $this->login("admin", "admin");
2631            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2632            $this->verifyNoErrors();
2633            
2634            //On clique sur Administration
2635            $this->byLinkText("Paramétrage Dossiers")->click();
2636            // Ajout d'un type de DI ANNULATION
2637            $this->byLinkText("Type DI")->click();
2638            $this->byCssSelector(".add-16")->click();
2639            $this->byId("code")->value('ANNUL');
2640            $this->byId("libelle")->value('Demande d\'annulation');
2641            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue('1');
2642            $this->byId('suffixe')->click();
2643            $this->select($this->byName("mouvement_sitadel"))->selectOptionByValue('SUPPRESSION');
2644            // On clique sur ajouter
2645            $this->byXPath("//input[@value='Ajouter']")->click();
2646            // On vérifie qu'il n'y ait pas d'erreur
2647            $this->verifynoerrors();
2648            // On vérifie que le message de validation est présent
2649            $this->assertContains('Vos modifications ont bien été enregistrées.',
2650                $this->byCssSelector(".message .text")->text());
2651            //On clique sur le bouton retour
2652            $this->byLinkText("Retour")->click();
2653            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2654            $this->verifyNoErrors();
2655            //On saisie le nom due l'événement dans la recherche simple
2656            $this->byClassName("champFormulaire")->value("ANNUL");
2657            //On valide la recherche
2658            $this->byName('s1')->submit();
2659            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2660            $this->verifyNoErrors();
2661            //On clique sur l'événement
2662            $this->byLinkText("ANNUL")->click();
2663            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2664            $this->verifyNoErrors();
2665            // Récupération de l'id du type de DI
2666            $idDIAnnul = $this->byId("dossier_instruction_type")->text();
2667            // Ajout d'un type de demande ANNULATION
2668            $this->byLinkText("Type")->click();
2669            $this->byCssSelector(".add-16")->click();
2670            $this->byId("code")->value('ANNUL');
2671            $this->byId("libelle")->value('Demande d\'annulation');
2672            $this->select($this->byName("groupe"))->selectOptionByValue('1');
2673            $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue('1');
2674            $this->select($this->byName("demande_nature"))->selectOptionByValue('2');
2675            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))
2676                ->selectOptionByValue("1");
2677            $this->select($this->byName("contraintes"))->selectOptionByValue('avec_recup');
2678            $this->select($this->byName("dossier_instruction_type"))->selectOptionByValue($idDIAnnul);
2679            $this->select($this->byName("evenement"))->selectOptionByValue('25');
2680            // On clique sur ajouter
2681            $this->byXPath("//input[@value='Ajouter']")->click();
2682            // On vérifie qu'il n'y ait pas d'erreur
2683            $this->verifynoerrors();
2684            // On vérifie que le message de validation est présent
2685            $this->assertContains('Vos modifications ont bien été enregistrées.',
2686                $this->byCssSelector(".message .text")->text());
2687            //On clique sur le bouton retour
2688            $this->byLinkText("Retour")->click();
2689            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2690            $this->verifyNoErrors();
2691            //On saisie le nom due l'événement dans la recherche simple
2692            $this->byClassName("champFormulaire")->value("ANNUL");
2693            //On valide la recherche
2694            $this->byName('s1')->submit();
2695            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2696            $this->verifyNoErrors();
2697            //On clique sur l'événement
2698            $this->byLinkText("ANNUL")->click();
2699            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2700            $this->verifyNoErrors();
2701            // Récupération de l'id de la demande
2702            $idDemandeAnnul = $this->byId("demande_type")->text();
2703            // Modification de l'action d'abandon de dossier
2704            $this->byLinkText("Action")->click();
2705            // On vérifie qu'il n'y ait pas d'erreur
2706            $this->verifynoerrors();
2707            // Modification de l'action d'abandon de dossier
2708            $this->byLinkText("abandon")->click();
2709            // Modification de l'action d'abandon de dossier
2710            $this->byCssSelector(".edit-16")->click();
2711            // On vérifie qu'il n'y ait pas d'erreur
2712            $this->verifynoerrors();
2713            $this->byId("regle_avis")->clear();
2714            $this->byId("regle_avis")->value('avis_decision');
2715            $this->byId("regle_date_decision")->clear();
2716            $this->byId("regle_date_decision")->value('date_evenement');
2717            // On clique sur ajouter
2718            $this->byXPath("//input[@value='Modifier']")->click();
2719            // On vérifie qu'il n'y ait pas d'erreur
2720            $this->verifynoerrors();
2721            // On vérifie que le message de validation est présent
2722            $this->assertContains('Vos modifications ont bien été enregistrées.',
2723                $this->byCssSelector(".message .text")->text());
2724            // On se déconnecte
2725            $this->deconnect();
2726            // On se connecte en tant que "admin"
2727            $this->login("guichet", "guichet");
2728            //On clique sur le menu des instructions
2729            $this->byLinkText("Nouveau Dossier")->click();
2730            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2731            $this->verifyNoErrors();
2732            // Création d'un DI
2733            $dossier = $this->addDossierInstruction(1, 1, "test annulation");
2734            // On se déconnecte
2735            $this->deconnect();
2736            // On se connecte en tant que "instr"
2737            $this->login("instr", "instr");
2738            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2739            $this->verifyNoErrors();
2740            // On clique sur le lien "Mes encours" dans le menu
2741            $this->byLinkText("Recherche")->click();
2742            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2743            $this->verifyNoErrors();
2744            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2745            $this->byName("advanced-search-submit")->click();
2746            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2747            $this->verifyNoErrors();
2748            // On clique sur le dossier dernièrement créé
2749            $this->byLinkText($dossier)->click();
2750            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2751            $this->verifyNoErrors();
2752            // On clique sur l'onglet "Instruction"
2753            $this->byId("dossier_autorisation")->click();
2754            sleep(1);
2755            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2756            $this->verifyNoErrors();
2757            // Verification de l'état du DA correspondant
2758            $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2759            // On se déconnecte
2760            $this->deconnect();
2761            // On se connecte en tant que "guichet"
2762            $this->login("guichet", "guichet");
2763            //On clique sur le menu des instructions
2764            $this->byLinkText("Dossier En Cours")->click();
2765            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2766            $this->verifyNoErrors();
2767            // Création d'un DI
2768            $dossier = $this->addDossierInstruction(
2769                1,
2770                $idDemandeAnnul,
2771                "test annulation",
2772                2,
2773                $dossier,
2774                false);
2775          // On se déconnecte          // On se déconnecte
2776            $this->deconnect();
2777            // On se connecte en tant que "instr"
2778            $this->login("instr", "instr");
2779            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2780            $this->verifyNoErrors();
2781            // On clique sur le lien "Mes encours" dans le menu
2782            $this->byLinkText("Recherche")->click();
2783            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2784            $this->verifyNoErrors();
2785            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2786            $this->byName("advanced-search-submit")->click();
2787            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2788            $this->verifyNoErrors();
2789            // On clique sur le dossier dernièrement créé
2790            $this->byLinkText($dossier)->click();
2791            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2792            $this->verifyNoErrors();
2793            // On clique sur l'onglet "Instruction"
2794            $this->byId("dossier_autorisation")->click();
2795            sleep(1);
2796            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2797            $this->verifyNoErrors();
2798            // Verification de l'état du DA correspondant
2799            $this->assertContains('Abandonné', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2800            //On se déconnecte
2801          $this->logout();          $this->logout();
2802        }
2803        
2804        /**
2805         * Ajout d'un dossier d'instruction par le guichet unique
2806         *
2807         * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
2808         *  de dossier d'autorisation
2809         * @param int $demande_type L'identifiant du type de la demande
2810         * @param int $type Type de la demande : nouveau dossier ou dossier existant
2811         * @return le numéro de dossier d'instruction qui vient d'être créé
2812         */
2813        public function addDossierInstruction($dossier_autorisation_type_detaille,
2814            $demande_type, $nom_petit = "test recopie",  $type = 1, $dossier = "",
2815            $petit = true){
2816            
2817            if ($type===1){
2818                //On choisit le type détaillé de dossier d'autorisation
2819                $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
2820            }
2821            else {
2822                sleep(2);
2823                // On remplit le champ de recherche simple
2824                $this->byCssSelector("input[name='recherche']")->value(str_replace(' ', '', $dossier));
2825                // On clique sur le bouton recherche
2826                $this->byCssSelector(".ui-button")->click();sleep(1);
2827                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2828                $this->verifyNoErrors();
2829                // On clique sur le résultat
2830                $this->byId("action-tab-demande_dossier_encours-left-consulter-".str_replace(' ', '', $dossier))->click();
2831                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2832                $this->verifyNoErrors();
2833            }
2834            //On choisit le type de demande
2835            $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
2836            if($petit) {
2837                //On clique sur "Saisir le pétitionnaire principal"
2838                $this->byId("add_petitionnaire_principal")->click();
2839                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2840                $this->verifyNoErrors();
2841                //On saisie le nom du pétitionnaire principal
2842                $this->byId("particulier_nom")->value($nom_petit);
2843                // On clique sur ajouter
2844                $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
2845                // On vérifie qu'il n'y ait pas d'erreur
2846                $this->verifynoerrors();
2847                //On vérifie que le pétitionnaire s'est bien ajouté
2848                // On vérifie le message
2849                $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
2850                // On clique sur le bouton retour
2851                $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
2852                // On vérifie que le text est présent
2853                $this->assertContains($nom_petit,$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
2854            }
2855            // On clique sur ajouter
2856            $this->byXPath("//input[@value='Ajouter']")->click();
2857            // On vérifie qu'il n'y ait pas d'erreur
2858            $this->verifynoerrors();
2859            // On vérifie le message
2860            $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
2861            //On récupère le numéro de dossier d'instruction créé
2862            if ($type===1){
2863                preg_match('/(PC|AT)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2864            }
2865            elseif ($type===2){
2866                preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2867            }
2868            else{
2869                preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2870            }
2871            return $dossier[0];
2872        }
2873    
2874        /*
2875         * Ajoute un événement
2876         * @param $libelle le libelle de l'événement
2877         *
2878         * @return l'identifiant de l'événement
2879         */
2880        private function addEvenement($libelle){
2881            
2882            //On clique sur le + du tableau
2883            $this->byClassName("add-16")->click();
2884            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2885            $this->verifyNoErrors();
2886            //On remplit les champs
2887            $this->byId("libelle")->value($libelle);
2888            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))
2889                ->selectOptionByValue("notifier");
2890            $this->select($this->byName("dossier_instruction_type[]"))
2891                ->selectOptionByValue("1");
2892            //On valide le formulaire
2893            $this->byName('f1')->submit();
2894            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2895            $this->verifyNoErrors();
2896            // On vérifie que le message de validation est présent
2897            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2898            //On clique sur le bouton retour
2899            $this->byLinkText("Retour")->click();
2900            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2901            $this->verifyNoErrors();
2902            //On saisie le nom due l'événement dans la recherche simple
2903            $this->byClassName("champFormulaire")->value($libelle);
2904            //On valide la recherche
2905            $this->byName('s1')->submit();
2906            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2907            $this->verifyNoErrors();
2908            //On clique sur l'événement
2909            $this->byLinkText($libelle)->click();
2910            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2911            $this->verifyNoErrors();
2912            //On récupère l'identifiant
2913            $evenementId = trim($this->byId("evenement")->text());
2914            //On clique sur le bouton Retour
2915            $this->byLinkText("Retour")->click();
2916            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2917            $this->verifyNoErrors();
2918            //On retourne l'identifiant
2919            return $evenementId;
2920        }
2921    
2922        /*
2923         * Modifie la valeur du paramètre du numéro de'événement pour le message ERP
2924         * @param string $parametre le libelle du paramètre
2925         * @param string $valeur la valeur à renseigner
2926         *
2927         * @return string la valeur précédente du paramètre
2928         */
2929        private function changeParametreEvenementErp($parametre, $valeur){
2930            
2931            //On vide le champ
2932            $this->byClassName("champFormulaire")->clear();
2933            //On saisie le nom de la variable dans la recherche simple
2934            $this->byClassName("champFormulaire")->value($parametre);
2935            //On valide la recherche
2936            $this->byName('s1')->submit();
2937            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2938            $this->verifyNoErrors();
2939            //On clique sur le paramètre
2940            $this->byLinkText($parametre)->click();
2941            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2942            $this->verifyNoErrors();
2943            //On clique sur modifier dans le portail d'action
2944            $this->byClassName("edit-16")->click();
2945            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2946            $this->verifyNoErrors();
2947            //On récupère la valeur actuelle du paramètre
2948            $parametre = trim($this->byId("valeur")->value());
2949            //On vide le champ
2950            $this->byId("valeur")->clear();
2951            //On change la valeur du paramètre
2952            $this->byId("valeur")->value($valeur);
2953            //On valide le formulaire
2954            $this->byName('f1')->submit();
2955            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2956            $this->verifyNoErrors();
2957            // On vérifie que le message de validation est présent
2958            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2959            //On clique sur le bouton retour
2960            $this->byLinkText("Retour")->click();
2961            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2962            $this->verifyNoErrors();
2963            //On clique sur le bouton retour
2964            $this->byLinkText("Retour")->click();
2965            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2966            $this->verifyNoErrors();
2967            //On retourne la valeur
2968            return $parametre;
2969        }
2970    
2971        /*
2972         * Ajoute une instruction
2973         * @param int $service l'identifiant du service
2974         */
2975        private function addInstruction($evenement, $erp = true){
2976            
2977            //On clique sur le + du tableau
2978            $this->byClassName("add-16")->click();
2979            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2980            $this->verifyNoErrors();
2981            //On choisit l'événement
2982            $this->select($this->byId("evenement"))->selectOptionByValue($evenement);
2983            //On valide le formulaire
2984            $this->byName("f2")->submit();
2985            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2986            $this->verifyNoErrors();
2987            // On vérifie que le message de validation est présent
2988            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2989            if($erp) {
2990                // On vérifie que le message d'envoi est présent
2991                $this->assertContains('Le message a été transmis au référentiel ERP.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2992            }
2993            //On clique sur le bouton retour
2994            $this->byLinkText("Retour")->click();
2995            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2996            $this->verifyNoErrors();
2997        }
2998    
2999        /**
3000         * Permet de vérifier l'état d'un DA en fonction de l'état de ses DI.
3001         * @param  string  $dossier numéro de dossier
3002         * @param  integer $event   numéro d'événement
3003         * @param  string  $etat    état du DA
3004         */
3005        private function verifierEtatDA($dossier, $event, $etat) {
3006            // On clique sur l'onglet "DA"
3007            $this->byId("dossier_autorisation")->click();
3008            sleep(1);
3009            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3010            $this->verifyNoErrors();
3011            $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
3012            // retour sur l'ajout d'événement
3013            $this->byId("instruction")->click();
3014            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3015            $this->verifyNoErrors();
3016            $this->addInstruction($event, false);
3017            // On clique sur l'onglet "DA"
3018            $this->byId("dossier_autorisation")->click();
3019            sleep(1);
3020            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
3021            $this->verifyNoErrors();
3022            $this->assertContains($etat, $this->byCssSelector("#sousform-dossier_autorisation")->text());
3023      }      }
3024  }  }
3025    

Legend:
Removed from v.2605  
changed lines
  Added in v.3006

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26