1 |
softime |
2120 |
<?php |
2 |
|
|
/** |
3 |
|
|
* Fichier contenant la classe de test des widget |
4 |
|
|
* |
5 |
|
|
* @package openads |
6 |
|
|
* @version |
7 |
|
|
*/ |
8 |
|
|
|
9 |
|
|
// |
10 |
|
|
require_once "base.php"; |
11 |
|
|
|
12 |
|
|
/** |
13 |
|
|
* Classe de test des widgets |
14 |
|
|
*/ |
15 |
|
|
class Widget extends Base2TestCase { |
16 |
|
|
|
17 |
|
|
/** |
18 |
|
|
* Test les informations retournés par le widget |
19 |
|
|
*/ |
20 |
|
|
public function test_infos_profil() { |
21 |
|
|
|
22 |
|
|
// on se connecte à l'application en tant que qualificateur |
23 |
|
|
$this->login("qualif", "qualif"); |
24 |
|
|
// On vérifie les informations du widget |
25 |
|
|
$this->assertEquals("QUALIFICATEUR", $this->byCssSelector(".profil-infos-profil span.value")->text()); |
26 |
|
|
$this->assertEquals("Qualificateur", $this->byCssSelector(".profil-infos-nom span.value")->text()); |
27 |
|
|
// On se déconnecte |
28 |
|
|
$this->deconnect(); |
29 |
|
|
// on se connecte à l'application en tanque qualificateur |
30 |
|
|
$this->login("instr", "instr"); |
31 |
|
|
// On vérifie les informations du widget |
32 |
|
|
$this->assertEquals("INSTRUCTEUR", $this->byCssSelector(".profil-infos-profil span.value")->text()); |
33 |
|
|
$this->assertEquals("Louis Laurent", $this->byCssSelector(".profil-infos-nom span.value")->text()); |
34 |
|
|
$this->assertEquals("H", $this->byCssSelector(".profil-infos-division span.value")->text()); |
35 |
|
|
// On se déconnecte |
36 |
|
|
$this->logout(); |
37 |
|
|
|
38 |
|
|
} |
39 |
|
|
|
40 |
|
|
/** |
41 |
|
|
* Test si la redirection est effectif |
42 |
|
|
*/ |
43 |
|
|
public function test_redirection() { |
44 |
|
|
|
45 |
fmichon |
2182 |
// On se connecte en tant que "consu" |
46 |
|
|
// !!! Attention on n'utilise pas la méthode login standard car |
47 |
|
|
// l'utilisateur est redirigé automatiquement vers un autre écran |
48 |
|
|
// sans voir le message de connexion !!! |
49 |
|
|
// On se connecte |
50 |
|
|
$this->connect("consu", "consu"); |
51 |
|
|
// Allonge le temps d'attente lors de la recherche d'élément |
52 |
|
|
$this->timeouts()->implicitWait(10000); |
53 |
|
|
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
54 |
|
|
$this->verifynoerrors(); |
55 |
fmichon |
2210 |
// On temporise pour laisser le temps au javascript de redirection |
56 |
|
|
// de faire son travail |
57 |
|
|
sleep(1); |
58 |
|
|
// On vérifie qu'il n'y a pas d'erreur sur l'élément affiché |
59 |
|
|
$this->verifynoerrors(); |
60 |
softime |
2120 |
// On vérifie que la redirection s'est bien faite par le fil d'Ariane |
61 |
|
|
$this->assertEquals("Demandes D'avis > En Cours", $this->byXPath("//div[3]/div/h2")->text()); |
62 |
|
|
// On se déconnecte |
63 |
|
|
$this->logout(); |
64 |
|
|
} |
65 |
|
|
|
66 |
|
|
/** |
67 |
|
|
* Test les dossiers limités avec le divisionnaire qui doit voir tous les |
68 |
|
|
* dossiers dans ce cas |
69 |
|
|
*/ |
70 |
|
|
public function test_dossier_limite() { |
71 |
|
|
|
72 |
|
|
// on se connecte à l'application en tant que qualificateur |
73 |
|
|
$this->login("divi", "divi"); |
74 |
|
|
// On vérifie qu'il y ait au moins un dossier limite |
75 |
fmichon |
2220 |
$this->assertRegExp("/^[\s\S]*PD 013055 12 00001P0[\s\S]*$/",$this->byId("widget_14")->text()); |
76 |
softime |
2120 |
// On clique sur "Voir tous mes dossiers limites" |
77 |
|
|
$this->byLinkText("Voir tous mes dossiers limites")->click(); |
78 |
|
|
// On vérifie que le DI est présent |
79 |
fmichon |
2220 |
$this->assertRegExp("/^[\s\S]*PD 013055 12 00001P0[\s\S]*$/",$this->byCssSelector("BODY")->text()); |
80 |
softime |
2120 |
// On se déconnecte |
81 |
|
|
$this->logout(); |
82 |
|
|
|
83 |
|
|
} |
84 |
|
|
|
85 |
|
|
/** |
86 |
|
|
* Test les dossiers à qualifier avec le qualificateur qui doit voir tous les |
87 |
|
|
* dossiers dans ce cas |
88 |
|
|
*/ |
89 |
|
|
public function test_dossier_qualifier() { |
90 |
|
|
|
91 |
softime |
2423 |
// On se connecte à l'application |
92 |
|
|
$this->login("guichet", "guichet"); |
93 |
|
|
// On clique sur le menu "Nouveau Dossier" |
94 |
|
|
$this->byLinkText("Nouveau Dossier")->click(); |
95 |
|
|
// On vérifie qu'il n'y ait pas d'erreur |
96 |
|
|
$this->verifynoerrors(); |
97 |
|
|
// On vérifie le nom de l'onglet |
98 |
|
|
$this->assertEquals("Demande", $this->byCssSelector("ul.ui-tabs-nav li.ui-state-default a")->text()); |
99 |
|
|
// On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" |
100 |
|
|
$this->select($this->byId("dossier_autorisation_type_detaille"))->selectOptionByLabel("Permis de construire pour une maison individuelle et / ou ses annexes"); |
101 |
|
|
// On selectionne le label "Permis de construire pour une maison individuelle et / ou ses annexes" |
102 |
|
|
$this->select($this->byId("demande_type"))->selectOptionByLabel("Dépôt Initial"); |
103 |
|
|
// On clique pour ajouter un pétitionnaire principale |
104 |
|
|
$this->byId("add_petitionnaire_principal")->click(); |
105 |
|
|
// On remplit le champ |
106 |
|
|
$this->byId("particulier_nom")->value("DURAND"); |
107 |
|
|
// On remplit le champ |
108 |
|
|
$this->byId("particulier_prenom")->value("MICKAEL"); |
109 |
|
|
// On remplit le champ |
110 |
|
|
$this->byId("particulier_date_naissance")->value("03/01/1956"); |
111 |
|
|
// On remplit le champ |
112 |
|
|
$this->byId("particulier_commune_naissance")->value("LILLE"); |
113 |
|
|
// On remplit le champ |
114 |
|
|
$this->byId("particulier_departement_naissance")->value("NORD"); |
115 |
|
|
// On remplit le champ |
116 |
|
|
$this->byId("numero")->value("12"); |
117 |
|
|
// On remplit le champ |
118 |
|
|
$this->byId("voie")->value("RUE DE LA LOI"); |
119 |
|
|
// On remplit le champ |
120 |
|
|
$this->byId("complement")->value("APPT 12"); |
121 |
|
|
// On remplit le champ |
122 |
|
|
$this->byId("localite")->value("MARSEILLE"); |
123 |
|
|
// On remplit le champ |
124 |
|
|
$this->byId("code_postal")->value("13012"); |
125 |
|
|
// On remplit le champ |
126 |
|
|
$this->byId("telephone_fixe")->value("0404040404"); |
127 |
|
|
// On clique sur ajouter |
128 |
|
|
$this->byCssSelector("div#sformulaire form div.formControls input.om-button")->click();sleep(1); |
129 |
|
|
// On vérifie qu'il n'y ait pas d'erreur |
130 |
|
|
$this->verifynoerrors(); |
131 |
|
|
// On vérifie le message |
132 |
|
|
$this->assertRegExp("/^[\s\S]*Vos modifications ont bien été enregistrées.[\s\S]*$/",$this->byCssSelector("#sousform-petitionnaire .message")->text()); |
133 |
|
|
// On clique sur le bouton retour |
134 |
|
|
$this->byCssSelector("form[name=\"f2\"] > div.formControls > a.retour")->click();sleep(1); |
135 |
|
|
// On vérifie que le text est présent |
136 |
|
|
$this->assertRegExp("/^[\s\S]*DURAND MICKAEL[\s\S]*$/",$this->byCssSelector("#petitionnaire_principal_delegataire .synthese_demandeur")->text()); |
137 |
|
|
// On clique sur ajouter |
138 |
|
|
$this->byXPath("//input[@value='Ajouter']")->click(); |
139 |
|
|
// On vérifie qu'il n'y ait pas d'erreur |
140 |
|
|
$this->verifynoerrors(); |
141 |
|
|
// On vérifie le message |
142 |
|
|
$this->assertRegExp("/^[\s\S]*Création du dossier d'autorisation n°PC 013055[\s\S]*$/", $this->byCssSelector(".message")->text()); |
143 |
|
|
// On récupère le numéro du dossier |
144 |
|
|
$preg_match = preg_match('(PC.*)', $this->byCssSelector(".message")->text(), $matches); |
145 |
|
|
$dossier_autorisation = $matches[0]; |
146 |
|
|
// On clique |
147 |
|
|
$this->byCssSelector("a.lien")->click();sleep(5); |
148 |
|
|
// Liste les fenêtres |
149 |
|
|
$windows = $this->windowHandles(); |
150 |
|
|
// Change la fenêtre |
151 |
|
|
$this->window($windows[1]); |
152 |
|
|
// On vérifie qu'il n'y ait pas d'erreur |
153 |
|
|
$this->verifynoerrors(); |
154 |
|
|
// On vérifie que le text est présent |
155 |
|
|
$this->assertRegExp("/^[\s\S]*RECEPISSE DE DEPOT[\s\S]*$/",$this->source()); |
156 |
|
|
// On ferme la fenêtre |
157 |
|
|
$this->closeWindow(); |
158 |
|
|
// On change le focus de la fenêtre |
159 |
|
|
$this->window($windows[0]); |
160 |
|
|
// On clique sur le bouton retour |
161 |
|
|
$this->byLinkText("Retour")->click(); |
162 |
|
|
// On vérifie qu'il n'y ait pas d'erreur |
163 |
|
|
$this->verifynoerrors(); |
164 |
|
|
// On vérifie que le répertoire s'est crée |
165 |
|
|
$dirname = "../trs/numerisation/Todo/".str_replace(" ", "", $dossier_autorisation).".P0"; |
166 |
|
|
$this->assertTrue(file_exists($dirname)); |
167 |
|
|
// On se déconnecte |
168 |
softime |
2325 |
$this->deconnect(); |
169 |
|
|
|
170 |
softime |
2120 |
// on se connecte à l'application en tant que qualificateur |
171 |
|
|
$this->login("qualif", "qualif"); |
172 |
|
|
// On vérifie qu'il y a un dossier à qualifier |
173 |
softime |
2325 |
$this->assertRegExp("/^[\s\S]*ADS[\s\S]*$/",$this->byId("widget_15")->text()); |
174 |
softime |
2120 |
// On clique sur "Voir tous mes dossiers à qualifier" |
175 |
|
|
$this->byLinkText("Voir tous mes dossiers à qualifier")->click(); |
176 |
|
|
// On vérifie que le DI est présent |
177 |
softime |
2423 |
$this->assertContains($dossier_autorisation, $this->byId("tab-dossier_qualifier_qualificateur")->text()); |
178 |
softime |
2120 |
// On clique dessus |
179 |
softime |
2423 |
$this->byLinkText($dossier_autorisation."P0")->click(); |
180 |
softime |
2120 |
// On vérifie qu'il soit bien "à qualifer" |
181 |
|
|
$this->assertEquals("Oui", $this->byId("a_qualifier")->text()); |
182 |
|
|
// On se déconnecte |
183 |
|
|
$this->logout(); |
184 |
|
|
} |
185 |
|
|
} |
186 |
|
|
|
187 |
|
|
?> |