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

Annotation of /trunk/tests/testGeneral.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4138 - (hide annotations)
Thu May 12 14:04:21 2016 UTC (8 years, 8 months ago) by fmichon
File size: 13040 byte(s)
* Merge de la branche : notification par message lors de l'ajout d'une pièce numérisée

1 mbroquet 3730 <?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", 1);
260 fmichon 4074 // XXX le double // dans le path est nécessaire
261 mbroquet 3730 $logo_valid = array(
262 fmichon 4073 "file" => "../var/filestorage//88/8815/88154c6f68d3a0e1928c84fc0187993d",
263 mbroquet 3730 "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 fmichon 4074 // XXX le double // dans le path est nécessaire
279 mbroquet 3730 $logo_valid = array(
280 fmichon 4073 "file" => "../var/filestorage//d2/d20a/d20a5c36d3b83464bab63035a7f61901",
281 mbroquet 3730 "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 nmeucci 4108 /**
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 nmeucci 4112
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 fmichon 4138
402 mbroquet 3730 }
403    
404     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26