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

Contents of /trunk/tests/testGeneral.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4174 - (show annotations)
Tue May 17 13:39:26 2016 UTC (8 years, 8 months ago) by nhaye
File size: 13040 byte(s)
Merge avec la branche de changement de collectivité agglo et modification de la synchro des contraintes

1 <?php
2 /**
3 * Ce fichier regroupe les tests unitaire général à l'application OpenADS
4 *
5 * @package openfoncier
6 * @version SVN : $Id: testGeneral.php 5673 2015-12-21 19:35:24Z nmeucci $
7 */
8
9 /**
10 * Cette classe permet de tester unitairement les fonctions de l'application.
11 */
12 class General extends PHPUnit_Framework_TestCase {
13
14 /**
15 * Méthode lancée en début de traitement
16 */
17 public function setUp() {
18
19 // Instancie la timezone
20 date_default_timezone_set('Europe/Paris');
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 * Méthode lancée en fin de traitement
31 */
32 public function tearDown() {
33
34 //
35 }
36
37 /**
38 * Test la fonction mois_date() de la classe Utils.
39 */
40 public function test_01_utils_mois_date() {
41 // Instance de la classe Utils
42 require_once "../obj/utils.class.php";
43 @session_start();
44 $_SESSION['collectivite'] = 1;
45 $_SESSION['login'] = "admin";
46 $_SERVER['REQUEST_URI'] = "";
47 $f = new utils("nohtml");
48 $f->disableLog();
49
50 // Avec des mois
51
52 // Pour les additions
53 // Initialisation des tableaux
54 $tab_date_dep = array();
55 $tab_delay = array();
56 $tab_date_fin = array();
57
58 // Tableau des date de départ
59 $tab_date_dep = array(
60 0 => "2013-12-31",
61 1 => "2014-01-31",
62 2 => "2014-01-01",
63 3 => "2014-01-31",
64 4 => "2015-12-31",
65 5 => "",
66 6 => "",
67 7 => "",
68 8 => "2015-12-31",
69 9 => "2015-12-31",
70 10 => "openADS",
71 11 => "openADS",
72 12 => "openADS",
73 );
74 // Tableau des delais
75 $tab_delay = array(
76 0 => "2",
77 1 => "5",
78 2 => "12",
79 3 => "27",
80 4 => "2",
81 5 => "2",
82 6 => "openads",
83 7 => "",
84 8 => "openADS",
85 9 => "",
86 10 => "2",
87 11 => "openads",
88 12 => "",
89 );
90 // Tableau des date résultat
91 $tab_date_fin = array(
92 0 => "2014-02-28",
93 1 => "2014-06-30",
94 2 => "2015-01-01",
95 3 => "2016-04-30",
96 4 => "2016-02-29",
97 5 => null,
98 6 => null,
99 7 => null,
100 8 => "2015-12-31",
101 9 => "2015-12-31",
102 10 => null,
103 11 => null,
104 12 => null,
105 );
106
107 // Pour chaque date
108 foreach ($tab_date_dep as $key => $date_dep) {
109 // Calcul la date résultat
110 $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "+");
111 // Vérifie que la date résultat est correct
112 $this->assertEquals($date_fin, $tab_date_fin[$key]);
113 }
114
115 // Pour les soustractions
116 // Initialisation des tableaux
117 $tab_date_dep = array();
118 $tab_delay = array();
119 $tab_date_fin = array();
120
121 // Tableau des date de départ
122 $tab_date_dep = array(
123 0 => "2014-01-31",
124 );
125 // Tableau des delais
126 $tab_delay = array(
127 0 => "4",
128 );
129 // Tableau des date résultat
130 $tab_date_fin = array(
131 0 => "2013-09-30",
132 );
133
134 // Pour chaque date
135 foreach ($tab_date_dep as $key => $date_dep) {
136 // Calcul la date résultat
137 $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "-");
138 // Vérifie que la date résultat est correct
139 $this->assertEquals($date_fin, $tab_date_fin[$key]);
140 }
141
142 // Avec des jours
143
144 // Pour les additions
145 // Initialisation des tableaux
146 $tab_date_dep = array();
147 $tab_delay = array();
148 $tab_date_fin = array();
149
150 // Tableau des date de départ
151 $tab_date_dep = array(
152 0 => "2013-12-31",
153 1 => "2014-01-31",
154 2 => "2014-01-01",
155 3 => "2014-01-31",
156 4 => "2015-12-31",
157 5 => "",
158 6 => "",
159 7 => "",
160 8 => "2015-12-31",
161 9 => "2015-12-31",
162 10 => "openADS",
163 11 => "openADS",
164 12 => "openADS",
165 );
166 // Tableau des delais
167 $tab_delay = array(
168 0 => "2",
169 1 => "5",
170 2 => "12",
171 3 => "27",
172 4 => "2",
173 5 => "2",
174 6 => "openads",
175 7 => "",
176 8 => "openADS",
177 9 => "",
178 10 => "2",
179 11 => "openads",
180 12 => "",
181 );
182 // Tableau des dates résultats
183 $tab_date_fin = array(
184 0 => "2014-01-02",
185 1 => "2014-02-05",
186 2 => "2014-01-13",
187 3 => "2014-02-27",
188 4 => "2016-01-02",
189 5 => null,
190 6 => null,
191 7 => null,
192 8 => "2015-12-31",
193 9 => "2015-12-31",
194 10 => null,
195 11 => null,
196 12 => null,
197 );
198
199 // Pour chaque date
200 foreach ($tab_date_dep as $key => $date_dep) {
201 // Calcul la date résultat
202 $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "+", "jour");
203 // Vérifie que la date résultat est correct
204 $this->assertEquals($date_fin, $tab_date_fin[$key]);
205 }
206
207 // Pour les soustractions
208 // Initialisation des tableaux
209 $tab_date_dep = array();
210 $tab_delay = array();
211 $tab_date_fin = array();
212
213 // Tableau des date de départ
214 $tab_date_dep = array(
215 0 => "2014-01-31",
216 );
217 // Tableau des delais
218 $tab_delay = array(
219 0 => "4",
220 );
221 // Tableau des date résultat
222 $tab_date_fin = array(
223 0 => "2014-01-27",
224 );
225
226 // Pour chaque date
227 foreach ($tab_date_dep as $key => $date_dep) {
228 // Calcul la date résultat
229 $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "-", "jour");
230 // Vérifie que la date résultat est correct
231 $this->assertEquals($date_fin, $tab_date_fin[$key]);
232 }
233
234 // Destruction de la classe Utils
235 $f->__destruct();
236 }
237
238
239 /**
240 * Vérification de la méthode permettant de selectionner le logo de la bonne
241 * collectivité.
242 */
243 function test_02_TNR_selection_du_logo_dans_les_editions() {
244 // Instance de la classe Utils
245 require_once "../obj/utils.class.php";
246 @session_start();
247 $_SESSION['collectivite'] = 1;
248 $_SESSION['login'] = "admin";
249 $_SERVER['REQUEST_URI'] = "";
250 $f = new utils("nohtml");
251 $f->disableLog();
252
253 require_once "../core/om_edition.class.php";
254 $edition = new edition();
255 $edition->f = $f;
256 // Vérification du logo de collectivité mono dans le cas où :
257 // - un logo multi actif est défini
258 // - un logo actif pour la collectivité est défini
259 $logo = $edition->get_logo_from_collectivite("logopdf.png", 2);
260 // XXX le double // dans le path est nécessaire
261 $logo_valid = array(
262 "file" => "../var/filestorage//88/8815/88154c6f68d3a0e1928c84fc0187993d",
263 "w" => 43.349333333333334,
264 "h" => 43.349333333333334,
265 "type" => "png",
266 );
267 // Le logo commune doit être retourné par la méthode
268 $this->assertEquals($logo, $logo_valid);
269
270 // Désactivation du logo de la commune
271 $val_logo["actif"] = 'f';
272 $f->db->autoExecute(DB_PREFIXE."om_logo", $val_logo, DB_AUTOQUERY_UPDATE, "om_logo=2");
273
274 // Vérification du logo de collectivité mono dans le cas où :
275 // - un logo multi actif est défini
276 // - un logo la collectivité est inactif
277 $logo = $edition->get_logo_from_collectivite("logopdf.png", 1);
278 // XXX le double // dans le path est nécessaire
279 $logo_valid = array(
280 "file" => "../var/filestorage//d2/d20a/d20a5c36d3b83464bab63035a7f61901",
281 "w" => 43.349333333333334,
282 "h" => 43.349333333333334,
283 "type" => "png",
284 );
285 // Le logo de la collectivité multi doit être retourné
286 $this->assertEquals($logo, $logo_valid);
287
288 // Désactivation du logo de la commune
289 $val_logo["actif"] = 'f';
290 $f->db->autoExecute(DB_PREFIXE."om_logo", $val_logo, DB_AUTOQUERY_UPDATE, "om_logo=6");
291
292 // Vérification du logo de collectivité mono dans le cas où aucun logo
293 // n'est activé
294 $logo = $edition->get_logo_from_collectivite("logopdf.png", 1);
295 $logo_valid = null;
296 // Un valeur null doit être retournée
297 $this->assertEquals($logo, $logo_valid);
298 // Destruction de la classe Utils
299 $f->__destruct();
300 }
301
302 /**
303 * Vérification de la méthode permettant de formater le corps du courriel
304 * notifié aux communes.
305 */
306 function test_03_instruction_formater_modele() {
307 // Instance de la classe Utils
308 require_once "../obj/utils.class.php";
309 @session_start();
310 $_SESSION['collectivite'] = 1;
311 $_SESSION['login'] = "admin";
312 $_SERVER['REQUEST_URI'] = "";
313 $f = new utils("nohtml");
314 $f->disableLog();
315 $GLOBALS["f"] = $f;
316 // template du modèle
317 $template = 'DI : <DOSSIER_INSTRUCTION>
318 LIEN : <URL_INSTRUCTION>
319 INSTRUCTION : <ID_INSTRUCTION>';
320 // résultat attendu
321 $di = 'PC01';
322 $inst = 7;
323 $url = 'http://localhost/openads/spg/direct_link.php?obj=dossier_instruction&action=3';
324 $url .= '&direct_field=dossier&direct_form=instruction&direct_action=3&direct_idx='.$inst;
325 $link = '<a href="'.$url.'">'.$url.'</a>';
326 $expected = 'DI : '.$di.'<br/>';
327 $expected .= 'LIEN : '.$link.'<br/>';
328 $expected .= 'INSTRUCTION : '.$inst;
329 // Instance de la classe instruction
330 require_once "../obj/instruction.class.php";
331 $instr = new instruction(']', $f->db, DEBUG);
332 // Traitement
333 $result = $instr->formater_modele($template, $di, $inst);
334 // Vérification du traitement
335 $this->assertEquals($expected, $result);
336 // Destruction de la classe Utils
337 $f->__destruct();
338 }
339
340 /**
341 * Teste la fonction sendMail() de la classe Utils.
342 */
343 public function test_04_utils_sendmail() {
344
345 // Instance de la classe Utils
346 require_once "../obj/utils.class.php";
347 @session_start();
348 $_SESSION['collectivite'] = 1;
349 $_SESSION['login'] = "admin";
350 $_SERVER['REQUEST_URI'] = "";
351 $f = new utils("nohtml");
352 $f->disableLog();
353
354 // Paramétrage
355 $objet = '[openADS] Test de l\'envoi de mail';
356 $corps = 'Ne pas répondre.';
357 $email = '[email protected]';
358
359 // Succès
360 $case_1 = $f->sendMail(
361 iconv('UTF-8', 'CP1252', $objet),
362 iconv('UTF-8', 'CP1252', $corps),
363 iconv('UTF-8', 'CP1252', $email));
364 $this->assertEquals(true, $case_1);
365
366 // Échec cause email invalide
367 $case_2 = $f->sendMail(
368 iconv('UTF-8', 'CP1252', $objet),
369 iconv('UTF-8', 'CP1252', $corps),
370 iconv('UTF-8', 'CP1252', 'email_incorrect'));
371 $this->assertEquals(false, $case_2);
372
373 // Échec cause mauvaise configuration du compte mail
374 $file_path = PATH_OPENMAIRIE.'../dyn/mail.inc.php';
375 $old_file_content = file_get_contents($file_path);
376 $line_password = array();
377 preg_match_all("/^.*mail_pass.*,$/m", $old_file_content, $line_password);
378 $old_line_password = $line_password[0];
379 $new_line_password = ' \'mail_pass\' => \'1234\',';
380 $new_file_content = str_replace($old_line_password, $new_line_password, $old_file_content);
381 // Reconfiguration incorrecte pour ce test
382 file_put_contents($file_path, $new_file_content);
383 $f->__destruct();
384 $f = new utils("nohtml");
385 $f->disableLog();
386 // Tentative d'envoi
387 $case_3 = $f->sendMail(
388 iconv('UTF-8', 'CP1252', $objet),
389 iconv('UTF-8', 'CP1252', $corps),
390 iconv('UTF-8', 'CP1252', $email));
391 // Reconfiguration valide pour la suite des tests
392 file_put_contents($file_path, $old_file_content);
393 $f->__destruct();
394 $f = new utils("nohtml");
395 $f->disableLog();
396 // Vérification
397 $this->assertEquals(false, $case_3);
398 // Destruction de la classe Utils
399 $f->__destruct();
400 }
401
402 }
403
404 ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26