/[openfoncier]/trunk/tests/testInstruction.php
ViewVC logotype

Diff of /trunk/tests/testInstruction.php

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

revision 2621 by vpihour, Wed Dec 18 10:45:16 2013 UTC revision 2902 by vpihour, Wed Apr 2 09:40:57 2014 UTC
# 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 "instr"          // On se connecte en tant que "instr"
354          $this->login("instr", "instr");          $this->login("instr", "instr");
355          // 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 359  class Instruction extends Base2TestCase
359          // 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é
360          $this->verifyNoErrors();          $this->verifyNoErrors();
361          sleep(1);          sleep(1);
362          // On clique sur le lien "DP 013055 12 00001P0" dans le tableau          // On clique sur le dossier dernièrement créé
363          $this->byLinkText("DP 013055 12 00001P0")->click();          $this->byLinkText($dossier)->click();
364          // 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é
365          $this->verifyNoErrors();          $this->verifyNoErrors();
366          // On clique sur l'onglet "Instruction"          // On clique sur l'onglet "Instruction"
# Line 357  class Instruction extends Base2TestCase Line 372  class Instruction extends Base2TestCase
372          $this->byCssSelector(".actions-max-1 a")->click();          $this->byCssSelector(".actions-max-1 a")->click();
373          // 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é
374          $this->verifyNoErrors();          $this->verifyNoErrors();
375          //On choisi un événement          //On choisi l'événement CDEC majoration appel decision [majoration]
376          $this->select($this->byId("evenement"))->selectOptionByValue("22");          $this->select($this->byId("evenement"))->selectOptionByValue("22");
377          //On valide le formulaire          //On valide le formulaire
378          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
# Line 395  class Instruction extends Base2TestCase Line 410  class Instruction extends Base2TestCase
410          $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',          $this->assertRegExp('/^[\s\S]*V64[\s\S]*$/',
411              $this->byCssSelector("#tab-bible")->text());              $this->byCssSelector("#tab-bible")->text());
412          // On choisit plusieurs éléments          // On choisit plusieurs éléments
413          $this->byId('checkbox0')->click();          $this->byId('checkbox4')->click();
414          $this->byId('checkbox1')->click();          $this->byId('checkbox5')->click();
415          // On valide le formulaire          // On valide le formulaire
416          $this->byXPath("//input[@value='Valider']")->click();          $this->byXPath("//input[@value='Valider']")->click();
417          // 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é
418          $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());  
419          // On valide le formulaire          // On valide le formulaire
420          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
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);          // On vérifie le message de validation
424          $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());
425          //On retourne sur le tableau d'instructions          //On retourne sur le tableau d'instructions
426          $this->byCssSelector("#sousform-instruction .retour")->click();          $this->byCssSelector("#sousform-instruction .retour")->click();
427          // 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é
428          $this->verifyNoErrors();          $this->verifyNoErrors();
429          //On affiche l'instruction          // On clique sur l'instruction
430          $this->byLinkText("accepter un dossier sans réserve")->click();          $this->byLinkText("accepter un dossier sans réserve")->click();
431          // 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é
432          $this->verifyNoErrors();          $this->verifyNoErrors();
433            // On vérifie le contenu du champ "complément"
434            $this->assertContains("Vu l'avis favorable de l'Architecte des Bâtiments de France en date du", $this->byId("complement_om_html")->text());
435            $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());
436          //On vérifie que certains champs apparaissent          //On vérifie que certains champs apparaissent
437          $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());          $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
438          $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());          $this->assertTrue($this->byClassName("libelle-date_envoi_controle_legalite")->displayed());
439          // On se déconnecte          // On se déconnecte
440            $this->deconnect();
441    
442            //{{{
443            // Ajout de d'un nouveau dossier pour test d'ajout d'événement d'instruction
444            // sans lettretype
445            // On se connecte à l'application
446            $this->login("guichet", "guichet");
447            //On clique sur le menu des instructions
448            $this->byLinkText("Nouveau Dossier")->click();
449            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
450            $this->verifyNoErrors();
451            //On ajoute un nouveau dossier
452            $dossier = $this->addDossierInstruction(1, 1, "Test instruction sans édition");
453            // On se déconnecte
454            $this->deconnect();
455            // On se connecte en tant que "instr"
456            $this->login("instr", "instr");
457            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
458            $this->verifyNoErrors();
459            // On clique sur le lien "Mes encours" dans le menu
460            $this->byLinkText("Mes Encours")->click();
461            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
462            $this->verifyNoErrors();
463            sleep(1);
464            // On clique sur le dossier dernièrement créé
465            $this->byLinkText($dossier)->click();
466            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
467            $this->verifyNoErrors();
468            // On clique sur l'onglet "Instruction"
469            $this->byId("instruction")->click();
470            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
471            $this->verifyNoErrors();
472            //Ajout d'une instruction de refus
473            // On clique sur le lien d'ajout dans le tableau
474            $this->byCssSelector(".actions-max-1 a")->click();
475            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
476            $this->verifyNoErrors();
477            //On choisi l'événement Refus HS
478            $this->select($this->byId("evenement"))->selectOptionByValue("94");
479            //On valide le formulaire
480            $this->byXPath("//input[@value='Ajouter']")->click();
481            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
482            $this->verifyNoErrors();
483            // On vérifie le mesage de validation
484            $this->assertRegExp(
485                '/.*Vos modifications ont bien été enregistrées.*/',
486                $this->byCssSelector("#sousform-instruction .message .text")->text()
487            );
488            //On retourne sur le tableau d'instructions
489            $this->byCssSelector("#sousform-instruction .retour")->click();
490            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
491            $this->verifyNoErrors();
492            // On clique sur l'instruction
493            $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
494            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
495            $this->verifyNoErrors();
496            // On vérifie qu'il n'y a pas d'action "Édition" dans le portlet d'actions
497            $test = preg_match(
498                '/Édition/i',
499                $this->byCssSelector("#sousform-instruction #portlet-actions")->text()
500            );
501            $this->assertTrue(!$test);
502            // On vérifie qu'il n'y a pas d'action "Finaliser le document" dans
503            // le portlet d'actions
504            $test = preg_match(
505                '/Finaliser le document/i',
506                $this->byCssSelector("#sousform-instruction #portlet-actions")->text()
507            );
508            $this->assertTrue(!$test);
509            // On se déconnecte
510          $this->logout();          $this->logout();
511            // }}}
512      }      }
513    
514      /**      /**
515       * 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
516       */       */
517      public function test_05_ajout_lot() {      public function test_05_ajout_lot() {
518          // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
# Line 476  class Instruction extends Base2TestCase Line 564  class Instruction extends Base2TestCase
564          // On se déconnecte          // On se déconnecte
565          $this->logout();          $this->logout();
566      }      }
567    //
568      /**      /**
569       * Test du lien automatique entre choix autorité compétente dans DI et       * test du lien automatique entre choix autorité compétente dans DI et
570       * évènement d'instruction à créer       * évènement d'instruction à créer
571       */       */
572      // Fonction privé      // Fonction privé
# Line 522  class Instruction extends Base2TestCase Line 610  class Instruction extends Base2TestCase
610          $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());          $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
611          // On se déconnecte          // On se déconnecte
612          $this->deconnect();          $this->deconnect();
613    //
614          // On se connecte en tant que "admin"          // On se connecte en tant que "admin"
615          $this->login("admin", "admin");          $this->login("admin", "admin");
616          sleep(1);          sleep(1);
# Line 533  class Instruction extends Base2TestCase Line 621  class Instruction extends Base2TestCase
621          $this->byLinkText("AZ 013055 12 00001P0")->click();          $this->byLinkText("AZ 013055 12 00001P0")->click();
622          // 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é
623          $this->verifyNoErrors();          $this->verifyNoErrors();
624          // On verifie que l'autorité compétente à changée.          // On verifie que l'autorité compétente à changée
625          $this->assertRegExp('/.*Commune pour état*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());          $this->assertEquals('Commune pour état', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
626          // On clique sur l'onglet "Instruction"          // On clique sur l'onglet "Instruction"
627          $this->byId("instruction")->click();          $this->byId("instruction")->click();
628          $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();          $this->byLinkText("Changer l'autorité compétente 'commune état'")->click();
629          sleep(1);          sleep(1);
630          // 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é
631          $this->verifyNoErrors();          $this->verifyNoErrors();
         $this->byXPath("(//div[@id='portlet-actions']/ul/li[2]/a/span)[2]")->click();  
632          // 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"
633          $this->byCssSelector("form[name=\"f2\"] > a.retour")->click();          $this->byId("action-sousform-instruction-supprimer")->click();
634            // On valide le formulaire
635            $this->byXPath("//input[@value='Supprimer']")->click();sleep(1);
636            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
637            $this->verifyNoErrors();
638            // On clique sur le bouton retour
639            $this->byLinkText("Retour")->click();
640            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
641            $this->verifyNoErrors();
642            // On vérifie que l'événement d'instruction n'est plus dans le tableau
643            $this->assertNotContains("Changer l'autorité compétente 'commune état'", $this->byId("sousform-instruction")->text());
644          // Retour à l'onglet principal          // Retour à l'onglet principal
645          $this->byId("main")->click();          $this->byId("main")->click();
646            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
647            $this->verifyNoErrors();
648            // On rafraîchit la page
649          $this->refresh();          $this->refresh();
650          // 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é
651          $this->verifyNoErrors();          $this->verifyNoErrors();
652          // On verifie que l'autorité compétente à changée.          // On verifie que l'autorité compétente à changée.
653          $this->assertRegExp('/.*Commune*/', $this->byCssSelector("#tabs-1 #autorite_competente")->text());          $this->assertEquals('Commune', $this->byCssSelector("#tabs-1 #autorite_competente")->text());
654          // On se déconnecte          // On se déconnecte
655          $this->deconnect();          $this->deconnect();
656      }      }
# Line 566  class Instruction extends Base2TestCase Line 666  class Instruction extends Base2TestCase
666          // On vérifie la déconnexion          // On vérifie la déconnexion
667          $this->verifyDeconnect();          $this->verifyDeconnect();
668      }      }
669    //
670      /**      /**
671       * Test de l'ajout de données techniques au dossier       * test de l'ajout de données techniques au dossier
672       */       */
673      public function test_07_edition_donnees_techniques() {      public function test_07_edition_donnees_techniques() {
674          // On se connecte en tant que "instr"          // On se connecte en tant que "instr"
# Line 634  class Instruction extends Base2TestCase Line 734  class Instruction extends Base2TestCase
734          sleep(1);          sleep(1);
735          // On se déconnecte          // On se déconnecte
736          $this->logout();          $this->logout();
737    //
738      }      }
739    //
740      /**      /**
741       * Test un événement d'instruction qui a un événement "retour"       * test un événement d'instruction qui a un événement "retour"
742       */       */
743      public function test_08_evenement_instruction_retour() {      public function test_08_evenement_instruction_retour() {
744    //
         // Instancie la timezone  
         date_default_timezone_set('Europe/Paris');  
   
745          // On se connecte à l'application en tant qu'administrateur          // On se connecte à l'application en tant qu'administrateur
746          $this->login("admin", "admin");          $this->login("admin", "admin");
747          // 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é
748          $this->verifyNoErrors();          $this->verifyNoErrors();
749    //
750          /** On ajoute une action "retour signature" **/          /** On ajoute une action "retour signature" **/
751          // On clique sur le menu "Paramétrage Dossiers"          // On clique sur le menu "Paramétrage Dossiers"
752          $this->byLinkText("Paramétrage Dossiers")->click();          $this->byLinkText("Paramétrage Dossiers")->click();
# Line 671  class Instruction extends Base2TestCase Line 768  class Instruction extends Base2TestCase
768          // On vérifie le message de validation          // On vérifie le message de validation
769          $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());
770          /** Fin **/          /** Fin **/
771    //
772          /** On ajoute un événement "retour signature" **/          /** On ajoute un événement "retour signature" **/
773          // On clique sur le sous-menu "Événement"          // On clique sur le sous-menu "Événement"
774          $this->byLinkText("Événement")->click();          $this->byLinkText("Événement")->click();
# Line 714  class Instruction extends Base2TestCase Line 811  class Instruction extends Base2TestCase
811          // On vérifie le message de validation          // On vérifie le message de validation
812          $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());
813          /** Fin **/          /** Fin **/
814    //
815          /** On ajoute une durée de validité au type de DA PCI **/          /** On ajoute une durée de validité au type de DA PCI **/
816          // On clique sur le sous-menu "Type DA Détaillé"          // On clique sur le sous-menu "Type DA Détaillé"
817          $this->byLinkText("Type DA Détaillé")->click();          $this->byLinkText("Type DA Détaillé")->click();
# Line 732  class Instruction extends Base2TestCase Line 829  class Instruction extends Base2TestCase
829          // On vérifie le message de validation          // On vérifie le message de validation
830          $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());
831          /** Fin **/          /** Fin **/
832    //
833          /** On instancie une nouvelle demande initial PCI **/          /** On instancie une nouvelle demande initial PCI **/
834          // On clique sur le menu "Guichet Unique"          // On clique sur le menu "Guichet Unique"
835          $this->byLinkText("Guichet Unique")->click();          $this->byLinkText("Guichet Unique")->click();
# Line 786  class Instruction extends Base2TestCase Line 883  class Instruction extends Base2TestCase
883          preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);          preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
884          $dossier = $dossier[0];          $dossier = $dossier[0];
885          /** Fin **/          /** Fin **/
886    //
887          /** On ajoute une instruction de dossier accepter et on la finalise **/          /** On ajoute une instruction de dossier accepter et on la finalise **/
888          // On clique sur le menu "Instruction"          // On clique sur le menu "Instruction"
889          $this->byLinkText("Instruction")->click();          $this->byLinkText("Instruction")->click();
# Line 806  class Instruction extends Base2TestCase Line 903  class Instruction extends Base2TestCase
903          $this->byId("instruction")->click();          $this->byId("instruction")->click();
904          // On ajoute un événement d'instruction          // On ajoute un événement d'instruction
905          $this->byId("action-soustab-instruction-corner-ajouter")->click();          $this->byId("action-soustab-instruction-corner-ajouter")->click();
906          // On sélectionne l'évenement "accepter un dossier sans réserve"          // On choisit un signataire Albert Dupont
907          $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");          $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
908            //On choisit l'instruction 'accepter un dossier sans réserve
909            //[acceptation]'
910            $this->select($this->byId("evenement"))->selectOptionByValue(81);
911          // On valide le formulaire          // On valide le formulaire
912          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
913          // On vérifie le message          // On vérifie le message
# Line 831  class Instruction extends Base2TestCase Line 931  class Instruction extends Base2TestCase
931          // Récupération du numéro d'événement          // Récupération du numéro d'événement
932          $evenement = $this->byCssSelector("#instruction.field_value")->text();          $evenement = $this->byCssSelector("#instruction.field_value")->text();
933          /** Fin **/          /** Fin **/
934    //
935          /** On met à jour la date de retour signature **/          /** On met à jour la date de retour signature **/
936          // Date de retour signature          // Date de retour signature
937          $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 959  class Instruction extends Base2TestCase
959          // On vérifie le message de validation          // On vérifie le message de validation
960          $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());          $this->assertContains("Saisie enregistrée",$this->byCssSelector(".message .text")->text());
961          /** Fin **/          /** Fin **/
962    //
963          /** Vérifie l'instruction "retour" et le DI **/          /** Vérifie l'instruction "retour" et le DI **/
964          // Date de validité          // Date de validité
965          $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, "+");
966            $date_validite = date("d/m/Y", strtotime($date_validite));
967          // On clique sur le menu "Instruction"          // On clique sur le menu "Instruction"
968          $this->byLinkText("Instruction")->click();          $this->byLinkText("Instruction")->click();
969          // 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 987  class Instruction extends Base2TestCase
987          // On contrôle la date de retour signature          // On contrôle la date de retour signature
988          $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());          $this->assertContains($date_retour_signature, $this->byId("date_retour_signature")->text());
989          /** Fin **/          /** Fin **/
990    //
991          // On se déconnecte          // On se déconnecte
992          $this->logout();          $this->logout();
993    //
994      }      }
995            //
996      /**      /**
997       * Test la suppression d'un événement d'instruction lié à une demande qui ne       * test la suppression d'un événement d'instruction lié à une demande qui ne
998       * créée pas de nouveau dossier d'instruction       * créée pas de nouveau dossier d'instruction
999       */       */
1000      public function test_09_suppression_evenement_demande(){      public function test_09_suppression_evenement_demande(){
1001                    //
1002          //Ajout du paramétrage d'une nouvelle demande          //Ajout du paramétrage d'une nouvelle demande
1003          // On se connecte à l'application en tant qu'administrateur          // On se connecte à l'application en tant qu'administrateur
1004          $this->login("admin", "admin");          $this->login("admin", "admin");
# Line 918  class Instruction extends Base2TestCase Line 1019  class Instruction extends Base2TestCase
1019          //On saisit le type de la demande          //On saisit le type de la demande
1020          $this->byId("code")->value("test_09_suppression");          $this->byId("code")->value("test_09_suppression");
1021          $this->byId("libelle")->value("test_09_suppression");          $this->byId("libelle")->value("test_09_suppression");
1022            // On sélectionne le groupe 'Autorisation ADS'
1023          $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);          $this->select($this->byId("groupe"))->selectOptionByValue("1");sleep(1);
1024            // On sélectionne 'AZ (Demande d'autorisation spéciale de travaux dans
1025            // le périmètre d'une AVAP)'
1026          $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);          $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue("7");sleep(1);
1027            // On sélectionne la nature 'Dossier existant'
1028          $this->select($this->byId("demande_nature"))->selectOptionByValue("2");          $this->select($this->byId("demande_nature"))->selectOptionByValue("2");
1029            // On sélectionne l'état 'En cours'
1030          $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue("1");          $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue("1");
1031            // On sélectionne l'événement 'Defrichement soumis a enquete publique'
1032          $this->select($this->byId("evenement"))->selectOptionByValue("15");          $this->select($this->byId("evenement"))->selectOptionByValue("15");
1033            // On sélectionne la contrainte 'Avec récupération demandeur'
1034          $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");          $this->select($this->byId("contraintes"))->selectOptionByValue("avec_recup");
1035          // On clique sur le bouton ajouter          // On clique sur le bouton ajouter
1036          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
# Line 932  class Instruction extends Base2TestCase Line 1040  class Instruction extends Base2TestCase
1040          $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());
1041          //On se déconnecte          //On se déconnecte
1042          $this->deconnect();          $this->deconnect();
1043                    //
1044          //Création d'un nouveau dossier d'instruction          //Création d'un nouveau dossier d'instruction
1045          // On se connecte à l'application          // On se connecte à l'application
1046          $this->login("guichet", "guichet");          $this->login("guichet", "guichet");
         //On clique sur "Guichet Unique"  
         $this->byLinkText("Guichet Unique")->click();  
         // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché  
         $this->verifyNoErrors();  
