14 |
*/ |
*/ |
15 |
class Instruction extends BaseTestCase { |
class Instruction extends BaseTestCase { |
16 |
|
|
|
private function login() { |
|
|
// on commence par se connecter |
|
|
$this->connect("instr", "instr"); |
|
|
// On doit être connecté |
|
|
$this->assertTrue($this->isTextPresent("Votre session est maintenant ouverte.")); |
|
|
} |
|
|
|
|
|
private function logout() { |
|
|
// puis on se déconnecte |
|
|
$this->deconnect(); |
|
|
// on doit avoir un message nous indiquant que la session est finie |
|
|
$this->assertTrue($this->isTextPresent("Votre session est maintenant terminée.")); |
|
|
// on ne doit plus avoir de lien de déconnexion |
|
|
$this->assertFalse($this->isElementPresent("link=Déconnexion")); |
|
|
} |
|
|
|
|
17 |
/** |
/** |
18 |
* Ce test vise uniquement à vérifier que les écrans correspondant à chaque |
* Ce test vise uniquement à vérifier que les écrans correspondant à chaque |
19 |
* entrée de menu ne génère pas une erreur de base de données |
* entrée de menu ne génère pas une erreur de base de données |
20 |
*/ |
*/ |
21 |
public function testGeneral() { |
public function test_01_ouverture_de_chaque_ecran_par_l_instructeur() { |
22 |
// |
// |
23 |
$this->login(); |
$this->login("instr", "instr"); |
|
|
|
24 |
// |
// |
25 |
$this->clickAndWait("link=mes encours"); |
$this->clickAndWait("link=mes encours"); |
26 |
|
$this->verifyNoErrors(); |
27 |
$this->verifyTextPresent("DI"); |
$this->verifyTextPresent("DI"); |
|
$this->verifyNoDatabaseError(); |
|
28 |
// |
// |
29 |
$this->clickAndWait("link=tous les encours"); |
$this->clickAndWait("link=tous les encours"); |
30 |
|
$this->verifyNoErrors(); |
31 |
$this->verifyTextPresent("DI"); |
$this->verifyTextPresent("DI"); |
|
$this->verifyNoDatabaseError(); |
|
32 |
// |
// |
33 |
$this->clickAndWait("link=mes clôturés"); |
$this->clickAndWait("link=mes clôturés"); |
34 |
|
$this->verifyNoErrors(); |
35 |
$this->verifyTextPresent("DI"); |
$this->verifyTextPresent("DI"); |
|
$this->verifyNoDatabaseError(); |
|
36 |
// |
// |
37 |
$this->clickAndWait("link=tous les clôturés"); |
$this->clickAndWait("link=tous les clôturés"); |
38 |
|
$this->verifyNoErrors(); |
39 |
$this->verifyTextPresent("DI"); |
$this->verifyTextPresent("DI"); |
|
$this->verifyNoDatabaseError(); |
|
40 |
// |
// |
41 |
$this->clickAndWait("link=recherche"); |
$this->clickAndWait("link=recherche"); |
42 |
|
$this->verifyNoErrors(); |
43 |
$this->verifyTextPresent("DI"); |
$this->verifyTextPresent("DI"); |
|
$this->verifyNoDatabaseError(); |
|
44 |
// |
// |
45 |
$this->clickAndWait("link=dossiers a qualifier"); |
$this->clickAndWait("link=dossiers à qualifier"); |
46 |
|
$this->verifyNoErrors(); |
47 |
$this->verifyTextPresent("dossier"); |
$this->verifyTextPresent("dossier"); |
|
$this->verifyNoDatabaseError(); |
|
48 |
// |
// |
49 |
$this->clickAndWait("link=Mes retours"); |
$this->clickAndWait("link=Mes retours"); |
50 |
|
$this->verifyNoErrors(); |
51 |
$this->verifyTextPresent("dossier"); |
$this->verifyTextPresent("dossier"); |
|
$this->verifyNoDatabaseError(); |
|
52 |
// |
// |
53 |
$this->clickAndWait("link=Tous les retours"); |
$this->clickAndWait("link=Tous les retours"); |
54 |
|
$this->verifyNoErrors(); |
55 |
$this->verifyTextPresent("dossier"); |
$this->verifyTextPresent("dossier"); |
|
$this->verifyNoDatabaseError(); |
|
56 |
// |
// |
57 |
$this->clickAndWait("link=Mes messages"); |
$this->clickAndWait("link=Mes messages"); |
58 |
|
$this->verifyNoErrors(); |
59 |
$this->verifyTextPresent("dossier"); |
$this->verifyTextPresent("dossier"); |
|
$this->verifyNoDatabaseError(); |
|
60 |
// |
// |
61 |
$this->clickAndWait("link=Tous les messages"); |
$this->clickAndWait("link=Tous les messages"); |
62 |
|
$this->verifyNoErrors(); |
63 |
$this->verifyTextPresent("dossier"); |
$this->verifyTextPresent("dossier"); |
|
$this->verifyNoDatabaseError(); |
|
64 |
// |
// |
65 |
$this->clickAndWait("css=a.commission_mes_retours-16"); |
$this->clickAndWait("css=a.commission_mes_retours-16"); |
66 |
|
$this->verifyNoErrors(); |
67 |
$this->verifyTextPresent("dossier"); |
$this->verifyTextPresent("dossier"); |
|
$this->verifyNoDatabaseError(); |
|
68 |
// |
// |
69 |
$this->clickAndWait("css=a.commission_tous_retours-16"); |
$this->clickAndWait("css=a.commission_tous_retours-16"); |
70 |
|
$this->verifyNoErrors(); |
71 |
$this->verifyTextPresent("dossier"); |
$this->verifyTextPresent("dossier"); |
72 |
$this->verifyNoDatabaseError(); |
|
|
|
|
73 |
// |
// |
74 |
$this->logout(); |
$this->logout(); |
75 |
} |
} |
76 |
|
|
77 |
/** |
/** |
78 |
* |
* |
79 |
*/ |
*/ |
80 |
public function testConsultationDeServices() { |
public function test_02_visualisation_di_et_da_par_l_instructeur_en_charge() { |
81 |
// |
// On positionne une vitesse pour que les requêtes ajax puissent s'exécuter correctement |
82 |
$this->login(); |
$this->setSpeed('120'); |
83 |
|
// On se connecte en tant que "instr" |
84 |
|
$this->login("instr", "instr"); |
85 |
|
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
86 |
|
$this->verifyNoErrors(); |
87 |
|
// On clique sur le lien "Mes encours" dans le menu |
88 |
$this->clickAndWait("link=mes encours"); |
$this->clickAndWait("link=mes encours"); |
89 |
// Accès au dossier en visualisation |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
90 |
|
$this->verifyNoErrors(); |
91 |
|
// On clique sur le lien "AZ0130551200001P0" dans le tableau |
92 |
$this->clickAndWait("link=AZ0130551200001P0"); |
$this->clickAndWait("link=AZ0130551200001P0"); |
93 |
$this->verifyNoDatabaseError(); |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
94 |
// Accès à l'onglet des consultations |
$this->verifyNoErrors(); |
95 |
|
// On vérifie que le breadcrumb est correct |
96 |
|
$this->verifyTextPresent("Instruction > dossiers d'instruction > AZ0130551200001P0 PETIT MARTHE"); |
97 |
|
// On clique sur l'onglet "Instruction" |
98 |
|
$this->click("id=instruction"); |
99 |
|
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
100 |
|
$this->verifyNoErrors(); |
101 |
|
// On clique sur l'onglet "Consultation(s)" |
102 |
$this->click("id=consultation"); |
$this->click("id=consultation"); |
103 |
$this->setSpeed('120'); |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
104 |
$this->verifyNoDatabaseError(); |
$this->verifyNoErrors(); |
105 |
//// Ajout d'une simple consultation |
// On clique sur l'onglet "Lot(s)" |
106 |
// On clique sur le bouton ajout |
$this->click("id=lot"); |
107 |
$this->click("//div[@id='sousform-consultation']/table/thead/tr/th/a/span"); |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
108 |
$this->verifyNoDatabaseError(); |
$this->verifyNoErrors(); |
109 |
// On sélectionne le service |
// On clique sur l'onglet "Message(s)" |
110 |
$this->select("id=service", "label=1ER Maire 1er Secteur"); |
$this->click("id=dossier_message"); |
111 |
// On valide le formulaire |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
112 |
$this->click("//input[@value='Ajouter']"); |
$this->verifyNoErrors(); |
113 |
$this->verifyNoDatabaseError(); |
// On clique sur l'onglet "Commission(s)" |
114 |
// |
$this->click("id=dossier_commission"); |
115 |
$this->verifyTextPresent("Vos modifications ont bien été enregistrées."); |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
116 |
// On clique sur le bouton retour |
$this->verifyNoErrors(); |
117 |
$this->click("css=form[name=\"f2\"] > div.formControls > a.retour"); |
// On clique sur l'onglet "Bloc-note" |
118 |
|
$this->click("id=blocnote"); |
119 |
//// Ajout de plusieurs consultations |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
120 |
// On clique sur le bouton ajout multiple |
$this->verifyNoErrors(); |
121 |
$this->click("//div[@id='sousform-consultation']/table/thead/tr/th/a[2]/span"); |
// On clique sur l'onglet "DA" |
122 |
$this->verifyNoDatabaseError(); |
$this->click("id=dossier_autorisation"); |
123 |
// On sélectionne trois servcies |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
124 |
$this->click("id=t10_572_0_"); |
$this->verifyNoErrors(); |
125 |
$this->click("id=t10_575_0_"); |
// On clique sur le lien "AZ0130551200001" dans le tableau |
126 |
$this->click("id=t10_584_0_"); |
$this->clickAndWait("link=AZ0130551200001"); |
127 |
// On les ajoute à la sélection |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
128 |
$this->click("id=add-ser-them"); |
$this->verifyNoErrors(); |
129 |
// On valide le formulaire |
// On vérifie que le breadcrumb est correct |
130 |
$this->click("id=button_val"); |
$this->verifyTextPresent("Autorisation > Dossier d'autorisation > AZ0130551200001"); |
131 |
$this->verifyNoDatabaseError(); |
// On clique sur l'onglet "Dossier(s) d'instruction" |
132 |
// |
$this->click("id=dossier_instruction"); |
133 |
$this->verifyTextPresent("3 service(s) sélectionné(s) dont 0 consultation(s) papier."); |
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
134 |
|
$this->verifyNoErrors(); |
135 |
// On vérifie que nous avons bien 4 consultations affichées |
// On clique sur le lien "AZ0130551200001P0" dans le tableau |
136 |
$this->verifyTextPresent("1 - 4 enregistrement(s) sur 4"); |
$this->clickAndWait("link=AZ0130551200001P0"); |
137 |
|
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
138 |
// |
$this->verifyNoErrors(); |
139 |
|
// On vérifie que le breadcrumb est correct |
140 |
|
$this->verifyTextPresent("Instruction > dossiers d'instruction > AZ0130551200001P0 PETIT MARTHE"); |
141 |
|
// On se déconnecte |
142 |
$this->logout(); |
$this->logout(); |
143 |
} |
} |
144 |
|
|
145 |
|
/** |
146 |
|
* |
147 |
|
*/ |
148 |
|
public function test_03_informations_du_widget_profil_instructeur() { |
149 |
|
// On se connecte en tant que "instr" |
150 |
|
$this->login("instr", "instr"); |
151 |
|
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
152 |
|
$this->verifyNoErrors(); |
153 |
|
// On vérifie que le titre du widget est correct |
154 |
|
$this->verifyTextPresent("instructeur"); |
155 |
|
// On vérifie que le nom de l'instructeur affiché est le bon |
156 |
|
$this->verifyText("css=div.instructeur-infos-nom > span.value", "Louis Laurent"); |
157 |
|
// On vérifie que la division de l'instructeur affichée est la bonne |
158 |
|
$this->verifyText("css=div.instructeur-infos-division > span.value", "H"); |
159 |
|
// On se déconnecte |
160 |
|
$this->logout(); |
161 |
|
// On se connecte en tant que "instr" |
162 |
|
$this->login("instr1", "instr"); |
163 |
|
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
164 |
|
$this->verifyNoErrors(); |
165 |
|
// On vérifie que le titre du widget est correct |
166 |
|
$this->verifyTextPresent("instructeur"); |
167 |
|
// On vérifie que le nom de l'instructeur affiché est le bon |
168 |
|
$this->verifyText("css=div.instructeur-infos-nom > span.value", "Martine Nadeau"); |
169 |
|
// On vérifie que la division de l'instructeur affichée est la bonne |
170 |
|
$this->verifyText("css=div.instructeur-infos-division > span.value", "H"); |
171 |
|
// On se déconnecte |
172 |
|
$this->logout(); |
173 |
|
// On se connecte en tant que "instr" |
174 |
|
$this->login("instr2", "instr"); |
175 |
|
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
176 |
|
$this->verifyNoErrors(); |
177 |
|
// On vérifie que le titre du widget est correct |
178 |
|
$this->verifyTextPresent("instructeur"); |
179 |
|
// On vérifie que le nom de l'instructeur affiché est le bon |
180 |
|
$this->verifyText("css=div.instructeur-infos-nom > span.value", "Roland Richard"); |
181 |
|
// On vérifie que la division de l'instructeur affichée est la bonne |
182 |
|
$this->verifyText("css=div.instructeur-infos-division > span.value", "J"); |
183 |
|
// On se déconnecte |
184 |
|
$this->logout(); |
185 |
|
} |
186 |
} |
} |
187 |
|
|
188 |
?> |
?> |