/[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 2785 by fmichon, Thu Sep 5 16:30:05 2013 UTC revision 2786 by softime, Tue Mar 4 15:37:20 2014 UTC
# Line 1  Line 1 
1  <?php  <?php
2  /**  /**
3   *   * Ce fichier regroupe les tests unitaire général à l'application OpenADS
4   *   *
5   * @package openfoncier   * @package openfoncier
6   * @version SVN : $Id$   * @version SVN : $Id$
7   */   */
8    
 //  
 require_once "base.php";  
   
9  /**  /**
10   * Cette classe représente un testcase (thème) général qui contient des tests   * Cette classe permet de tester unitairement les fonctions de l'application.
  * (fonctionnalités).  
11   */   */
12  class General extends Base2TestCase {  class General extends PHPUnit_Framework_TestCase {
13    
14      /**      /**
15       * Ce test permet de vérifier qu'aucune requête mémorisée reqmo du menu       * Méthode lancée en début de traitement
      * "Export" -> "Requêtes mémorisées" ne produit d'erreur de base de données.  
16       */       */
17      public function test_92_verifier_tous_les_exports_reqmo_inc() {      public function setUp() {
18          // On récupère la liste des objets à traiter  
19          $reqmos = $this->get_list_of_files_in_sql_pgsql("reqmo");          // Instancie la timezone
20          // On se connecte en tant que "admin"          date_default_timezone_set('Europe/Paris');
         $this->login("admin", "admin");  
   
         // On clique sur la rubrique Export du menu  
         //$this->byCssSelector("#menu li.rubrik a.edition-20")->click();  
         // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché  
         //$this->verifynoerrors();  
         // On clique sur l'élément Requêtes mémorisées dans le menu  
         //$this->byCssSelector("#menu li.elem a.reqmo-16")->click();  
           
         // On ouvre les reqmo par le lien car le menu n'est pas affiché  
         $this->url("openads/scr/reqmo.php");  
         // On vérifie qu'il n'y a pas d'erreur sur l'élément affiché  
         $this->verifynoerrors();  
         // On boucle sur les requêtes mémorisées disponibles ( *.reqmo.inc.php )  
         foreach ($reqmos as $reqmo) {  
             // On clique sur le lien qui correspond à la requête mémorisée  
             $this->byCssSelector("#reqmo a.reqmo-16[href=\"../scr/requeteur.php?obj=".$reqmo["file"]."\"]")->click();  
             // On vérifie qu'il n'y ait pas d'erreur  
             $this->verifynoerrors();  
             // On valide le formulaire  
             $this->byName("valid.reqmo")->click();  
             // On vérifie qu'il n'y ait pas d'erreur  
             $this->verifynoerrors();  
             // On clique sur le bouton retour  
             $this->byCssSelector("a.retour")->click();  
             // On clique sur le bouton retour  
             $this->byCssSelector("a.retour")->click();  
         }  
         // On se déconnecte  
         $this->logout();  
21      }      }
22    
     // {{{ Fonctions utilitaires pour le fonctionnement des tests  
       
23      /**      /**
24       * Cette méthode permet de récupérer un tableau contentant la liste des       * Méthode lancée en fin de traitement
      * fichiers présents dans le dossier sql/pgsql. En fonction du paramètre  
      * passé la liste concerne les fichiers *.pdf.inc.php soit les fichiers  
      * *.reqmo.inc.php.  
25       */       */
26      private function get_list_of_files_in_sql_pgsql($type = NULL) {      public function tearDown() {
27            
28          //          //
29          if (is_null($type) || !in_array($type, array("pdf", "reqmo",))) {      }
30              //  
31              return array();      /**
32         * Test la fonction mois_date() de la classe Utils.
33         */
34        public function test_utils_mois_date() {
35            // Instance de la classe Utils
36            require_once "../obj/utils.class.php";
37            $_SESSION['collectivite'] = 1;
38            $_SESSION['login'] = "admin";
39            $_SERVER['REQUEST_URI'] = "";
40            $f = new utils("nohtml");
41    
42            // Pour les additions
43            // Initialisation des tableaux
44            $tab_date_dep = array();
45            $tab_delay = array();
46            $tab_date_fin = array();
47            
48            // Tableau des date de départ
49            $tab_date_dep = array(
50                0 => "2013-12-31",
51                1 => "2014-01-31",
52                2 => "2014-01-01",
53                3 => "2014-01-31",
54                4 => "2015-12-31",
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            );
64            // Tableau des date résultat
65            $tab_date_fin = array(
66                0 => "2014-02-28",
67                1 => "2014-06-30",
68                2 => "2015-01-01",
69                3 => "2016-04-30",
70                4 => "2016-02-29",
71            );
72    
73            // Pour chaque date
74            foreach ($tab_date_dep as $key => $date_dep) {
75                // Calcul la date résultat
76                $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "+");
77                // Vérifie que la date résultat est correct
78                $this->assertEquals($date_fin, $tab_date_fin[$key]);
79          }          }
80          //  
81          $dir = getcwd();          // Pour les soustractions
82          $dir = substr($dir, 0, strlen($dir) - 6)."/sql/pgsql/";          // Initialisation des tableaux
83          $dossier = opendir($dir);          $tab_date_dep = array();
84          $tab = array();          $tab_delay = array();
85          while ($entree = readdir($dossier)) {          $tab_date_fin = array();
86              if (strstr($entree, $type)) {  
87                  // Si l'extention du fichier $entree est .inc.php          // Tableau des date de départ
88                  if (strpos($entree, ".inc.php")) {          $tab_date_dep = array(
89                      $filext = strlen(".".$type.".inc.php");              0 => "2014-01-31",
90                  } else {          );
91                      // Sinon on considere qu'elle est -> .inc (compatibilite)          // Tableau des delais
92                      $filext = strlen(".".$type.".inc");          $tab_delay = array(
93                  }              0 => "4",
94                  //          );
95                  array_push($tab, array('file' => substr($entree, 0, strlen($entree) - $filext)));          // Tableau des date résultat
96              }          $tab_date_fin = array(
97                0 => "2013-09-30",
98            );
99    
100            // Pour chaque date
101            foreach ($tab_date_dep as $key => $date_dep) {
102                // Calcul la date résultat
103                $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "-");
104                // Vérifie que la date résultat est correct
105                $this->assertEquals($date_fin, $tab_date_fin[$key]);
106          }          }
         closedir($dossier);  
         asort($tab);  
         //  
         return $tab;  
     }  
107    
108      // }}}          // Destruction de la classe Utils
109            $f->__destruct();
110        }
111    
112  }  }
113    

Legend:
Removed from v.2785  
changed lines
  Added in v.2786

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26