1047          //On clique sur "Dossier En Cours"          //On clique sur "Dossier En Cours"
1048          $this->byLinkText("Dossier En Cours")->click();          $this->byLinkText("Dossier En Cours")->click();
1049          // 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 958  class Instruction extends Base2TestCase Line 1062  class Instruction extends Base2TestCase
1062          $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());
1063          //On se déconnecte          //On se déconnecte
1064          $this->deconnect();          $this->deconnect();
1065                    //
1066          //Suppression de l'événement d'instruction          //Suppression de l'événement d'instruction
1067          // On se connecte à l'application          // On se connecte à l'application
1068          $this->login("admin", "admin");          $this->login("admin", "admin");
# Line 1000  class Instruction extends Base2TestCase Line 1104  class Instruction extends Base2TestCase
1104          // On se déconnecte          // On se déconnecte
1105          $this->logout();          $this->logout();
1106      }      }
1107    //
1108        /**
1109         * test sur les types d'éditions des consultations
1110         */
1111      function test_10_nouveau_type_edition_consultation(){      function test_10_nouveau_type_edition_consultation(){
1112                    //
1113          //On saisit un service de test                  //On saisit un service de test        
1114          // On se connecte à l'application          // On se connecte à l'application
1115          $this->login("admin", "admin");          $this->login("admin", "admin");
# Line 1022  class Instruction extends Base2TestCase Line 1129  class Instruction extends Base2TestCase
1129          $this->byId("abrege")->value("test_10");          $this->byId("abrege")->value("test_10");
1130          $this->byId("libelle")->value("test_10");          $this->byId("libelle")->value("test_10");
1131          $this->byId("consultation_papier")->click();          $this->byId("consultation_papier")->click();
1132          $this->select($this->byId("edition"))->selectOptionByLabel("consultation_test_10");          $this->select($this->byId("edition"))->selectOptionByLabel("test_10");
1133          // On clique sur le bouton ajouter          // On clique sur le bouton ajouter
1134          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
1135          // 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 1031  class Instruction extends Base2TestCase Line 1138  class Instruction extends Base2TestCase
1138          $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());
1139          //On se déconnecte          //On se déconnecte
1140          $this->deconnect();          $this->deconnect();
1141                    //
1142          //On ajoute une consultation sur un dossier et on vérifie l'édition          //On ajoute une consultation sur un dossier et on vérifie l'édition
1143          // On se connecte à l'application          // On se connecte à l'application
1144          $this->login("instr", "instr");          $this->login("instr", "instr");
# Line 1084  class Instruction extends Base2TestCase Line 1191  class Instruction extends Base2TestCase
1191          $this->window($windows[0]);          $this->window($windows[0]);
1192          //On se déconnecte          //On se déconnecte
1193          $this->deconnect();          $this->deconnect();
1194                    //
1195          //On change l'édition          //On change l'édition
1196          // On se connecte à l'application          // On se connecte à l'application
1197          $this->login("admin", "admin");          $this->login("admin", "admin");
# Line 1109  class Instruction extends Base2TestCase Line 1216  class Instruction extends Base2TestCase
1216          // 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é
1217          $this->verifyNoErrors();          $this->verifyNoErrors();
1218          //On choisit une seconde édition          //On choisit une seconde édition
1219          $this->select($this->byId("edition"))->selectOptionByLabel("consultation_test_10_2");          $this->select($this->byId("edition"))->selectOptionByLabel("test_10_2");
1220          // On clique sur le bouton ajouter          // On clique sur le bouton ajouter
1221          $this->byXPath("//input[@value='Modifier']")->click();          $this->byXPath("//input[@value='Modifier']")->click();
1222          // 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 1118  class Instruction extends Base2TestCase Line 1225  class Instruction extends Base2TestCase
1225          $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());
1226          //On se déconnecte          //On se déconnecte
1227          $this->deconnect();          $this->deconnect();
1228                    //
1229          //On vérifie que c'est la bonne édition qui est affiché          //On vérifie que c'est la bonne édition qui est affiché
1230          // On se connecte à l'application          // On se connecte à l'application
1231          $this->login("instr", "instr");          $this->login("instr", "instr");
# Line 1158  class Instruction extends Base2TestCase Line 1265  class Instruction extends Base2TestCase
1265          $this->closeWindow();          $this->closeWindow();
1266          // On change le focus de la fenêtre          // On change le focus de la fenêtre
1267          $this->window($windows[0]);          $this->window($windows[0]);
1268                    //
1269          // On se déconnecte          // On se déconnecte
1270          $this->logout();          $this->logout();
1271      }      }
1272    //
1273      /**      /**
1274       * Test sur un événement non verrouillable       * test sur un événement non verrouillable
1275       */       */
1276      public function test_10_evenement_non_verrouillable(){      public function test_11_evenement_non_verrouillable(){
1277    //
1278          /* On crée une nouvelle demande initial */          /* On crée une nouvelle demande initial */
1279          // On se connecte à l'application          // On se connecte à l'application
1280          $this->login("guichet", "guichet");          $this->login("guichet", "guichet");
# Line 1177  class Instruction extends Base2TestCase Line 1284  class Instruction extends Base2TestCase
1284          $this->verifynoerrors();          $this->verifynoerrors();
1285          // On vérifie le nom de l'onglet          // On vérifie le nom de l'onglet
1286          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());          $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
1287          // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"          // On sélectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
1288          $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");          $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
1289          // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"          // On selectionne le label "Dépôt Initial"
1290          $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");          $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
1291          // On clique pour ajouter un pétitionnaire principale          // On clique pour ajouter un pétitionnaire principale
1292          $this->byId("add_petitionnaire_principal")->click();          $this->byId("add_petitionnaire_principal")->click();
# Line 1249  class Instruction extends Base2TestCase Line 1356  class Instruction extends Base2TestCase
1356          // On se déconnecte          // On se déconnecte
1357          $this->deconnect();          $this->deconnect();
1358          /* Fin */          /* Fin */
1359    //
1360          /* On accepte le dossier d'instruction et le finalise */          /* On accepte le dossier d'instruction et le finalise */
1361          // On se connecte à l'application          // On se connecte à l'application
1362          $this->login("instr", "instr");          $this->login("instr", "instr");
# Line 1271  class Instruction extends Base2TestCase Line 1378  class Instruction extends Base2TestCase
1378          $this->byCssSelector(".actions-max-1 a")->click();          $this->byCssSelector(".actions-max-1 a")->click();
1379          // 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é
1380          $this->verifyNoErrors();          $this->verifyNoErrors();
1381          // On choisi un événement          //On choisit l'instruction 'accepter un dossier sans réserve
1382          $this->select($this->byId("evenement"))->selectOptionByLabel("accepter un dossier sans réserve [acceptation]");          //[acceptation]'
1383            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1384          // On valide le formulaire          // On valide le formulaire
1385          $this->byXPath("//input[@value='Ajouter']")->click();          $this->byXPath("//input[@value='Ajouter']")->click();
1386          // 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 1294  class Instruction extends Base2TestCase Line 1402  class Instruction extends Base2TestCase
1402          $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());          $this->assertContains("La finalisation du document s'est effectuée avec succès.",$this->byCssSelector(".message .text")->text());
1403          /* Fin */          /* Fin */
1404      }      }
1405    //
1406        /**
1407         * test que les données du dossier d'autorisation sont recopiés dans les
1408         * champs 'archive_' de l'événement d'instruction de la création du nouveau
1409         * dossier d'instruction
1410         */
1411        public function test_12_recopie_donnees_da_vers_nouveau_di(){
1412            //
1413            //{{{ Ajout de d'un nouveau dossier
1414            // On se connecte à l'application
1415            $this->login("guichet", "guichet");
1416            //On clique sur le menu des instructions
1417            $this->byLinkText("Nouveau Dossier")->click();
1418            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1419            $this->verifyNoErrors();
1420            //On ajoute un nouveau dossier
1421            $dossier = $this->addDossierInstruction( 1, 1);                
1422            // On se déconnecte
1423            $this->deconnect();
1424            //}}}
1425            //
1426            //{{{ Clôture du nouveau dossier
1427            // On se connecte à l'application
1428            $this->login("instr", "instr");
1429            //On clique sur le menu "Recherche"
1430            $this->byLinkText("Recherche")->click();
1431            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1432            $this->verifyNoErrors();
1433            // On recherche le dossier crée
1434            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1435            // On clique sur le bouton recherche
1436            $this->byId("adv-search-submit")->click();
1437            // On clique sur le résultat
1438            $this->byLinkText($dossier)->click();
1439            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1440            $this->verifyNoErrors();
1441            //On clique sur l'onglet "instruction"
1442            $this->byId("instruction")->click();
1443            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1444            $this->verifyNoErrors();
1445            // On ajoute une instruction
1446            $this->byCssSelector("#sousform-instruction .add-16")->click();
1447            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1448            $this->verifyNoErrors();
1449            //On choisit l'instruction 'accepter un dossier sans réserve
1450            //[acceptation]'
1451            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1452            // On clique sur ajouter
1453            $this->byXPath("//input[@value='Ajouter']")->click();
1454            // On vérifie qu'il n'y ait pas d'erreur
1455            $this->verifynoerrors();
1456            // On vérifie le message
1457            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1458            //On rafraichit la page pour vérifier que le dossier est clôturé
1459            $this->refresh();
1460            $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1461            // On se déconnecte
1462            $this->deconnect();
1463            //}}}
1464            //
1465            //{{{ Ajout de l'action
1466            // On se connecte à l'application
1467            $this->login("admin", "admin");
1468            //On clique sur le menu "Paramétrage dossiers"
1469            $this->byLinkText("Paramétrage Dossiers")->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 le menu "Action"
1473            $this->byLinkText("Action")->click();
1474            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1475            $this->verifyNoErrors();
1476            //On clique sur le "+" du tableau
1477            $this->byClassName("add-16")->click();
1478            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1479            $this->verifyNoErrors();
1480            //On remplit la règle de calcul de la date de validité
1481            $this->byId("action")->value("test_12_recopie_donnees");
1482            $this->byId("libelle")->value("test_12_recopie_donnees");
1483            $this->byId("regle_date_validite")->value("archive_date_validite+12");
1484            // On clique sur ajouter
1485            $this->byXPath("//input[@value='Ajouter']")->click();
1486            // On vérifie qu'il n'y ait pas d'erreur
1487            $this->verifynoerrors();
1488            // On vérifie le message
1489            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1490            //}}}
1491            //
1492            //{{{ Ajout de l'événement
1493            //On clique sur le menu "Événement"
1494            $this->byLinkText("Événement")->click();
1495            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1496            $this->verifyNoErrors();
1497            //On clique sur le "+" du tableau
1498            $this->byClassName("add-16")->click();
1499            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1500            $this->verifyNoErrors();
1501            //On remplit l'événement qui va être ajouté avec la nouvelle demande
1502            $this->byId("libelle")->value("test_12_recopie_donnees");
1503            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))->selectOptionByValue("accepter");
1504            // On sélectionne PCI - P - Initial
1505            $this->select($this->byName("dossier_instruction_type[]"))->selectOptionByValue(1);
1506            $this->select($this->byName("action"))->selectOptionByLabel("test_12_recopie_donnees");
1507            // On clique sur ajouter
1508            $this->byXPath("//input[@value='Ajouter']")->click();
1509            // On vérifie qu'il n'y ait pas d'erreur
1510            $this->verifynoerrors();
1511            // On vérifie le message
1512            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1513            //}}}
1514            //
1515            //{{{ Ajout du type de dossier d'instruction
1516            //On clique sur le menu "Type DI"
1517            $this->byLinkText("Type DI")->click();
1518            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1519            $this->verifyNoErrors();
1520            //On clique sur le "+" du tableau
1521            $this->byClassName("add-16")->click();
1522            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1523            $this->verifyNoErrors();
1524            //On remplit le type de la demande
1525            $this->byId("code")->value("DT");
1526            $this->byId("libelle")->value("test_12_recopie_donnees");
1527            // On sélectionne PCI (Permis de construire pour une maison individuelle
1528            // et / ou ses annexes)
1529            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);sleep(1);
1530            $this->byId("suffixe")->click();
1531            // On clique sur ajouter
1532            $this->byXPath("//input[@value='Ajouter']")->click();
1533            // On vérifie qu'il n'y ait pas d'erreur
1534            $this->verifynoerrors();
1535            // On vérifie le message
1536            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1537            //}}}
1538            //
1539            //{{{ Ajout du type de la demande
1540            //On clique sur le menu "Type"
1541            $this->byLinkText("Type")->click();
1542            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1543            $this->verifyNoErrors();
1544            //On clique sur le "+" du tableau
1545            $this->byClassName("add-16")->click();
1546            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1547            $this->verifyNoErrors();
1548            //On remplit le type de la demande
1549            $this->byId("code")->value("test_12_recopie_donnees");
1550            $this->byId("libelle")->value("test_12_recopie_donnees");
1551            // On sélectionne Autorisation ADS
1552            $this->select($this->byId("groupe"))->selectOptionByValue(1);sleep(1);
1553            // On sélectionne PCI (Permis de construire pour une maison individuelle
1554            // et / ou ses annexes)
1555            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1556            // On sélectionne Dossier existant
1557            $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1558            // On sélectionne Accordé
1559            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
1560            $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test_12_recopie_donnees");
1561            $this->select($this->byId("evenement"))->selectOptionByLabel("test_12_recopie_donnees");
1562            // On clique sur ajouter
1563            $this->byXPath("//input[@value='Ajouter']")->click();
1564            // On vérifie qu'il n'y ait pas d'erreur
1565            $this->verifynoerrors();
1566            // On vérifie le message
1567            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1568            //On clique sur retour
1569            $this->byClassName("retour")->click();
1570            // On vérifie qu'il n'y ait pas d'erreur
1571            $this->verifynoerrors();
1572            //On saisit le libellé du type de la demande saisit
1573            $this->byName("recherche")->value("test_12_recopie_donnees");
1574            //On valide
1575            $this->byName("s1")->click();
1576            // On vérifie qu'il n'y ait pas d'erreur
1577            $this->verifynoerrors();
1578            //On clique sur le type de la demande
1579            $this->byLinkText("test_12_recopie_donnees")->click();
1580            // On vérifie qu'il n'y ait pas d'erreur
1581            $this->verifynoerrors();
1582            //On récupère l'identifiant du type de la demande
1583            $demande_type = $this->byId("demande_type")->text();
1584            // On se déconnecte
1585            $this->deconnect();
1586            //}}}
1587            //
1588            //{{{ Ajout de d'un nouveau dossier
1589            // On se connecte à l'application
1590            $this->login("guichet", "guichet");
1591            //On clique sur le menu des instructions
1592            $this->byLinkText("Dossier En Cours")->click();
1593            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1594            $this->verifyNoErrors();
1595            //On ajoute un nouveau dossier
1596            $dossier = $this->addDossierInstruction(1, $demande_type, "Test validité", 2, str_replace(" ", "", $dossier));                
1597            // On se déconnecte
1598            $this->deconnect();
1599            //}}}
1600            //
1601            //{{{ Vérification de la date de validité
1602            // On se connecte à l'application
1603            $this->login("instr", "instr");
1604            //On clique sur le menu "Recherche"
1605            $this->byLinkText("Recherche")->click();
1606            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1607            $this->verifyNoErrors();
1608            // On recherche le dossier crée
1609            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1610            // On clique sur le bouton recherche
1611            $this->byId("adv-search-submit")->click();
1612            // On clique sur le résultat
1613            $this->byLinkText($dossier)->click();
1614            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1615            $this->verifyNoErrors();
1616            //On vérifie la date de validité
1617            $date_validite = $this->mois_date(date("Y-m-d"), 12, "+");
1618            $date_validite = date("d/m/Y", strtotime($date_validite));
1619            $this->assertEquals($date_validite, $this->byId("date_validite")->text());
1620            // On se déconnecte
1621            $this->deconnect();
1622            //}}}
1623        }
1624        //
1625        /**
1626         * test de la numérotation des DI successifs
1627         */
1628        function test_13_numerotation_dossier_instruction_successif(){
1629                //
1630            //{{{ Ajout de d'un nouveau dossier d'instruction P0
1631            // On se connecte à l'application
1632            $this->login("guichet", "guichet");
1633            // On clique sur le menu "Nouveau Dossier"
1634            $this->byLinkText("Nouveau Dossier")->click();
1635            // On vérifie qu'il n'y ait pas d'erreur
1636            $this->verifynoerrors();
1637            // On ajoute un nouveau dossier d'instruction
1638            $dossierP0 = str_replace(" ", "", trim($this->addDossierInstruction(1, 1)));
1639            // On se déconnecte
1640            $this->deconnect();
1641            //}}}
1642            //
1643            //{{{ Accord du P0 créé
1644            // On se connecte à l'application
1645            $this->login("instr", "instr");
1646            // On clique sur le menu "Recherche"
1647            $this->byLinkText("Recherche")->click();
1648            // On vérifie qu'il n'y ait pas d'erreur
1649            $this->verifynoerrors();
1650            // On saisit le numéro du dossier d'instruction
1651            $this->byId("dossier")->value($dossierP0);
1652            // On valide la recherche
1653            $this->byId("adv-search-submit")->click();
1654            // On vérifie qu'il n'y ait pas d'erreur
1655            $this->verifynoerrors();
1656            // On clique sur le dossier d'instruction
1657            $this->byId("action-tab-dossier_instruction-left-consulter-".$dossierP0)->click();
1658            // On vérifie qu'il n'y ait pas d'erreur
1659            $this->verifynoerrors();
1660            // On clique sur l'onglet instruction
1661            $this->byId("instruction")->click();
1662            // On vérifie qu'il n'y ait pas d'erreur
1663            $this->verifynoerrors();
1664            // On clique sur le + du tableau
1665            $this->byClassName("add-16")->click();
1666            // On vérifie qu'il n'y ait pas d'erreur
1667            $this->verifynoerrors();
1668            // On choisit l'événement n°81 accepter un dossier sans réserve
1669            $this->select($this->byName("evenement"))->selectOptionByValue(81);
1670            // On clique sur ajouter
1671            $this->byXPath("//input[@value='Ajouter']")->click();
1672            // On vérifie qu'il n'y ait pas d'erreur
1673            $this->verifynoerrors();
1674            // On vérifie que l'événement d'instruction s'est bien ajouté
1675            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-instruction .message")->text());
1676            // On se déconnecte
1677            $this->deconnect();
1678            //}}}
1679            //
1680            //{{{ Ajout d'un nouveau type de dossier d'instruction
1681            // On se connecte à l'application
1682            $this->login("admin", "admin");
1683            // On clique sur le menu "Paramétrage Dossiers"
1684            $this->byLinkText("Paramétrage Dossiers")->click();
1685            // On vérifie qu'il n'y ait pas d'erreur
1686            $this->verifynoerrors();
1687            // On clique sur le menu "Type DI"
1688            $this->byLinkText("Type DI")->click();
1689            // On vérifie qu'il n'y ait pas d'erreur
1690            $this->verifynoerrors();
1691            // On clique sur le + du tableau
1692            $this->byClassName("add-16")->click();
1693            // On vérifie qu'il n'y ait pas d'erreur
1694            $this->verifynoerrors();
1695            //On saisit les données
1696            $this->byId("code")->value("TN");
1697            $this->byId("libelle")->value("Test numérotation");
1698            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1699            $this->byId("suffixe")->click();
1700            // On clique sur ajouter
1701            $this->byXPath("//input[@value='Ajouter']")->click();
1702            // On vérifie qu'il n'y ait pas d'erreur
1703            $this->verifynoerrors();
1704            // On vérifie que le type de dossier d'instruction s'est bien ajouté
1705            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1706            //}}}
1707            //
1708            //{{{ Ajout d'un nouveau type de demande
1709            // On clique sur le menu "Type"
1710            $this->byLinkText("Type")->click();
1711            // On vérifie qu'il n'y ait pas d'erreur
1712            $this->verifynoerrors();
1713            // On clique sur le + du tableau
1714            $this->byClassName("add-16")->click();
1715            // On vérifie qu'il n'y ait pas d'erreur
1716            $this->verifynoerrors();
1717            //On saisit les données
1718            $this->byId("code")->value("TN");
1719            $this->byId("libelle")->value("Test numérotation");
1720            $this->select($this->byId("groupe"))->selectOptionByValue(1);
1721            sleep(1);
1722            $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByValue(1);
1723            $this->select($this->byId("demande_nature"))->selectOptionByValue(2);
1724            $this->select($this->byName("etats_dossier_autorisation_autorises[]"))->selectOptionByValue(2);
1725            $this->select($this->byId("dossier_instruction_type"))->selectOptionByLabel("PCI - test numérotation");
1726            $this->select($this->byId("evenement"))->selectOptionByValue(1);
1727            // On clique sur ajouter
1728            $this->byXPath("//input[@value='Ajouter']")->click();
1729            // On vérifie qu'il n'y ait pas d'erreur
1730            $this->verifynoerrors();
1731            // On vérifie qu'il n'y ait pas d'erreur
1732            $this->verifynoerrors();
1733            // On vérifie que le type de dossier d'instruction s'est bien ajouté
1734            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1735            // On clique sur "Retour"
1736            $this->byClassName("retour")->click();
1737            // On vérifie qu'il n'y ait pas d'erreur
1738            $this->verifynoerrors();
1739            // On saisit le libelle du type de la demande nouvellement créée
1740            $this->byClassName("champFormulaire")->value("Test numérotation");
1741            // On valide la recherche
1742            $this->byName("f1")->submit();
1743            //On clique sur le type de la demande
1744            $this->byLinkText("Test numérotation")->click();
1745            // On vérifie qu'il n'y ait pas d'erreur
1746            $this->verifynoerrors();
1747            // On récupère l'identifiant
1748            $idDemandeType = trim($this->byId("demande_type")->text());
1749            // On se déconnecte
1750            $this->deconnect();
1751            //}}}
1752            //
1753            //{{{ Ajout de d'un nouveau dossier d'instruction avec le nouveau type
1754            //de dossier d'instruction
1755            // On se connecte à l'application
1756            $this->login("guichet", "guichet");
1757            // On clique sur le menu "Dossier En Cours"
1758            $this->byLinkText("Dossier En Cours")->click();
1759            // On vérifie qu'il n'y ait pas d'erreur
1760            $this->verifynoerrors();
1761            // On ajoute un nouveau dossier d'instruction
1762            $dossierTN01 = trim($this->addDossierInstruction(1, $idDemandeType, "Test nouveau DI", 3, $dossierP0));
1763            //On vérifie que le numéro du dossier d'instruction est celui attendu
1764            assert(preg_match('/(PC)[0-9 ]*(TN01)/', $dossierTN01) === 1);
1765            // On se déconnecte
1766            $this->deconnect();
1767            //}}}
1768            
1769            
1770        }
1771    
1772        /**
1773         * test de la numérotation des DI successifs
1774         */
1775        function test_14_recalcul_donnees_DI_vers_DA(){
1776            //{{{ Ajout de d'un nouveau dossier
1777            // On se connecte à l'application
1778            $this->login("guichet", "guichet");
1779            //On clique sur le menu des instructions
1780            $this->byLinkText("Nouveau Dossier")->click();
1781            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1782            $this->verifyNoErrors();
1783            //On ajoute un nouveau dossier
1784            $dossier = $this->addDossierInstruction( 1, 1);                
1785            // On se déconnecte
1786            $this->deconnect();
1787            //}}}
1788            //
1789            //{{{
1790            // Mise à jour des données techniques
1791            // On se connecte à l'application
1792            $this->login("instr", "instr");
1793            //On clique sur le menu "Recherche"
1794            $this->byLinkText("Recherche")->click();
1795            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1796            $this->verifyNoErrors();
1797            // On recherche le dossier crée
1798            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1799            // On clique sur le bouton recherche
1800            $this->byId("adv-search-submit")->click();
1801            // On clique sur le résultat
1802            $this->byLinkText($dossier)->click();
1803            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1804            $this->verifyNoErrors();
1805            // Ouverture du formulaire des données techniques
1806            $this->byCssSelector("#formulaire .rediger-16")->click();
1807            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1808            $this->verifyNoErrors();
1809            // Modification des données techniques
1810            $this->byCssSelector("#sousform-donnees_techniques .edit-16")->click();
1811            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1812            $this->verifyNoErrors();
1813            sleep(1);
1814            // On déplie le fieldset Construire
1815            $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
1816            sleep(1);
1817            // On déplie le fieldset Destinations et surfaces des constructions
1818            $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
1819            sleep(1);
1820            //On remplit des données techniques
1821            $this->byId("su_cstr_shon1")->value("120");
1822            // On clique sur ajouter
1823            $this->byXPath("//input[@value='Modifier']")->click();
1824            // On vérifie qu'il n'y ait pas d'erreur
1825            $this->verifynoerrors();
1826            // On vérifie le message
1827            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-donnees_techniques .message")->text());
1828            //On clique sur retour
1829            $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
1830            //}}}
1831            //
1832            //{{{ Clôture du nouveau dossier
1833            //On clique sur le menu "Recherche"
1834            $this->byLinkText("Recherche")->click();
1835            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1836            $this->verifyNoErrors();
1837            // On recherche le dossier crée
1838            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1839            // On clique sur le bouton recherche
1840            $this->byId("adv-search-submit")->click();
1841            // On clique sur le résultat
1842            $this->byLinkText($dossier)->click();
1843            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1844            $this->verifyNoErrors();
1845            //On clique sur l'onglet "instruction"
1846            $this->byId("instruction")->click();
1847            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1848            $this->verifyNoErrors();
1849            // On ajoute une instruction
1850            $this->byCssSelector("#sousform-instruction .add-16")->click();
1851            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1852            $this->verifyNoErrors();
1853            //On choisit l'instruction 'accepter un dossier sans réserve
1854            //[acceptation]'
1855            $this->select($this->byId("evenement"))->selectOptionByValue(81);
1856            // On clique sur ajouter
1857            $this->byXPath("//input[@value='Ajouter']")->click();
1858            // On vérifie qu'il n'y ait pas d'erreur
1859            $this->verifynoerrors();
1860            // On vérifie le message
1861            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message")->text());
1862            //On rafraichit la page pour vérifier que le dossier est clôturé
1863            $this->refresh();
1864            $this->assertEquals("Favorable", $this->byId("avis_decision")->text());
1865            //}}}
1866            //
1867            //{{{ Vérification des données techniques dans la visu DA
1868            //On clique sur le menu "Recherche"
1869            $this->byLinkText("Recherche")->click();
1870            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1871            $this->verifyNoErrors();
1872            // On recherche le dossier crée
1873            $this->byId("dossier")->value(str_replace(' ', '', $dossier));
1874            // On clique sur le bouton recherche
1875            $this->byId("adv-search-submit")->click();
1876            // On clique sur le résultat
1877            $this->byLinkText($dossier)->click();
1878            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1879            $this->verifyNoErrors();
1880            //On clique sur l'onglet "DA"
1881            $this->byId("dossier_autorisation")->click();
1882            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1883            $this->verifyNoErrors();
1884            // On ajoute une instruction
1885            $this->byCssSelector("#sousform-dossier_autorisation .consult-16")->click();
1886            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1887            $this->verifyNoErrors();
1888            // Affichage des données techniques
1889            $this->byId("donnees_techniques_da")->click();
1890            sleep(1);
1891            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1892            $this->verifyNoErrors();
1893            // On déplie le fieldset Construire
1894            $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
1895            sleep(1);
1896            // On déplie le fieldset Destinations et surfaces des constructions
1897            $this->byCssSelector("#fieldset-sousform-donnees_techniques-destinations-et-surfaces-des-constructions legend")->click();
1898            sleep(1);
1899            $this->assertEquals("120", $this->byId("su_cstr_shon1")->text());
1900            //On clique sur retour
1901            $this->byCssSelector("#sousform-donnees_techniques .retour")->click();
1902            // On se déconnecte
1903            $this->deconnect();
1904            //}}}
1905            
1906            // Vérification du calcul de l'état du DA
1907            //{{{ Ajout de d'un nouveau dossier
1908            // On se connecte à l'application
1909            $this->login("guichet", "guichet");
1910            //On clique sur le menu des instructions
1911            $this->byLinkText("Nouveau Dossier")->click();
1912            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1913            $this->verifyNoErrors();
1914            //On ajoute un nouveau dossier
1915            $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
1916            // On se déconnecte
1917            $this->deconnect();
1918            //}}}
1919            // On se connecte à l'application
1920            $this->login("instr", "instr");
1921            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1922            $this->verifyNoErrors();
1923            // On clique sur le lien "Mes encours" dans le menu
1924            $this->byLinkText("Mes Encours")->click();
1925            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1926            $this->verifyNoErrors();
1927            sleep(1);
1928            //On cherche le dossier d'instruction
1929            $this->byName("recherche")->value(str_replace(" ", "", $dossier));
1930            // On valide la recherche
1931            $this->byName("s1")->click();
1932            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1933            $this->verifyNoErrors();
1934            // On clique sur le dossier dernièrement créé
1935            $this->byLinkText($dossier)->click();
1936            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1937            $this->verifyNoErrors();
1938            $this->verifierEtatDA($dossier,81, "Accordé");
1939            // On se déconnecte
1940            $this->deconnect();
1941            //}}}
1942            //{{{ Ajout de d'un nouveau dossier
1943            // On se connecte à l'application
1944            $this->login("guichet", "guichet");
1945            //On clique sur le menu des instructions
1946            $this->byLinkText("Nouveau Dossier")->click();
1947            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1948            $this->verifyNoErrors();
1949            //On ajoute un nouveau dossier
1950            $dossier = $this->addDossierInstruction( 1, 1, "test recalcul état DA");
1951            // On se déconnecte
1952            $this->deconnect();
1953            //}}}
1954            // On se connecte à l'application
1955            $this->login("instr", "instr");
1956            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1957            $this->verifyNoErrors();
1958            // On clique sur le lien "Mes encours" dans le menu
1959            $this->byLinkText("Mes Encours")->click();
1960            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1961            $this->verifyNoErrors();
1962            sleep(1);
1963            //On cherche le dossier d'instruction
1964            $this->byClassName("champFormulaire")->value(str_replace(" ", "", $dossier));
1965            // On valide la recherche
1966            $this->byId("f1")->submit();
1967            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1968            $this->verifyNoErrors();
1969            // On clique sur le dossier dernièrement créé
1970            $this->byLinkText($dossier)->click();
1971            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1972            $this->verifyNoErrors();
1973            $this->verifierEtatDA($dossier,31, "Refusé");
1974            // On se déconnecte
1975            $this->deconnect();
1976            //}}}
1977        }
1978        
1979        /*
1980         * Cette méthode teste l'envoi de message au référentiel ERP lors de l'ajout
1981         * d'instruction
1982         */
1983        public function test_15_envoi_de_message_erp(){
1984            
1985            // On se connecte en tant que "admin"
1986            $this->login("admin", "admin");
1987            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1988            $this->verifyNoErrors();
1989            //On clique sur Paramétrage Dossiers
1990            $this->byLinkText("Paramétrage Dossiers")->click();
1991            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1992            $this->verifyNoErrors();
1993            //On clique sur Service
1994            $this->byLinkText("Événement")->click();
1995            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
1996            $this->verifyNoErrors();
1997            //Initialisation de la variable
1998            $evenements = array();
1999            //{{{ Ajout d'événements
2000            //On ajoute trois événements
2001            for ($i = 1 ; $i < 3 ; $i++){
2002                $evenements[] = $this->addEvenement("test_evenement_erp_".$i);
2003            }
2004            //}}}
2005            
2006            //{{{ On change trois variables erp_service_accessibilite,
2007            // erp_service_securite et erp_service_conformite
2008            //On clique sur Administration
2009            $this->byLinkText("Administration")->click();
2010            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2011            $this->verifyNoErrors();
2012            //On clique sur Paramètre
2013            $this->byLinkText("Paramètre")->click();
2014            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2015            $this->verifyNoErrors();
2016            $erp_evenement_accepter_sans_reserve = $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $evenements[0]);
2017            $erp_evenement_refuser_dossier = $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $evenements[1]);
2018            $option_referentiel_arrete = $this->changeParametreEvenementErp("option_referentiel_arrete", 'true');
2019            ///}}}
2020            // On se déconnecte
2021            $this->deconnect();
2022            
2023            // On se connecte en tant que "guichet"
2024            $this->login("guichet", "guichet");
2025            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2026            $this->verifyNoErrors();
2027            //{{{On ajoute un dossier d'instruction
2028            //On clique sur Nouveau Dossier
2029            $this->byLinkText("Nouveau Dossier")->click();
2030            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2031            $this->verifyNoErrors();
2032            //On ajoute le dossier
2033            $dossier = $this->addDossierInstruction("1", "1");
2034            //}}}
2035            // On se déconnecte
2036            $this->deconnect();
2037            
2038            // On se connecte en tant que "instr"
2039            $this->login("instr", "instr");
2040            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2041            $this->verifyNoErrors();
2042            //{{{ On ajoute trois événement
2043            //On clique sur Nouveau Dossier
2044            $this->byLinkText("Recherche")->click();
2045            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2046            $this->verifyNoErrors();
2047            //On cherche le dossier d'instruction
2048            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2049            // On valide la recherche
2050            $this->byId("adv-search-submit")->click();
2051            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2052            $this->verifyNoErrors();
2053            //On clique sur le dossier d'instruction
2054            $this->byLinkText($dossier)->click();
2055            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2056            $this->verifyNoErrors();
2057            //On clique sur Modifier
2058            $this->byClassName("edit-16")->click();
2059            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2060            $this->verifyNoErrors();
2061            //On clique sur erp
2062            $this->byId("erp")->click();
2063            //On valide le formulaire
2064            $this->byName("f1")->submit();
2065            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2066            $this->verifyNoErrors();
2067            // On vérifie le message
2068            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector(".message .text")->text());
2069            //On clique sur l'onglet instruction
2070            $this->byId("instruction")->click();
2071            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2072            $this->verifyNoErrors();
2073            //On ajoute trois consultations
2074            foreach ($evenements as $value) {
2075                $this->addInstruction($value);
2076            }
2077    
2078            //On clique sur le + du tableau
2079            $this->byClassName("add-16")->click();
2080            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2081            $this->verifyNoErrors();
2082            //On choisit l'événement
2083            $this->select($this->byId("evenement"))->selectOptionByValue(81);
2084            //On valide le formulaire
2085            $this->byName("f2")->submit();
2086            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2087            $this->verifyNoErrors();
2088            // On vérifie que le message de validation est présent
2089            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2090            //On clique sur Retour
2091            $this->byLinkText("Retour")->click();
2092            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2093            $this->verifyNoErrors();
2094            //On clique sur l'instruction
2095            $this->byLinkText("accepter un dossier sans réserve")->click();
2096            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2097            $this->verifyNoErrors();
2098            //On récupère le numéro d'instruction
2099            $instruction = trim($this->byId("instruction")->text());
2100            //On la finalise
2101            $this->byClassName("finalise")->click();
2102            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2103            $this->verifyNoErrors();
2104            // On vérifie que le message de validation est présent
2105            $this->assertContains('La finalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2106            // On se déconnecte
2107            $this->deconnect();
2108            
2109            // On se connecte en tant que "admin"
2110            $this->login("admin", "admin");
2111            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2112            $this->verifyNoErrors();
2113            //On clique sur instruction
2114            $this->byLinkText("Instruction")->click();
2115            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2116            $this->verifyNoErrors();
2117            //On clique sur Recherche
2118            $this->byLinkText("Recherche")->click();
2119            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2120            $this->verifyNoErrors();
2121            //On cherche le dossier d'instruction
2122            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2123            // On valide la recherche
2124            $this->byId("adv-search-submit")->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 le dossier d'instruction
2128            $this->byLinkText($dossier)->click();
2129            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2130            $this->verifyNoErrors();
2131            //On clique sur l'onglet instruction
2132            $this->byId("instruction")->click();
2133            //On clique sur l'instruction accepter un dossier sans réserve
2134            $this->byLinkText("accepter un dossier sans réserve")->click();
2135            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2136            $this->verifyNoErrors();
2137            //On la definalise
2138            $this->byClassName("definalise")->click();
2139            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2140            $this->verifyNoErrors();
2141            // On vérifie que le message de validation est présent
2142            $this->assertContains('La definalisation du document s\'est effectuée avec succès.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2143            //On clique sur modifier
2144            $this->byCssSelector("#sousform-instruction .edit-16")->click();
2145            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2146            $this->verifyNoErrors();
2147            //On choisit un signataire Albert Dupont
2148            $this->select($this->byId("signataire_arrete"))->selectOptionByValue("1");
2149            //On remplit la date de retour sign
2150            $this->byId("date_retour_signature")->value(date('d/m/Y'));
2151            //On valide le formulaire
2152            $this->byName("f2")->submit();
2153            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2154            $this->verifyNoErrors();
2155            // On vérifie que le message de validation est présent
2156            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2157            // On vérifie que le message d'envoi est présent
2158            $this->assertContains('Le message a été transmis au référentiel arrêté.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2159            //}}}
2160            
2161            // On se déconnecte
2162            $this->deconnect();
2163            
2164            // On se connecte en tant que "admin"
2165            $this->login("admin", "admin");
2166            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2167            $this->verifyNoErrors();
2168            //{{{ On remet les valeurs par défaut des paramètres
2169            //On clique sur Administration
2170            $this->byLinkText("Administration")->click();
2171            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2172            $this->verifyNoErrors();
2173            //On clique sur Paramètre
2174            $this->byLinkText("Paramètre")->click();
2175            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2176            $this->verifyNoErrors();
2177            $this->changeParametreEvenementErp("erp_evenement_accepter_sans_reserve", $erp_evenement_accepter_sans_reserve);
2178            $this->changeParametreEvenementErp("erp_evenement_refuser_dossier", $erp_evenement_refuser_dossier);
2179            $this->changeParametreEvenementErp("option_referentiel_arrete", $option_referentiel_arrete);
2180            //}}}
2181            
2182            //On se déconnecte
2183            $this->logout();
2184        }
2185        
2186        /*
2187         * Cette méthode teste l'envoi de message au référentiel ERP lors de la
2188         * modification d'un dossier d'insruction
2189         */
2190        public function test_16_envoi_de_message_erp_dossier_instruction(){
2191            
2192            // On se connecte en tant que "admin"
2193            $this->login("admin", "admin");
2194            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2195            $this->verifyNoErrors();
2196            
2197            //{{{ On change deux variables erp_nature_dat et erp_dossier_nature_pc
2198            //On clique sur Administration
2199            $this->byLinkText("Administration")->click();
2200            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2201            $this->verifyNoErrors();
2202            //On clique sur Paramètre
2203            $this->byLinkText("Paramètre")->click();
2204            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2205            $this->verifyNoErrors();
2206            //On change la valeur des paramètres
2207            $erp_nature_dat = $this->changeParametreEvenementErp("erp_nature_dat", "AT");
2208            $erp_dossier_nature_pc = $this->changeParametreEvenementErp("erp_dossier_nature_pc", "PCI");
2209            //}}}
2210            // On se déconnecte
2211            $this->deconnect();
2212            
2213            //{{{Ajout d'un dossier AT par le guichet unique
2214            // On se connecte en tant que "guichet"
2215            $this->login("guichet", "guichet");
2216            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2217            $this->verifyNoErrors();
2218            //On clique sur Nouveau Dossier
2219            $this->byLinkText("Nouveau Dossier")->click();
2220            //On ajoute un dossier d'instruction de type AT
2221            $dossier = $this->addDossierInstruction(8, 8);
2222            //}}}
2223            // On se déconnecte
2224            $this->deconnect();
2225            
2226            // On se connecte en tant que "instr"
2227            $this->login("instr", "instr");
2228            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2229            $this->verifyNoErrors();
2230            //{{{On change le dossier en a été qualifié
2231            //On clique sur Recherche
2232            $this->byLinkText("Recherche")->click();
2233            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2234            $this->verifyNoErrors();
2235            //On cherche le dossier d'instruction
2236            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2237            // On valide la recherche
2238            $this->byId("adv-search-submit")->click();
2239            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2240            $this->verifyNoErrors();
2241            //On clique sur le dossier d'instruction
2242            $this->byLinkText($dossier)->click();
2243            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2244            $this->verifyNoErrors();
2245            //On clique sur modifier
2246            $this->byClassName("edit-16")->click();
2247            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2248            $this->verifyNoErrors();
2249            //On décoche à qualifier
2250            $this->byId("a_qualifier")->click();
2251            //On valide le formulaire
2252            $this->byName("f1")->submit();
2253            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2254            $this->verifyNoErrors();
2255            // On vérifie que le message de validation est présent
2256            $this->assertContains('Vos modifications ont bien été enregistrées.',
2257                $this->byCssSelector(".message .text")->text());
2258            // On vérifie que le message d'envoi est présent
2259            $this->assertContains('Le message a été transmis au référentiel ERP.',
2260                $this->byCssSelector(".message .text")->text());
2261            //}}}
2262            // On se déconnecte
2263            $this->deconnect();
2264            
2265            //{{{Ajout d'un dossier PC par le guichet unique
2266            // On se connecte en tant que "guichet"
2267            $this->login("guichet", "guichet");
2268            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2269            $this->verifyNoErrors();
2270            //On clique sur Nouveau Dossier
2271            $this->byLinkText("Nouveau Dossier")->click();
2272            //On ajoute un dossier d'instruction de type AT
2273            $dossier = $this->addDossierInstruction(1, 1);
2274            //}}}
2275            // On se déconnecte
2276            $this->deconnect();
2277            
2278            // On se connecte en tant que "instr"
2279            $this->login("instr", "instr");
2280            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2281            $this->verifyNoErrors();
2282            //{{{On change le dossier en ERP
2283            //On clique sur Recherche
2284            $this->byLinkText("Recherche")->click();
2285            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2286            $this->verifyNoErrors();
2287            //On cherche le dossier d'instruction
2288            $this->byId("dossier")->value(str_replace(" ", "", $dossier));
2289            // On valide la recherche
2290            $this->byId("adv-search-submit")->click();
2291            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2292            $this->verifyNoErrors();
2293            //On clique sur le dossier d'instruction
2294            $this->byLinkText($dossier)->click();
2295            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2296            $this->verifyNoErrors();
2297            //On clique sur modifier
2298            $this->byClassName("edit-16")->click();
2299            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2300            $this->verifyNoErrors();
2301            //On décoche à qualifier
2302            $this->byId("a_qualifier")->click();
2303            //On coche ERP
2304            $this->byId("erp")->click();
2305            //On valide le formulaire
2306            $this->byName("f1")->submit();
2307            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2308            $this->verifyNoErrors();
2309            // On vérifie que le message de validation est présent
2310            $this->assertContains('Vos modifications ont bien été enregistrées.',
2311                $this->byCssSelector(".message .text")->text());
2312            // On vérifie que le message d'envoi est présent
2313            $this->assertContains('Le message a été transmis au référentiel ERP.',
2314                $this->byCssSelector(".message .text")->text());
2315            //}}}
2316            // On se déconnecte
2317            $this->deconnect();
2318            
2319            // On se connecte en tant que "admin"
2320            $this->login("admin", "admin");
2321            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2322            $this->verifyNoErrors();
2323            
2324            //{{{ On change deux variables erp_nature_dat et erp_dossier_nature_pc
2325            //On clique sur Administration
2326            $this->byLinkText("Administration")->click();
2327            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2328            $this->verifyNoErrors();
2329            //On clique sur Paramètre
2330            $this->byLinkText("Paramètre")->click();
2331            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2332            $this->verifyNoErrors();
2333            //On change la valeur des paramètres
2334            $this->changeParametreEvenementErp("erp_nature_dat", $erp_nature_dat);
2335            $this->changeParametreEvenementErp("erp_dossier_nature_pc", $erp_dossier_nature_pc);
2336            //}}}
2337            
2338            //On se déconnecte
2339            $this->logout();
2340        }
2341        
2342        /**
2343         * Ajout d'un dossier d'instruction par le guichet unique
2344         *
2345         * @param int $dossier_autorisation_type_detaille L'identifiant du type détaillé
2346         *  de dossier d'autorisation
2347         * @param int $demande_type L'identifiant du type de la demande
2348         * @param int $type Type de la demande : nouveau dossier ou dossier existant
2349         * @return le numéro de dossier d'instruction qui vient d'être créé
2350         */
2351        public function addDossierInstruction($dossier_autorisation_type_detaille,
2352            $demande_type, $nom_petit = "test recopie",  $type = 1, $dossier = "" ){
2353            
2354            if ($type===1){
2355                //On choisit le type détaillé de dossier d'autorisation
2356                $this->select($this->byName("dossier_autorisation_type_detaille"))->selectOptionByValue($dossier_autorisation_type_detaille);
2357            }
2358            else {
2359                sleep(2);
2360                // On remplit le champ de recherche simple
2361                $this->byCssSelector("input[name='recherche']")->value(str_replace(' ', '', $dossier));
2362                // On clique sur le bouton recherche
2363                $this->byCssSelector(".ui-button")->click();sleep(1);
2364                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2365                $this->verifyNoErrors();
2366                // On clique sur le résultat
2367                $this->byId("action-tab-demande_dossier_encours-left-consulter-".str_replace(' ', '', $dossier))->click();
2368                // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2369                $this->verifyNoErrors();
2370            }
2371            //On choisit le type de demande
2372            $this->select($this->byName("demande_type"))->selectOptionByValue($demande_type);
2373            //On clique sur "Saisir le pétitionnaire principal"
2374            $this->byId("add_petitionnaire_principal")->click();
2375            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2376            $this->verifyNoErrors();
2377            //On saisie le nom du pétitionnaire principal
2378            $this->byId("particulier_nom")->value($nom_petit);
2379            // On clique sur ajouter
2380            $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
2381            // On vérifie qu'il n'y ait pas d'erreur
2382            $this->verifynoerrors();
2383            //On vérifie que le pétitionnaire s'est bien ajouté
2384            // On vérifie le message
2385            $this->assertContains("Vos modifications ont bien été enregistrées.",$this->byCssSelector("#sousform-petitionnaire .message")->text());
2386            // On clique sur le bouton retour
2387            $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
2388            // On vérifie que le text est présent
2389            $this->assertContains($nom_petit,$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
2390            // On clique sur ajouter
2391            $this->byXPath("//input[@value='Ajouter']")->click();
2392            // On vérifie qu'il n'y ait pas d'erreur
2393            $this->verifynoerrors();
2394            // On vérifie le message
2395            $this->assertContains("Création du dossier",$this->byCssSelector(".message")->text());
2396            //On récupère le numéro de dossier d'instruction créé
2397            if ($type===1){
2398                preg_match('/(PC|AT)[0-9 ]*(P0)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2399            }
2400            elseif ($type===2){
2401                preg_match('/(PC|AT)[0-9 ]*(DT01)/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2402            }
2403            else{
2404                preg_match('/(PC|AT)[0-9 ]*[A-Z]*(0)[1-9]{1}/', $this->byCssSelector("#tabs-1 .message")->text(), $dossier);
2405            }
2406            return $dossier[0];
2407        }
2408    
2409        /*
2410         * Ajoute un événement
2411         * @param $libelle le libelle de l'événement
2412         *
2413         * @return l'identifiant de l'événement
2414         */
2415        private function addEvenement($libelle){
2416            
2417            //On clique sur le + du tableau
2418            $this->byClassName("add-16")->click();
2419            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2420            $this->verifyNoErrors();
2421            //On remplit les champs
2422            $this->byId("libelle")->value($libelle);
2423            $this->select($this->byName("etats_depuis_lequel_l_evenement_est_disponible[]"))
2424                ->selectOptionByValue("notifier");
2425            $this->select($this->byName("dossier_instruction_type[]"))
2426                ->selectOptionByValue("1");
2427            //On valide le formulaire
2428            $this->byName('f1')->submit();
2429            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2430            $this->verifyNoErrors();
2431            // On vérifie que le message de validation est présent
2432            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2433            //On clique sur le bouton retour
2434            $this->byLinkText("Retour")->click();
2435            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2436            $this->verifyNoErrors();
2437            //On saisie le nom due l'événement dans la recherche simple
2438            $this->byClassName("champFormulaire")->value($libelle);
2439            //On valide la recherche
2440            $this->byName('s1')->submit();
2441            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2442            $this->verifyNoErrors();
2443            //On clique sur l'événement
2444            $this->byLinkText($libelle)->click();
2445            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2446            $this->verifyNoErrors();
2447            //On récupère l'identifiant
2448            $evenementId = trim($this->byId("evenement")->text());
2449            //On clique sur le bouton Retour
2450            $this->byLinkText("Retour")->click();
2451            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2452            $this->verifyNoErrors();
2453            //On retourne l'identifiant
2454            return $evenementId;
2455        }
2456    
2457        /*
2458         * Modifie la valeur du paramètre du numéro de'événement pour le message ERP
2459         * @param string $parametre le libelle du paramètre
2460         * @param string $valeur la valeur à renseigner
2461         *
2462         * @return string la valeur précédente du paramètre
2463         */
2464        private function changeParametreEvenementErp($parametre, $valeur){
2465            
2466            //On vide le champ
2467            $this->byClassName("champFormulaire")->clear();
2468            //On saisie le nom de la variable dans la recherche simple
2469            $this->byClassName("champFormulaire")->value($parametre);
2470            //On valide la recherche
2471            $this->byName('s1')->submit();
2472            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2473            $this->verifyNoErrors();
2474            //On clique sur le paramètre
2475            $this->byLinkText($parametre)->click();
2476            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2477            $this->verifyNoErrors();
2478            //On clique sur modifier dans le portail d'action
2479            $this->byClassName("edit-16")->click();
2480            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2481            $this->verifyNoErrors();
2482            //On récupère la valeur actuelle du paramètre
2483            $parametre = trim($this->byId("valeur")->value());
2484            //On vide le champ
2485            $this->byId("valeur")->clear();
2486            //On change la valeur du paramètre
2487            $this->byId("valeur")->value($valeur);
2488            //On valide le formulaire
2489            $this->byName('f1')->submit();
2490            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2491            $this->verifyNoErrors();
2492            // On vérifie que le message de validation est présent
2493            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector(".message .text")->text());
2494            //On clique sur le bouton retour
2495            $this->byLinkText("Retour")->click();
2496            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2497            $this->verifyNoErrors();
2498            //On clique sur le bouton retour
2499            $this->byLinkText("Retour")->click();
2500            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2501            $this->verifyNoErrors();
2502            //On retourne la valeur
2503            return $parametre;
2504        }
2505    
2506        /*
2507         * Ajoute une instruction
2508         * @param int $service l'identifiant du service
2509         */
2510        private function addInstruction($evenement, $erp = true){
2511            
2512            //On clique sur le + du tableau
2513            $this->byClassName("add-16")->click();
2514            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2515            $this->verifyNoErrors();
2516            //On choisit l'événement
2517            $this->select($this->byId("evenement"))->selectOptionByValue($evenement);
2518            //On valide le formulaire
2519            $this->byName("f2")->submit();
2520            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2521            $this->verifyNoErrors();
2522            // On vérifie que le message de validation est présent
2523            $this->assertContains('Vos modifications ont bien été enregistrées.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2524            if($erp) {
2525                // On vérifie que le message d'envoi est présent
2526                $this->assertContains('Le message a été transmis au référentiel ERP.', $this->byCssSelector("#sousform-instruction .message .text")->text());
2527            }
2528            //On clique sur le bouton retour
2529            $this->byLinkText("Retour")->click();
2530            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2531            $this->verifyNoErrors();
2532        }
2533    
2534        /**
2535         * Permet de vérifier l'état d'un DA en fonction de l'état de ses DI.
2536         * @param  string  $dossier numéro de dossier
2537         * @param  integer $event   numéro d'événement
2538         * @param  string  $etat    état du DA
2539         */
2540        private function verifierEtatDA($dossier, $event, $etat) {
2541            // On clique sur l'onglet "DA"
2542            $this->byId("dossier_autorisation")->click();
2543            sleep(1);
2544            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2545            $this->verifyNoErrors();
2546            $this->assertContains('En cours', $this->byCssSelector("#sousform-dossier_autorisation")->text());
2547            // retour sur l'ajout d'événement
2548            $this->byId("instruction")->click();
2549            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2550            $this->verifyNoErrors();
2551            $this->addInstruction($event, false);
2552            // On clique sur l'onglet "DA"
2553            $this->byId("dossier_autorisation")->click();
2554            sleep(1);
2555            // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
2556            $this->verifyNoErrors();
2557            $this->assertContains($etat, $this->byCssSelector("#sousform-dossier_autorisation")->text());
2558        }
2559  }  }
2560    
2561  ?>  ?>

Legend:
Removed from v.2621  
changed lines
  Added in v.2902

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26