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

Contents of /trunk/tests/testArchitecteFrequent.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (show annotations)
Fri Mar 18 11:50:26 2016 UTC (8 years, 10 months ago) by mbroquet
File size: 16830 byte(s)
Actualisation du trunk
1 <?php
2 /**
3 * Classe de test des architectes.
4 *
5 * @package openads
6 * @version SVN : $Id: testArchitecteFrequent.php
7 */
8
9 //
10 require_once "base.php";
11
12 /**
13 * Test de l'ajout et de l'utilisation dans les formulaires des architectes fréquents
14 * Données utilisées :
15 * - le dossier d'instruction n° PC0130551200002P0 ;
16 * - le dossier d'instruction n° AZ0130551200001P0 ;
17 * - l'architecte nommé Paul Mercier et
18 * - l'architecte nommé Jean Mercier.
19 */
20 class ArchitecteFrequent extends Base2TestCase {
21
22 /**
23 * Fonction lancée en debut de chaque test
24 */
25 public function setUp() {
26 parent::setUp();
27 echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n";
28 }
29
30 public function onNotSuccessfulTest(Exception $e){
31 echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n";
32 parent::onNotSuccessfulTest($e);
33 }
34
35 /**
36 * Test de l'ajout d'un architecte fréquent par l'administrateur technique.
37 */
38 function test_01_AjoutArchitecteFrequent(){
39
40 // On se connecte en tant que "instr"
41 $this->login("admin", "admin");
42 //On clique sur le menu iinstruction
43 $this->byLinkText("Instruction")->click();
44 //On clique sur le menu des architectes fréquents
45 $this->byLinkText("Architecte Fréquent")->click();
46 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
47 $this->verifyNoErrors();
48 //On vérifie qu'on est sur le bon tableau
49 $this->assertEquals("Architecte Fréquent", $this->byXPath("//a[@href=\"#tabs-1\"]")->text());
50 //On clique sur le "+" du tableau d'architectes fréquents
51 $this->byCssSelector(".add-16")->click();
52 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
53 $this->verifyNoErrors();
54 //On essaye de valider le formulaire sans remplir de champ
55 $this->byXPath("//input[@value='Ajouter']")->click();
56 //On vérifie qu'il y a un message d'erreur
57 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector(".message .text")->text());
58 //On remplit les champs
59 $this->byCssSelector("#nom")->value("Lefebvre");
60 $this->byCssSelector("#prenom")->value("James");
61 $this->byCssSelector("#adresse1")->value("113 boulevard de pont de vivaux");
62 $this->byCssSelector("#cp")->value("13010");
63 $this->byCssSelector("#ville")->value("Marseille");
64 $this->byCssSelector("#inscription")->value("0491855565");
65 $this->byCssSelector("#telephone")->value("0491236589");
66 $this->byCssSelector("#fax")->value("0491236585");
67 $this->byCssSelector("#email")->value("[email protected]");
68 //On valide le formulaire
69 $this->byXPath("//input[@value='Ajouter']")->click();
70 //On vérifie le message de validation
71 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
72 //On clique sur le bouton de retour
73 $this->byLinkText("Retour")->click();
74 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
75 $this->verifyNoErrors();
76 //On vérifie que l'architecte fréquent s'est bien ajouté en cliquant dessus
77 $this->byLinkText("James Lefebvre")->click();
78 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
79 $this->verifyNoErrors();
80 // On se déconnecte de l'application
81 $this->logout();
82 }
83
84 /**
85 * Test de l'ajout d'un architecte fréquent aux données techniques par l'instructeur.
86 * - Utilisation de l'architecte fréquent rajouté par l'administrateur
87 */
88 function test_02_AjoutArchitecteFrequentDonneesTechniques(){
89
90 // On se connecte en tant que "instr"
91 $this->login("instr", "instr");
92 //On clique sur le menu "Mes encours"
93 $this->byLinkText("Mes Encours")->click();
94 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
95 $this->verifyNoErrors();
96 //On choisit le dossier n°PC0130551200002P0
97 $this->byLinkText("PC 013055 12 00002P0")->click();
98 //On clique sur "Données techniques dans le portlet d'actions"
99 $this->byCssSelector("#action-form-dossier_instruction_mes_encours-donnees_techniques")->click();
100 //On affiche le formulaire en modification
101 $this->byCssSelector("#action-sousform-donnees_techniques-modifier")->click();
102 //On ouvre les fieldsets Construire puis Projet construction
103 sleep(1);
104 $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
105 sleep(1);
106 $this->byCssSelector("#fieldset-sousform-donnees_techniques-projet-construction legend")->click();
107 sleep(1);
108 //On clique sur "Ajouter un architecte"
109 $this->byCssSelector("#sousform-donnees_techniques .field-type-manage_with_popup .form-content span")->click();
110 sleep(2);
111 //On essaye de valider un formulaire vide
112 $this->byCssSelector("#sousform-architecte .om-button")->click();
113 sleep(2);
114 //On vérifie le message d'erreur
115 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-architecte .message .text")->text());
116 sleep(2);
117 //On écrit le nom d'un architecte qui ne retournera aucun résultat
118 $this->byCssSelector("#sousform-architecte #nom")->value("zzz");
119 sleep(2);
120 //On lance la recherche
121 $this->byCssSelector(".search-frequent-16")->click();
122 sleep(2);
123 //On vérifie le message de l'overlay
124 $this->assertRegExp('/.*Aucune correspondance trouvée.*/', $this->byCssSelector("#dialog")->text());
125 sleep(2);
126 //On clique sur valider
127 $this->byCssSelector(".ui-dialog .ui-dialog-buttonset .ui-button-text-only")->click();
128 sleep(2);
129 //On vide le champ
130 $this->byCssSelector("#sousform-architecte #nom")->clear();
131 sleep(2);
132 //on écrit le nom d'un architecte qui existe existe en plusieurs fois
133 $this->byCssSelector("#sousform-architecte #nom")->value("Mercier");
134 sleep(2);
135 //On lance la recherche
136 $this->byCssSelector(".search-frequent-16")->click();
137 sleep(2);
138 //On vérifie qu'on a deux résultats
139 $this->assertEquals(2, count($this->byCssSelector('#dialog select')->elements($this->using('css selector')->value('option'))));
140 sleep(2);
141 //On clique sur fermer
142 $this->byCssSelector("div.dialog-search-frequent-architecte a.ui-dialog-titlebar-close")->click();
143 sleep(2);
144 //On écrit le nom d'un architecte qui existe qu'une fois
145 $this->byCssSelector("#sousform-architecte #nom")->clear();
146 $this->byCssSelector("#sousform-architecte #nom")->value("Lefebvre");
147 sleep(2);
148 //On lance la recherche
149 $this->byCssSelector(".search-frequent-16")->click();
150 sleep(2);
151 //On vérifie qu'on a qu'un seul résultat
152 $this->assertEquals(1, count($this->byCssSelector('#dialog select')->elements($this->using('css selector')->value('option'))));
153 sleep(2);
154 //On valide
155 $this->byCssSelector("div.dialog-search-frequent-architecte div.ui-dialog-buttonset button")->click();
156 sleep(2);
157 //On vérifie que le prenom de l'architecte choisit est bon
158 $this->assertEquals("James", $this->byCssSelector("#sousform-architecte #prenom")->text());
159 //On clique sur retour
160 $this->byCssSelector("#sousform-architecte a.retour")->click();
161 sleep(3);
162 //On vérifie que l'identifiant de l'architecte choisit est bon
163 $this->assertEquals("Lefebvre James", $this->byCssSelector(".field-type-manage_with_popup .edit-16")->text());
164 sleep(2);
165 //On valide le formulaire de données techniques
166 $this->byXPath("//input[@value='Modifier']")->click();
167 sleep(2);
168 //On vérifie le message de validation
169 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text());
170 sleep(2);
171 //On clique sur retour
172 $this->byCssSelector("#sousform-donnees_techniques a.retour")->click();
173 sleep(2);
174 //On clique sur "Données techniques dans le portlet d'actions"
175 $this->byCssSelector("#action-form-dossier_instruction_mes_encours-donnees_techniques")->click();
176 //On ouvre les fieldsets Construire puis Projet construction
177 sleep(2);
178 $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
179 sleep(2);
180 $this->byCssSelector("#fieldset-sousform-donnees_techniques-projet-construction legend")->click();
181 sleep(3);
182 //On verifie que le bon architecte s'est enregistré
183 $this->assertEquals("James Lefebvre", $this->byCssSelector("#sousform-donnees_techniques #architecte")->text());
184 //On clique sur retour
185 $this->byCssSelector("#sousform-donnees_techniques a.retour")->click();
186 // On se déconnecte de l'application
187 $this->logout();
188 }
189
190 /**
191 * Test de l'ajout d'un architecte aux données techniques par l'instructeur.
192 */
193 function test_03_AjoutArchitecteDonneesTechniques(){
194
195 // On se connecte en tant que "instr"
196 $this->login("instr", "instr");
197 //On clique sur le menu "Mes encours"
198 $this->byLinkText("Mes Encours")->click();
199 //On choisit le dossier n°AZ0130551200001P0
200 $this->byLinkText("AZ 013055 12 00001P0")->click();
201 //On clique sur "Données techniques dans le portlet d'actions"
202 $this->byCssSelector("#action-form-dossier_instruction_mes_encours-donnees_techniques")->click();
203 //On affiche le formulaire en modification
204 $this->byCssSelector("#action-sousform-donnees_techniques-modifier")->click();
205 //On ouvre les fieldsets Construire puis Projet construction
206 sleep(1);
207 $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
208 sleep(1);
209 $this->byCssSelector("#fieldset-sousform-donnees_techniques-projet-construction legend")->click();
210 sleep(1);
211 //On clique sur "Ajouter un architecte"
212 $this->byCssSelector("#sousform-donnees_techniques .field-type-manage_with_popup .form-content span")->click();
213 //On essaye de valider un formulaire vide
214 $this->byCssSelector("#sousform-architecte .om-button")->click();
215 //On vérifie le message d'erreur
216 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector("#sousform-architecte .message .text")->text());
217 //On remplit les champs
218 $this->byCssSelector("#nom")->value("Montmorrency");
219 $this->byCssSelector("#prenom")->value("Paul Marie Édouard");
220 $this->byCssSelector("#adresse1")->value("113 boulevard de pont de vivaux");
221 $this->byCssSelector("#cp")->value("13010");
222 $this->byCssSelector("#ville")->value("Marseille");
223 $this->byCssSelector("#inscription")->value("0491855565");
224 $this->byCssSelector("#telephone")->value("0491236589");
225 $this->byCssSelector("#fax")->value("0491236585");
226 $this->byCssSelector("#email")->value("[email protected]");
227 //On valide le formulaire de l'architecte
228 $this->byCssSelector("#sousform-architecte .om-button")->click();
229 sleep(1);
230 //On vérifie le message de validation
231 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-architecte .message .text")->text());
232 //On clique sur retour²
233 $this->byCssSelector("#sousform-architecte a.retour")->click();
234 //On vérifie que l'identifiant de l'architecte choisit est remplit
235 $this->assertEquals("Montmorrency Paul Marie Édouard", $this->byCssSelector(".field-type-manage_with_popup .edit-16")->text());
236 //On valide le formulaire de données techniques
237 $this->byXPath("//input[@value='Modifier']")->click();
238 //On vérifie le message de validation
239 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector("#sousform-donnees_techniques .message .text")->text());
240 //On clique sur retour
241 $this->byCssSelector("#sousform-donnees_techniques a.retour")->click();
242 //On clique sur "Données techniques dans le portlet d'actions"
243 $this->byCssSelector("#action-form-dossier_instruction_mes_encours-donnees_techniques")->click();
244 //On ouvre les fieldsets Construire puis Projet construction
245 sleep(1);
246 $this->byCssSelector("#fieldset-sousform-donnees_techniques-construire legend")->click();
247 sleep(1);
248 $this->byCssSelector("#fieldset-sousform-donnees_techniques-projet-construction legend")->click();
249 sleep(1);
250 //On verifie que le bon architecte s'est enregistré
251 $this->assertEquals("Paul Marie Édouard Montmorrency", $this->byCssSelector("#sousform-donnees_techniques #architecte")->text());
252 //On clique sur retour
253 $this->byCssSelector("#sousform-donnees_techniques a.retour")->click();
254 // On se déconnecte de l'application
255 $this->logout();
256 }
257
258 /**
259 * Test de l'ajout d'un architecte fréquent par l'administrateur technique.
260 */
261 function test_04_MarquerArchitecteFrequentNonFrequent(){
262
263 // On se connecte en tant que "instr"
264 $this->login("admin", "admin");
265 //On clique sur le menu iinstruction
266 $this->byLinkText("Instruction")->click();
267 //On clique sur le menu des architectes fréquents
268 $this->byLinkText("Architecte Fréquent")->click();
269 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
270 $this->verifyNoErrors();
271 //On vérifie qu'on est sur le bon tableau
272 $this->assertEquals("Architecte Fréquent", $this->byXPath("//a[@href=\"#tabs-1\"]")->text());
273 //On clique sur le "+" du tableau d'architectes fréquents
274 $this->byCssSelector(".add-16")->click();
275 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
276 $this->verifyNoErrors();
277 //On essaye de valider le formulaire sans remplir de champ
278 $this->byXPath("//input[@value='Ajouter']")->click();
279 //On vérifie qu'il y a un message d'erreur
280 $this->assertRegExp('/.*SAISIE NON ENREGISTRÉE.*/', $this->byCssSelector(".message .text")->text());
281 //On remplit les champs
282 $this->byCssSelector("#nom")->value("Paul");
283 $this->byCssSelector("#prenom")->value("James");
284 $this->byCssSelector("#adresse1")->value("113 boulevard de pont de vivaux");
285 $this->byCssSelector("#cp")->value("13010");
286 $this->byCssSelector("#ville")->value("Marseille");
287 $this->byCssSelector("#inscription")->value("0491855565");
288 $this->byCssSelector("#telephone")->value("0491236589");
289 $this->byCssSelector("#fax")->value("0491236585");
290 $this->byCssSelector("#email")->value("[email protected]");
291 //On valide le formulaire
292 $this->byXPath("//input[@value='Ajouter']")->click();
293 //On vérifie le message de validation
294 $this->assertRegExp('/.*Vos modifications ont bien été enregistrées.*/', $this->byCssSelector(".message .text")->text());
295 //On clique sur le bouton de retour
296 $this->byLinkText("Retour")->click();
297 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
298 $this->verifyNoErrors();
299 //On vérifie que l'architecte fréquent s'est bien ajouté en cliquant dessus
300 $this->byLinkText("James Paul")->click();
301 // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
302 $this->verifyNoErrors();
303 // On marque l'architecte comme non fréquent
304 $this->byId("action-form-architecte_frequent-non_frequent")->click();
305 //On vérifie le message
306 $this->assertRegExp("/^[\s\S]*Mise à jour effectuée avec succès[\s\S]*$/",$this->byCssSelector("#tabs-1 .message")->text());
307 // On clique sur le bouton "Retour"
308 $this->byLinkText("Retour")->click();
309 // On vérifie qu'il n'y ait pas d'erreur
310 $this->verifynoerrors();
311 // On vérifie que le text est présent
312 $this->assertRegExp("/^[\s\S]*Architecte Fréquent[\s\S]*$/",$this->byId("formulaire")->text());
313 $this->assertNotContains('James Paul', $this->source());
314 // On se déconnecte
315 $this->logout();
316 }
317 }
318
319 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26