/[openfoncier]/branches/5.5.0-develop/tests/testGeneral_common.php
ViewVC logotype

Annotation of /branches/5.5.0-develop/tests/testGeneral_common.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9282 - (hide annotations)
Fri Apr 10 16:44:23 2020 UTC (4 years, 9 months ago) by softime
Original Path: trunk/tests/testGeneral_common.php
File size: 14505 byte(s)
* Merge de la branche de développement compat-php dans le trunk

1 fmichon 9227 <?php
2     /**
3     * Ce script contient la définition de la classe 'GeneralCommon'.
4     *
5     * @package openads
6     * @version SVN : $Id$
7     */
8    
9 softime 9282 require_once "../tests/resources/omtestcase.class.php";
10    
11 fmichon 9227 /**
12     * Cette classe permet de tester unitairement les fonctions de l'application.
13     */
14 softime 9282 abstract class GeneralCommon extends OMTestCase {
15 fmichon 9227
16     /**
17     * Méthode lancée en fin de traitement
18     */
19     public function common_tearDown() {
20 softime 9282 parent::common_tearDown();
21     //
22     $this->clean_session();
23 fmichon 9227 }
24    
25     /**
26     * Test la fonction mois_date() de la classe Utils.
27     */
28     public function test_01_utils_mois_date() {
29 softime 9282 // Instanciation de la classe *om_application*
30     $f = $this->get_inst_om_application();
31 fmichon 9227 $f->disableLog();
32     // Avec des mois
33    
34     // Pour les additions
35     // Initialisation des tableaux
36     $tab_date_dep = array();
37     $tab_delay = array();
38     $tab_date_fin = array();
39    
40     // Tableau des date de départ
41     $tab_date_dep = array(
42     0 => "2013-12-31",
43     1 => "2014-01-31",
44     2 => "2014-01-01",
45     3 => "2014-01-31",
46     4 => "2015-12-31",
47     5 => "",
48     6 => "",
49     7 => "",
50     8 => "2015-12-31",
51     9 => "2015-12-31",
52     10 => "openADS",
53     11 => "openADS",
54     12 => "openADS",
55     );
56     // Tableau des delais
57     $tab_delay = array(
58     0 => "2",
59     1 => "5",
60     2 => "12",
61     3 => "27",
62     4 => "2",
63     5 => "2",
64     6 => "openads",
65     7 => "",
66     8 => "openADS",
67     9 => "",
68     10 => "2",
69     11 => "openads",
70     12 => "",
71     );
72     // Tableau des date résultat
73     $tab_date_fin = array(
74     0 => "2014-02-28",
75     1 => "2014-06-30",
76     2 => "2015-01-01",
77     3 => "2016-04-30",
78     4 => "2016-02-29",
79     5 => null,
80     6 => null,
81     7 => null,
82     8 => "2015-12-31",
83     9 => "2015-12-31",
84     10 => null,
85     11 => null,
86     12 => null,
87     );
88    
89     // Pour chaque date
90     foreach ($tab_date_dep as $key => $date_dep) {
91     // Calcul la date résultat
92     $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "+");
93     // Vérifie que la date résultat est correct
94     $this->assertEquals($date_fin, $tab_date_fin[$key]);
95     }
96    
97     // Pour les soustractions
98     // Initialisation des tableaux
99     $tab_date_dep = array();
100     $tab_delay = array();
101     $tab_date_fin = array();
102    
103     // Tableau des date de départ
104     $tab_date_dep = array(
105     0 => "2014-01-31",
106     );
107     // Tableau des delais
108     $tab_delay = array(
109     0 => "4",
110     );
111     // Tableau des date résultat
112     $tab_date_fin = array(
113     0 => "2013-09-30",
114     );
115    
116     // Pour chaque date
117     foreach ($tab_date_dep as $key => $date_dep) {
118     // Calcul la date résultat
119     $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "-");
120     // Vérifie que la date résultat est correct
121     $this->assertEquals($date_fin, $tab_date_fin[$key]);
122     }
123    
124     // Avec des jours
125    
126     // Pour les additions
127     // Initialisation des tableaux
128     $tab_date_dep = array();
129     $tab_delay = array();
130     $tab_date_fin = array();
131    
132     // Tableau des date de départ
133     $tab_date_dep = array(
134     0 => "2013-12-31",
135     1 => "2014-01-31",
136     2 => "2014-01-01",
137     3 => "2014-01-31",
138     4 => "2015-12-31",
139     5 => "",
140     6 => "",
141     7 => "",
142     8 => "2015-12-31",
143     9 => "2015-12-31",
144     10 => "openADS",
145     11 => "openADS",
146     12 => "openADS",
147     );
148     // Tableau des delais
149     $tab_delay = array(
150     0 => "2",
151     1 => "5",
152     2 => "12",
153     3 => "27",
154     4 => "2",
155     5 => "2",
156     6 => "openads",
157     7 => "",
158     8 => "openADS",
159     9 => "",
160     10 => "2",
161     11 => "openads",
162     12 => "",
163     );
164     // Tableau des dates résultats
165     $tab_date_fin = array(
166     0 => "2014-01-02",
167     1 => "2014-02-05",
168     2 => "2014-01-13",
169     3 => "2014-02-27",
170     4 => "2016-01-02",
171     5 => null,
172     6 => null,
173     7 => null,
174     8 => "2015-12-31",
175     9 => "2015-12-31",
176     10 => null,
177     11 => null,
178     12 => null,
179     );
180    
181     // Pour chaque date
182     foreach ($tab_date_dep as $key => $date_dep) {
183     // Calcul la date résultat
184     $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "+", "jour");
185     // Vérifie que la date résultat est correct
186     $this->assertEquals($date_fin, $tab_date_fin[$key]);
187     }
188    
189     // Pour les soustractions
190     // Initialisation des tableaux
191     $tab_date_dep = array();
192     $tab_delay = array();
193     $tab_date_fin = array();
194    
195     // Tableau des date de départ
196     $tab_date_dep = array(
197     0 => "2014-01-31",
198     );
199     // Tableau des delais
200     $tab_delay = array(
201     0 => "4",
202     );
203     // Tableau des date résultat
204     $tab_date_fin = array(
205     0 => "2014-01-27",
206     );
207    
208     // Pour chaque date
209     foreach ($tab_date_dep as $key => $date_dep) {
210     // Calcul la date résultat
211     $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "-", "jour");
212     // Vérifie que la date résultat est correct
213     $this->assertEquals($date_fin, $tab_date_fin[$key]);
214     }
215 softime 9282 // Destruction de la classe *om_application*
216 fmichon 9227 $f->__destruct();
217     }
218    
219    
220     /**
221     * Vérification de la méthode permettant de selectionner le logo de la bonne
222     * collectivité.
223     */
224     function test_02_TNR_selection_du_logo_dans_les_editions() {
225 softime 9282 // Instanciation de la classe *om_application*
226     $f = $this->get_inst_om_application();
227 fmichon 9227 $f->disableLog();
228 softime 9282 //
229 fmichon 9227 $edition = $f->get_inst__om_edition();
230     // Vérification du logo de collectivité mono dans le cas où :
231     // - un logo multi actif est défini
232     // - un logo actif pour la collectivité est défini
233     $logo = $edition->get_logo_from_collectivite("logopdf.png", 2);
234     // XXX le double // dans le path est nécessaire
235     $logo_valid = array(
236     "file" => "../var/filestorage//88/8815/88154c6f68d3a0e1928c84fc0187993d",
237     "w" => 43.349333333333334,
238     "h" => 43.349333333333334,
239     "type" => "png",
240     );
241     // Le logo commune doit être retourné par la méthode
242     $this->assertEquals($logo, $logo_valid);
243    
244     // Désactivation du logo de la commune
245     $val_logo["actif"] = 'f';
246     $f->db->autoExecute(DB_PREFIXE."om_logo", $val_logo, DB_AUTOQUERY_UPDATE, "om_logo=2");
247    
248     // Vérification du logo de collectivité mono dans le cas où :
249     // - un logo multi actif est défini
250     // - un logo la collectivité est inactif
251     $logo = $edition->get_logo_from_collectivite("logopdf.png", 1);
252     // XXX le double // dans le path est nécessaire
253     $logo_valid = array(
254     "file" => "../var/filestorage//d2/d20a/d20a5c36d3b83464bab63035a7f61901",
255     "w" => 43.349333333333334,
256     "h" => 43.349333333333334,
257     "type" => "png",
258     );
259     // Le logo de la collectivité multi doit être retourné
260     $this->assertEquals($logo, $logo_valid);
261    
262     // Désactivation du logo de la commune
263     $val_logo["actif"] = 'f';
264     $f->db->autoExecute(DB_PREFIXE."om_logo", $val_logo, DB_AUTOQUERY_UPDATE, "om_logo=6");
265    
266     // Vérification du logo de collectivité mono dans le cas où aucun logo
267     // n'est activé
268     $logo = $edition->get_logo_from_collectivite("logopdf.png", 1);
269     $logo_valid = null;
270     // Un valeur null doit être retournée
271     $this->assertEquals($logo, $logo_valid);
272 softime 9282 // Destruction de la classe *om_application*
273 fmichon 9227 $f->__destruct();
274     }
275    
276     /**
277     * Vérification de la méthode permettant de formater le corps du courriel
278     * notifié aux communes.
279     */
280     function test_03_instruction_formater_modele() {
281 softime 9282 // Instanciation de la classe *om_application*
282     $f = $this->get_inst_om_application();
283 fmichon 9227 $f->disableLog();
284     // template du modèle
285     $template = 'DI : <DOSSIER_INSTRUCTION>
286     LIEN : <URL_INSTRUCTION>
287     INSTRUCTION : <ID_INSTRUCTION>';
288     // résultat attendu
289     $di = 'PC01';
290     $inst = 7;
291     $url = 'http://localhost/openads/app/index.php?module=form&direct_link=true&obj=dossier_instruction&action=3';
292     $url .= '&direct_field=dossier&direct_form=instruction&direct_action=3&direct_idx='.$inst;
293     $link = '<a href="'.$url.'">'.$url.'</a>';
294     $expected = 'DI : '.$di.'<br/>';
295     $expected .= 'LIEN : '.$link.'<br/>';
296     $expected .= 'INSTRUCTION : '.$inst;
297     // Instance de la classe instruction
298     $instr = $f->get_inst__om_dbform(array(
299     "obj" => "instruction",
300     "idx" => "]",
301     ));
302     // Traitement
303     $result = $instr->formater_modele($template, $di, $inst);
304     // Vérification du traitement
305 softime 9282 $this->assertEquals($expected, $result, "Les modèles sont différents.");
306     // Destruction de la classe *om_application*
307 fmichon 9227 $f->__destruct();
308     }
309    
310    
311     /**
312     * TNR du bug de champs de fusion [*_correspondant] dans la om_requete n°7 "dossier".
313     * Le test vérifie qu'une seule ligne est retournée par la requête et qu'elle contient
314     * bien le nom du pétitionnaire principal
315     */
316     function test_05_TNR_om_requete_dossier() {
317 softime 9282 // Instanciation de la classe *om_application*
318     $f = $this->get_inst_om_application("admin", "admin");
319     $this->assertTrue($f->authenticated, "Erreur d'authentification.");
320 fmichon 9227 $f->disableLog();
321 softime 9282 //
322 fmichon 9227 $om_requete = $f->get_inst__om_dbform(array(
323     "obj" => "om_requete",
324     "idx" => 7,
325     ));
326    
327     // récupération de la requête SQL
328     $sql = $om_requete->getVal('requete');
329     // remplacement des &idx par la valeur du dossier
330     $sql = str_replace('&idx', "AT0130551300001P0", $sql);
331     // définition du schéma
332     $sql = str_replace('&DB_PREFIXE', DB_PREFIXE, $sql);
333     // exécution de la requête
334     $res = $f->db->query($sql);
335 softime 9282 $ret = $f->isDatabaseError($res, true);
336     $this->assertEquals($ret, false, "Erreur de base de données");
337     if ($ret !== false) {
338     // Destruction de la classe *om_application*
339     $f->__destruct();
340     return;
341     }
342 fmichon 9227 $count = $res->numRows();
343     // La om_requete doit retourner une seule ligne
344     $this->assertEquals(1, $count);
345     // récupération du résultat de la om_requete
346     $values = &$res->fetchRow(DB_FETCHMODE_ASSOC);
347     // La valeur de la colonne nom_correspondant doit être le nom du pétitionnaire
348     // principal
349     $this->assertEquals("Dupont Jean", $values['nom_correspondant']);
350 softime 9282 // Destruction de la classe *om_application*
351 fmichon 9227 $f->__destruct();
352     }
353    
354     /**
355     * TNR de la methode factorisé de création de dossier_message
356     */
357     function test_06_TNR_dossier_message() {
358 softime 9282 // Instanciation de la classe *om_application*
359     $f = $this->get_inst_om_application("adminfonct", "adminfonct");
360     $this->assertTrue($f->authenticated, "Erreur d'authentification.");
361 fmichon 9227 $f->disableLog();
362 softime 9282 // Instanciation de la classe *dossier_message*
363 fmichon 9227 $dossier_message_factory = $f->get_inst__om_dbform(array(
364     "obj" => "dossier_message",
365     "idx" => 0,
366     ));
367     $dossier_message_val = array();
368    
369     $dossier_message_val['contenu'] = 'Test Success';
370     $dossier_message_val['dossier'] = 'AT0130551200001P0';
371     $dossier_message_val['type'] = _('Ajout de pièce(s)');
372     $dossier_message_val['emetteur'] = 'instr';
373     $dossier_message_val['login'] = 'instr';
374     $dossier_message_val['date_emission'] = date('Y-m-d H:i:s');
375     $add = $dossier_message_factory->add_notification_message($dossier_message_val);
376     $this->assertEquals(true, $add);
377     $this->assertEquals(true, isset($dossier_message_factory->valF[$dossier_message_factory->clePrimaire]));
378     $dossier_message = $f->get_inst__om_dbform(array(
379     "obj" => "dossier_message",
380     "idx" => $dossier_message_factory->valF[$dossier_message_factory->clePrimaire],
381     ));
382     $this->assertEquals($dossier_message_val['dossier'], $dossier_message->getVal('dossier'));
383     $this->assertEquals('t', $dossier_message->getVal('lu'));
384    
385     $dossier_message_val['contenu'] = 'Test Duplicata';
386     $add = $dossier_message_factory->add_notification_message($dossier_message_val);
387     $this->assertEquals(true, $add);
388    
389     $dossier_message_val['contenu'] = 'Test nouveau type même dossier';
390     $dossier_message_val['type'] = _('Autorisation contestée');
391     $add = $dossier_message_factory->add_notification_message($dossier_message_val);
392     $this->assertEquals(true, $add);
393    
394     $dossier_message_val['contenu'] = 'Test message non lu';
395     $dossier_message_val['dossier'] = 'AZ0130551200001P0';
396     $dossier_message_val['emetteur'] = $f->get_connected_user_login_name();
397     $dossier_message_val['login'] = $_SESSION['login'];
398     $add = $dossier_message_factory->add_notification_message($dossier_message_val);
399     $this->assertEquals(true, $add);
400     $dossier_message = $f->get_inst__om_dbform(array(
401     "obj" => "dossier_message",
402     "idx" => $dossier_message_factory->valF[$dossier_message_factory->clePrimaire],
403     ));
404     $this->assertEquals('f', $dossier_message->getVal('lu'));
405 softime 9282 // Destruction de la classe *om_application*
406 fmichon 9227 $f->__destruct();
407     }
408     }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26