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 |
?> |