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

Annotation of /trunk/tests/testArchitecteFrequent.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (hide 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 mbroquet 3730 <?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