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

Diff of /trunk/tests/testGeneral.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4174 by nhaye, Tue May 17 13:39:26 2016 UTC revision 8397 by fmichon, Mon Dec 3 11:42:42 2018 UTC
# Line 9  Line 9 
9  /**  /**
10   * Cette classe permet de tester unitairement les fonctions de l'application.   * Cette classe permet de tester unitairement les fonctions de l'application.
11   */   */
12  class General extends PHPUnit_Framework_TestCase {  class General extends PHPUnit\Framework\TestCase {
13    
14      /**      /**
15       * Méthode lancée en début de traitement       * Méthode lancée en début de traitement
# Line 248  class General extends PHPUnit_Framework_ Line 248  class General extends PHPUnit_Framework_
248          $_SESSION['login'] = "admin";          $_SESSION['login'] = "admin";
249          $_SERVER['REQUEST_URI'] = "";          $_SERVER['REQUEST_URI'] = "";
250          $f = new utils("nohtml");          $f = new utils("nohtml");
251            $GLOBALS['f'] = $f;
252          $f->disableLog();          $f->disableLog();
253    
254          require_once "../core/om_edition.class.php";          $edition = $f->get_inst__om_edition();
         $edition = new edition();  
         $edition->f = $f;  
255          // Vérification du logo de collectivité mono dans le cas où :          // Vérification du logo de collectivité mono dans le cas où :
256          // - un logo multi actif est défini          // - un logo multi actif est défini
257          // - un logo actif pour la collectivité est défini          // - un logo actif pour la collectivité est défini
# Line 320  INSTRUCTION : <ID_INSTRUCTION>'; Line 319  INSTRUCTION : <ID_INSTRUCTION>';
319          // résultat attendu          // résultat attendu
320          $di = 'PC01';          $di = 'PC01';
321          $inst = 7;          $inst = 7;
322          $url = 'http://localhost/openads/spg/direct_link.php?obj=dossier_instruction&action=3';          $url = 'http://localhost/openads/app/index.php?module=form&direct_link=true&obj=dossier_instruction&action=3';
323          $url .= '&direct_field=dossier&direct_form=instruction&direct_action=3&direct_idx='.$inst;          $url .= '&direct_field=dossier&direct_form=instruction&direct_action=3&direct_idx='.$inst;
324          $link = '<a href="'.$url.'">'.$url.'</a>';          $link = '<a href="'.$url.'">'.$url.'</a>';
325          $expected = 'DI : '.$di.'<br/>';          $expected = 'DI : '.$di.'<br/>';
326          $expected .= 'LIEN : '.$link.'<br/>';          $expected .= 'LIEN : '.$link.'<br/>';
327          $expected .= 'INSTRUCTION : '.$inst;          $expected .= 'INSTRUCTION : '.$inst;
328          // Instance de la classe instruction          // Instance de la classe instruction
329          require_once "../obj/instruction.class.php";          $instr = $f->get_inst__om_dbform(array(
330          $instr = new instruction(']', $f->db, DEBUG);              "obj" => "instruction",
331                "idx" => "]",
332            ));
333          // Traitement          // Traitement
334          $result = $instr->formater_modele($template, $di, $inst);          $result = $instr->formater_modele($template, $di, $inst);
335          // Vérification du traitement          // Vérification du traitement
# Line 337  INSTRUCTION : <ID_INSTRUCTION>'; Line 338  INSTRUCTION : <ID_INSTRUCTION>';
338          $f->__destruct();          $f->__destruct();
339      }      }
340    
341    
342      /**      /**
343       * Teste la fonction sendMail() de la classe Utils.       * TNR du bug de champs de fusion [*_correspondant] dans la om_requete n°7 "dossier".
344         * Le test vérifie qu'une seule ligne est retournée par la requête et qu'elle contient
345         *  bien le nom du pétitionnaire principal
346       */       */
347      public function test_04_utils_sendmail() {      function test_05_TNR_om_requete_dossier() {
   
348          // Instance de la classe Utils          // Instance de la classe Utils
349          require_once "../obj/utils.class.php";          require_once "../obj/utils.class.php";
350          @session_start();          @session_start();
# Line 350  INSTRUCTION : <ID_INSTRUCTION>'; Line 353  INSTRUCTION : <ID_INSTRUCTION>';
353          $_SERVER['REQUEST_URI'] = "";          $_SERVER['REQUEST_URI'] = "";
354          $f = new utils("nohtml");          $f = new utils("nohtml");
355          $f->disableLog();          $f->disableLog();
356            $GLOBALS["f"] = $f;
357    
358          // Paramétrage          $om_requete = $f->get_inst__om_dbform(array(
359          $objet = '[openADS] Test de l\'envoi de mail';              "obj" => "om_requete",
360          $corps = 'Ne pas répondre.';              "idx" => 7,
361          $email = '[email protected]';          ));
362    
363          // Succès          // récupération de la requête SQL
364          $case_1 = $f->sendMail(          $sql = $om_requete->getVal('requete');
365              iconv('UTF-8', 'CP1252', $objet),          // remplacement des &idx par la valeur du dossier
366              iconv('UTF-8', 'CP1252', $corps),          $sql = str_replace('&idx', "AT0130551300001P0", $sql);
367              iconv('UTF-8', 'CP1252', $email));          // définition du schéma
368          $this->assertEquals(true, $case_1);          $sql = str_replace('&DB_PREFIXE', DB_PREFIXE, $sql);
369            // exécution de la requête
370          // Échec cause email invalide          $res = $f->db->query($sql);
371          $case_2 = $f->sendMail(          $f->isDatabaseError($res);
372              iconv('UTF-8', 'CP1252', $objet),          $count = $res->numRows();
373              iconv('UTF-8', 'CP1252', $corps),          // La om_requete doit retourner une seule ligne
374              iconv('UTF-8', 'CP1252', 'email_incorrect'));          $this->assertEquals(1, $count);
375          $this->assertEquals(false, $case_2);          // récupération du résultat de la om_requete
376            $values = &$res->fetchRow(DB_FETCHMODE_ASSOC);
377          // Échec cause mauvaise configuration du compte mail          // La valeur de la colonne nom_correspondant doit être le nom du pétitionnaire
378          $file_path = PATH_OPENMAIRIE.'../dyn/mail.inc.php';          // principal
379          $old_file_content = file_get_contents($file_path);          $this->assertEquals("Dupont Jean", $values['nom_correspondant']);
380          $line_password = array();          // Destruction de la classe Utils
         preg_match_all("/^.*mail_pass.*,$/m", $old_file_content, $line_password);  
         $old_line_password = $line_password[0];  
         $new_line_password = '    \'mail_pass\' => \'1234\',';  
         $new_file_content = str_replace($old_line_password, $new_line_password, $old_file_content);  
         // Reconfiguration incorrecte pour ce test  
         file_put_contents($file_path, $new_file_content);  
         $f->__destruct();  
         $f = new utils("nohtml");  
         $f->disableLog();  
         // Tentative d'envoi  
         $case_3 = $f->sendMail(  
             iconv('UTF-8', 'CP1252', $objet),  
             iconv('UTF-8', 'CP1252', $corps),  
             iconv('UTF-8', 'CP1252', $email));  
         // Reconfiguration valide pour la suite des tests  
         file_put_contents($file_path, $old_file_content);  
381          $f->__destruct();          $f->__destruct();
382        }
383    
384        /**
385         * TNR de la methode factorisé de création de dossier_message
386         */
387        function test_06_TNR_dossier_message() {
388            // Instanciation de tout les requis
389            require_once "../obj/utils.class.php";
390            @session_start();
391            $_SESSION['collectivite'] = 2;
392            $_SESSION['login'] = "admin";
393            $_SERVER['REQUEST_URI'] = "";
394          $f = new utils("nohtml");          $f = new utils("nohtml");
395          $f->disableLog();          $f->disableLog();
396          // Vérification          $GLOBALS["f"] = $f;
397          $this->assertEquals(false, $case_3);          $dossier_message_factory = $f->get_inst__om_dbform(array(
398                "obj" => "dossier_message",
399                "idx" => 0,
400            ));
401            $dossier_message_val = array();
402    
403            $dossier_message_val['contenu'] = 'Test Success';
404            $dossier_message_val['dossier'] = 'AT0130551200001P0';
405            $dossier_message_val['type'] = _('Ajout de pièce(s)');
406            $dossier_message_val['emetteur'] = 'instr';
407            $dossier_message_val['login'] = 'instr';
408            $dossier_message_val['date_emission'] = date('Y-m-d H:i:s');
409            $add = $dossier_message_factory->add_notification_message($dossier_message_val);
410            $this->assertEquals(true, $add);
411            $this->assertEquals(true, isset($dossier_message_factory->valF[$dossier_message_factory->clePrimaire]));
412            $dossier_message = $f->get_inst__om_dbform(array(
413                "obj" => "dossier_message",
414                "idx" => $dossier_message_factory->valF[$dossier_message_factory->clePrimaire],
415            ));
416            $this->assertEquals($dossier_message_val['dossier'], $dossier_message->getVal('dossier'));
417            $this->assertEquals('t', $dossier_message->getVal('lu'));
418            
419            $dossier_message_val['contenu'] = 'Test Duplicata';
420            $add = $dossier_message_factory->add_notification_message($dossier_message_val);
421            $this->assertEquals(true, $add);
422                    
423            $dossier_message_val['contenu'] = 'Test nouveau type même dossier';
424            $dossier_message_val['type'] = _('Autorisation contestée');
425            $add = $dossier_message_factory->add_notification_message($dossier_message_val);
426            $this->assertEquals(true, $add);
427            
428            $dossier_message_val['contenu'] = 'Test message non lu';
429            $dossier_message_val['dossier'] = 'AZ0130551200001P0';
430            $dossier_message_val['emetteur'] = $f->get_connected_user_login_name();
431            $dossier_message_val['login'] = $_SESSION['login'];
432            $add = $dossier_message_factory->add_notification_message($dossier_message_val);
433            $this->assertEquals(true, $add);
434            $dossier_message = $f->get_inst__om_dbform(array(
435                "obj" => "dossier_message",
436                "idx" => $dossier_message_factory->valF[$dossier_message_factory->clePrimaire],
437            ));
438            $this->assertEquals('f', $dossier_message->getVal('lu'));
439    
440          // Destruction de la classe Utils          // Destruction de la classe Utils
441          $f->__destruct();          $f->__destruct();
442      }      }
443    
444    
445  }  }
446    
447  ?>  ?>

Legend:
Removed from v.4174  
changed lines
  Added in v.8397

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26