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

Annotation of /trunk/tests/testGuichetUnique.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4765 - (hide annotations)
Mon Jul 25 07:18:27 2016 UTC (8 years, 6 months ago) by fmichon
File size: 17116 byte(s)
* Tests : Réécriture d'un testcase PHPUnit Selenium en RobotFramework.

1 mbroquet 3730 <?php
2     /**
3     *
4     *
5     * @package openfoncier
6     * @version SVN : $Id: testGuichetUnique.php 6145 2016-03-10 09:07:45Z nhaye $
7     */
8    
9     //
10     require_once "base.php";
11    
12     /**
13     *
14     */
15     class GuichetUnique extends Base2TestCase {
16     /**
17     * Fonction lancée en debut de chaque test
18     */
19     public function setUp() {
20     parent::setUp();
21     echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n";
22     }
23    
24     public function onNotSuccessfulTest(Exception $e){
25     echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n";
26     parent::onNotSuccessfulTest($e);
27     }
28    
29     /**
30     * Test l'ajout d'une demande et de création d'une nouvelle sequence
31     */
32     public function test_03_AjoutDemandeNouvelleSequence() {
33    
34     // On se connecte à l'application
35     $this->login("guichet", "guichet");
36     // On clique sur le menu "Nouveau Dossier"
37     $this->byLinkText("Nouveau Dossier")->click();
38     // On vérifie qu'il n'y ait pas d'erreur
39     $this->verifynoerrors();
40     // On vérifie le nom de l'onglet
41     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
42     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
43     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
44     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
45     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
46     // Modification de la date
47     $this->byId("date_demande")->clear();
48     $this->byId("date_demande")->value("10/10/2014");
49     // On clique pour ajouter un pétitionnaire principale
50     $this->byId("add_petitionnaire_principal")->click();
51     // On remplit le champ
52     $this->select($this->byId("particulier_civilite"))->selectOptionByLabel("Monsieur");
53     // On remplit le champ
54     $this->byId("particulier_nom")->value("DURAND");
55     // On remplit le champ
56     $this->byId("particulier_prenom")->value("MICKAEL");
57     // On remplit le champ
58     $this->byId("particulier_date_naissance")->value("03/01/1956");
59     // On remplit le champ
60     $this->byId("particulier_commune_naissance")->value("LILLE");
61     // On remplit le champ
62     $this->byId("particulier_departement_naissance")->value("NORD");
63     // On remplit le champ
64     $this->byId("numero")->value("12");
65     // On remplit le champ
66     $this->byId("voie")->value("RUE DE LA LOI");
67     // On remplit le champ
68     $this->byId("complement")->value("APPT 12");
69     // On remplit le champ
70     $this->byId("localite")->value("MARSEILLE");
71     // On remplit le champ
72     $this->byId("code_postal")->value("13012");
73     // On remplit le champ
74     $this->byId("telephone_fixe")->value("0404040404");
75     // On clique sur ajouter
76     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
77     // On vérifie qu'il n'y ait pas d'erreur
78     $this->verifynoerrors();
79     // On vérifie le message
80     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
81     // On clique sur le bouton retour
82     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
83     // On vérifie que le text est présent
84     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
85     // On clique sur ajouter
86     $this->byXPath("//input[@value='Ajouter']")->click();
87     // On vérifie qu'il n'y ait pas d'erreur
88     $this->verifynoerrors();
89     // On vérifie le message
90     $this->assertContains("Création du dossier d'autorisation n°",$this->byCssSelector(".message .text")->text());
91     // Récupération du numéro de dossier
92     preg_match('/(PC)[0-9 ]*(P0)/', $this->byCssSelector(".message .text")->text(), $dossier);
93     $dossier = $dossier[0];
94     // On se déconnecte
95     $this->logout();
96     }
97    
98     /**
99     * Test les pétitionnaires fréquents
100     */
101     public function test_07_PetitionnaireFrequent() {
102    
103     // On se connecte à l'application
104     $this->login("guichet", "guichet");
105     // On clique sur le menu "Nouveau Dossier"
106     $this->byLinkText("Nouveau Dossier")->click();
107     // On vérifie qu'il n'y ait pas d'erreur
108     $this->verifynoerrors();
109     // On vérifie le nom de l'onglet
110     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
111     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
112     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes");
113     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
114     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
115     // On clique pour ajouter un pétitionnaire principale
116     $this->byId("add_petitionnaire_principal")->click();
117     // On remplit le champ
118     $this->byId("particulier_nom")->value("DURAND");
119     // On remplit le champ
120     $this->byId("particulier_prenom")->value("MICKAEL");
121     // On remplit le champ
122     $this->byId("particulier_date_naissance")->value("03/01/1956");
123     // On remplit le champ
124     $this->byId("particulier_commune_naissance")->value("LILLE");
125     // On remplit le champ
126     $this->byId("particulier_departement_naissance")->value("NORD");
127     // On remplit le champ
128     $this->byId("numero")->value("12");
129     // On remplit le champ
130     $this->byId("voie")->value("RUE DE LA LOI");
131     // On remplit le champ
132     $this->byId("complement")->value("APPT 12");
133     // On remplit le champ
134     $this->byId("localite")->value("MARSEILLE");
135     // On remplit le champ
136     $this->byId("code_postal")->value("13012");
137     // On remplit le champ
138     $this->byId("telephone_fixe")->value("0404040404");
139     // On sélectionne pétitionnaire fréquent
140     $this->byId("frequent")->click();
141     // On clique sur ajouter
142     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
143     // On vérifie qu'il n'y ait pas d'erreur
144     $this->verifynoerrors();
145     // On vérifie le message
146     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
147     // On clique sur le bouton retour
148     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
149     // On vérifie que le text est présent
150     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
151     // On clique sur ajouter
152     $this->byXPath("//input[@value='Ajouter']")->click();
153     // On vérifie qu'il n'y ait pas d'erreur
154     $this->verifynoerrors();
155     // On vérifie le message
156     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
157     // On clique
158     $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
159     // Liste les fenêtres
160     $windows = $this->windowHandles();
161     // Change la fenêtre
162     $this->window($windows[1]);
163     // On vérifie qu'il n'y ait pas d'erreur
164     $this->verifynoerrors();
165     // On vérifie que le text est présent
166     $this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source());
167     // On ferme la fenêtre
168     $this->closeWindow();
169     // On change le focus de la fenêtre
170     $this->window($windows[0]);
171     // On clique sur le bouton retour
172     $this->byLinkText("Retour")->click();
173     // On vérifie qu'il n'y ait pas d'erreur
174     $this->verifynoerrors();
175     //On se déconnecte
176     $this->deconnect();
177    
178     //On se connecte en administrateur
179     $this->login("admin", "admin");
180     //On clique sur le menu guichet unique
181     $this->byLinkText("Guichet Unique")->click();
182     // On clique sur pétitionnaire fréquent
183     $this->byLinkText("Pétitionnaire Fréquent")->click();
184     // On vérifie qu'il n'y ait pas d'erreur
185     $this->verifynoerrors();
186     // On vérifie que le text est présent
187     $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
188     // On lance une recherche simple
189     $this->byName("recherche")->value("*DUR");
190     $this->select($this->byName("selectioncol"))->selectOptionByLabel("nom");
191     // On clique sur recherche
192     $this->byName("s1")->click();
193     // On vérifie qu'il n'y ait pas d'erreur
194     $this->verifynoerrors();
195     // On vérifie que le text est présent
196     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->source());
197     // On clique sur le résultat
198     $this->byLinkText("DURAND MICKAEL")->click();
199     // On vérifie qu'il n'y ait pas d'erreur
200     $this->verifynoerrors();
201     // On vérifie que le text est présent
202     $this->assertRegExp("/^[\s\S]*RUE DE LA LOI[\s\S]*$/",$this->source());
203     // On marque le pétitionnaire comme non fréquent
204     $this->byId("action-form-petitionnaire_frequent-non_frequent")->click();
205     //On vérifie le message
206     $this->assertRegExp("/^[\s\S]*Mise à jour effectuée avec succès[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
207     // On clique sur le bouton "Retour"
208     $this->byLinkText("Retour")->click();
209     // On vérifie qu'il n'y ait pas d'erreur
210     $this->verifynoerrors();
211     // On vérifie que le text est présent
212     $this->assertRegExp("/^[\s\S]*pétitionnaire fréquent[\s\S]*$/",$this->source());
213     $this->assertNotContains('DURAND MICKAEL', $this->source());
214     // On se déconnecte
215     $this->logout();
216     }
217    
218     /*
219     * Cette fonction va tester l'affectation automatique des instructeurs aux
220     * dossiers d'instruction.
221     * Quatre cas sont possibles :
222     * - Aucun instructeur ne correspond, ;
223     * - Un instructeur joker correspond, ;
224     * - Un instructeur correspond, .
225     */
226     function test_10_AffectationAutomatique(){
227    
228     // On se connecte à l'application
229     $this->login("guichet", "guichet");
230     //Ajout d'un dossier d'instructeur avec affectation d'aucun instructeur
231     $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire comprenant ou non des démolitions", "Poly Com Marseille");
232    
233     //Ajout d'un dossier d'instructeur avec affectation d'un instructeur
234     //joker avec seulement le type de dossier d'autorisation détaillé de
235     //renseigné
236     $this->ajoutDossierAffectationAutomatique("806", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Louis Laurent");
237    
238     //Ajout d'un dossier d'instructeur avec affectation du seul instructeur
239     //correspondant parfaitement aux critères
240     $this->ajoutDossierAffectationAutomatique("801", "A", "0001", "Permis de construire pour une maison individuelle et / ou ses annexes", "Pierre Martin");
241     // On se déconnecte
242     $this->logout();
243     }
244    
245     /**
246     * Ajoute un dossier d'instruction
247     * @param string $reference_cadastrale_quartier Le quartier de la référence
248     * cadastrale du dossier
249     * @param string $reference_cadastrale_section La section de la référence
250     * cadastrale du dossier
251     * @param string $reference_cadastrale_parcelle La parcelle de la référence
252     * cadastrale du dossier
253     * @param string $datd dossier d'autorisation type détaillé
254     * @param string $instructeur le nom de l'instructeur
255     *
256     * @return boolean
257     */
258     function ajoutDossierAffectationAutomatique($reference_cadastrale_quartier,
259     $reference_cadastrale_section, $reference_cadastrale_parcelle,$datd,
260     $instructeur){
261    
262     //On affiche le tableau de bord
263     $this->byLinkText("Tableau de bord")->click();
264     // On clique sur le menu "Nouveau Dossier"
265     $this->byLinkText("Nouveau Dossier")->click();
266     // On vérifie qu'il n'y ait pas d'erreur
267     $this->verifynoerrors();
268     // On vérifie le nom de l'onglet
269     $this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text());
270     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
271     $this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel($datd);
272     // On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes"
273     $this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial");
274     //On saisie les références cadastrales
275     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(1)")->value($reference_cadastrale_quartier);
276     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(2)")->value($reference_cadastrale_section);
277     $this->byCssSelector(".reference_cadastrale_custom_field:nth-child(3)")->value($reference_cadastrale_parcelle);
278 nhaye 3803 //On saisi l'adresse
279     $this->byId("terrain_adresse_voie_numero")->value("0075");
280     $this->byId("terrain_adresse_voie")->value("TRA DE LA DOMINIQUE");
281     $this->byId("terrain_adresse_code_postal")->value("13011");
282     $this->byId("terrain_adresse_localite")->value("MARSEILLE");
283    
284 mbroquet 3730 // On clique pour ajouter un pétitionnaire principale
285     $this->byId("add_petitionnaire_principal")->click();
286     // On remplit le champ
287     $this->byId("particulier_nom")->value("DURAND");
288     // On remplit le champ
289     $this->byId("particulier_prenom")->value("MICKAEL");
290     // On remplit le champ
291     $this->byId("particulier_date_naissance")->value("03/01/1956");
292     // On remplit le champ
293     $this->byId("particulier_commune_naissance")->value("LILLE");
294     // On remplit le champ
295     $this->byId("particulier_departement_naissance")->value("NORD");
296     // On remplit le champ
297     $this->byId("numero")->value("12");
298     // On remplit le champ
299     $this->byId("voie")->value("RUE DE LA LOI");
300     // On remplit le champ
301     $this->byId("complement")->value("APPT 12");
302     // On remplit le champ
303     $this->byId("localite")->value("MARSEILLE");
304     // On remplit le champ
305     $this->byId("code_postal")->value("13012");
306     // On remplit le champ
307     $this->byId("telephone_fixe")->value("0404040404");
308     // On clique sur ajouter
309     $this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1);
310     // On vérifie qu'il n'y ait pas d'erreur
311     $this->verifynoerrors();
312     // On vérifie le message
313     $this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text());
314     // On clique sur le bouton retour
315     $this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1);
316     // On vérifie que le text est présent
317     $this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text());
318     // On clique sur ajouter
319     $this->byXPath("//input[@value='Ajouter']")->click();
320     // On vérifie qu'il n'y ait pas d'erreur
321     $this->verifynoerrors();
322     // On vérifie le message
323     $this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°[\s\S]*$/",$this->byCssSelector(".message")->text());
324     // On clique
325     $this->byCssSelector("a#link_demande_recepisse")->click();sleep(5);
326     // Liste les fenêtres
327     $windows = $this->windowHandles();
328     // Change la fenêtre
329     $this->window($windows[1]);
330     // On vérifie qu'il n'y ait pas d'erreur
331     $this->verifynoerrors();
332     // On vérifie que le text est présent
333     $this->assertRegExp("/^[\s\S]*Dossier suivi par ".$instructeur."[\s\S]*$/",$this->source());
334     // On ferme la fenêtre
335     $this->closeWindow();
336     // On change le focus de la fenêtre
337     $this->window($windows[0]);
338     }
339    
340     }
341    
342 nhaye 3803 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26