From 0192b7b0b90a1420fd34507f737ddeb476b9beb0 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Mon, 18 Apr 2016 18:56:31 +0200 Subject: [PATCH] =?UTF-8?q?Modification=20de=20ModuleManager()=20pour=20ac?= =?UTF-8?q?cepter=20les=20param=C3=A8tres=20optionnels=20dans=20config/mod?= =?UTF-8?q?ules.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/modules.json | 51 +++++ manager/ModuleRequest.php | 24 +- phpunit/coverage/Database.php.html | 220 ++++++++++--------- phpunit/coverage/ManagerError.php.html | 2 +- phpunit/coverage/ResourceDispatcher.php.html | 94 ++++---- phpunit/coverage/autoloader.php.html | 2 +- phpunit/coverage/index.html | 44 ++-- phpunit/coverage/sessionManager.php.html | 2 +- phpunit/tests/ModuleRequest.php | 35 +++ 9 files changed, 289 insertions(+), 185 deletions(-) diff --git a/config/modules.json b/config/modules.json index ec462e9..6128323 100755 --- a/config/modules.json +++ b/config/modules.json @@ -15,6 +15,16 @@ } }, + "phpunitOptionalParams": { + "description": "Méthode utile à phpunit pour le test des paramètres optionnels.", + "permissions": [], + "parameters": { + "p1": { "description": "Texte", "type": "text" }, + "p2": { "description": "Texte", "type": "text", "optional": false }, + "p3": { "description": "Entier positif (optionnel)", "type": "id", "optional": true } + } + }, + "phpunitPermissions": { "description": "Méthode utile à phpunit pour le test des permissions.", "permissions": ["a", "b"], @@ -126,6 +136,47 @@ "duration": { "description": "Duree du token en nombre de jours", "type": "numeric" } } } + }, + + "subject": { + + "getById": { + "description": "Retourne les informations d'un sujet.", + "permissions": ["admin"], + "parameters": { + "id_user": { "description": "UID du sujet recherche.", "type": "id" } + } + }, + + + "getAll": { + "description": "Retourne les informations de tous les sujets.", + "permissions": ["admin"], + "parameters": {} + }, + + + "create": { + "description": "Creation d'un nouveau sujet.", + "permissions": ["admin"], + "parameters": { + "username" : { "description": "Pseudo du sujet, 30 caracteres maximum.", "type": "varchar(3,30)" }, + "firstname" : { "description": "Prénom du sujet, 30 caracteres maximum.", "type": "varchar(3,30)" }, + "lastname" : { "description": "Nom du sujet, 30 caracteres maximum.", "type": "varchar(3,30)" }, + "id_facebook": { "description": "Id facebook du sujet (optionnel).", "type": "id", "optional": true }, + "number" : { "description": "Numéro de téléphone du sujet (optionnel).", "type": "text" } + } + }, + + + "remove": { + "description": "Suppression d'un utilisateur.", + "permissions": ["admin"], + "parameters": { + "id_user": { "description": "UID de l'utilisateur", "type": "id" } + } + } + } } diff --git a/manager/ModuleRequest.php b/manager/ModuleRequest.php index 26b8f25..bd8d15d 100755 --- a/manager/ModuleRequest.php +++ b/manager/ModuleRequest.php @@ -337,21 +337,33 @@ $method = $this->modules[$this->path['module']][$this->path['method']]; // Si le nombre de parametre en entree est insuffisant - if( count($method['parameters']) > count($params) ) return false; + // if( count($method['parameters']) > count($params) ) return false; /* [2] Si le type est defini, pour chaque param, on teste =========================================================*/ foreach($method['parameters'] as $name=>$paramsdata){ - // Si le parametre n'existe pas dans le tableau recu - if( !isset($params[$name]) ) return false; + /* (1) On récupère si le paramètre est optionnel ou pas */ + $optional = isset($paramsdata['optional']) && $paramsdata['optional'] === true; - // Si le type n'est pas defini, on reboucle + /* (2) Si le paramètre est obligatoire et qu'il n'est pas donné -> erreur */ + if( !isset($params[$name]) && !$optional ) return false; + + /* (3) Si le type n'est pas defini, on a pas besoin de le vérifier */ if( !isset($paramsdata['type']) ) continue; - // Si la verification est fausse, on retourne faux - if( !Database::check($paramsdata['type'], $params[$name]) ) return false; + /* (4) Si le paramètre est optionnel et n'est pas donné */ + if( $optional && !isset($params[$name]) ){ + // On le crée avec la valeur NULL + $params[$name] = null; + // On passe au paramètre suivant + continue; + + /* (5) Si le paramètre est renseigné */ + }else + // Si la verification est fausse, on retourne faux + if( !Database::check($paramsdata['type'], $params[$name]) ) return false; } /* [3] Gestion du retour, si tout s'est bien passe diff --git a/phpunit/coverage/Database.php.html b/phpunit/coverage/Database.php.html index e50b2c3..0211b51 100755 --- a/phpunit/coverage/Database.php.html +++ b/phpunit/coverage/Database.php.html @@ -50,23 +50,23 @@
0.00%
0 / 1
-
-
- 57.14% covered (warning) +
+
+ 42.86% covered (danger)
-
57.14%
-
4 / 7
- CRAP +
42.86%
+
3 / 7
+ CRAP
-
- 84.15% covered (warning) +
+ 83.33% covered (warning)
-
84.15%
-
69 / 82
+
83.33%
+
70 / 84
@@ -79,23 +79,23 @@
0.00%
0 / 1
-
-
- 57.14% covered (warning) +
+
+ 42.86% covered (danger)
-
57.14%
-
4 / 7
- 57.18 +
42.86%
+
3 / 7
+ 63.04
-
- 84.15% covered (warning) +
+ 83.33% covered (warning)
-
84.15%
-
69 / 82
+
83.33%
+
70 / 84
@@ -204,28 +204,28 @@ -  check -
-
- 100.00% covered (success) +  check +
+
+ 0.00% covered (danger)
-
100.00%
-
1 / 1
- 23 +
0.00%
+
0 / 1
+ 26
-
- 100.00% covered (success) +
+ 96.30% covered (success)
-
100.00%
-
25 / 25
+
96.30%
+
26 / 27
-  frDate +  frDate
0.00% covered (danger) @@ -251,12 +251,12 @@ - + - + @@ -281,8 +281,8 @@ - - + + @@ -309,7 +309,7 @@ - + @@ -356,7 +356,7 @@ - + @@ -373,19 +373,19 @@ - + - + - + - + @@ -394,14 +394,14 @@ - + - + @@ -417,8 +417,8 @@ - - + + @@ -435,17 +435,17 @@ - + - + - + @@ -458,7 +458,7 @@ - + @@ -475,78 +475,84 @@ - + - + - - + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + +
<?php
    
    namespace manager;
    class DataBase{
        
        /* ATTRIBUTS STATIQUES */
        public static $config_path = array(
            'local'   => 'f/json/database-local/conf',
            $this->dbname   = $dbname;
            $this->username = $username;
            $this->password = $password;
            
            try{            
            try{
                self::$pdo = new \PDO('mysql:host='.$this->host.';dbname='.$this->dbname, $this->username, $this->password);
                // On signale que tout s'est bien passe
                self::$instance = new DataBase($conf['host'], $conf['dbname'], $conf['user'], $conf['password']);
            }
            
            return self::$instance;
        }
        * @fetchData<Array>                    le résultat d'une $requeteSQL->fetchAll()
        * @oneDimension<Boolean>            FAUX <=> fetchAll ; VRAI <=> fetch
        *
        * @return newFetchData<Array>        retourne le tableau donné en paramètre mais sans les valeurs à clés numériques    
        * @return newFetchData<Array>        retourne le tableau donné en paramètre mais sans les valeurs à clés numériques
        *
        */
        public static function delNumeric($fetchData, $oneDimension=false){
                // on supprime les doublons des entrées (indice numérique)
                for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs
                    foreach($fetchData[$i] as $col => $val){  // pour toutes les entrées
                        
                        if( !mb_detect_encoding($val, 'UTF-8') )
                            $fetchData[$i][$col] = utf8_encode($val);
                        
                        if( is_int($col) ){ // Si indice numerique
                            if( $nextEquivalent ) // Si suit un indice textuel
                                unset( $fetchData[$i][$col] ); // on supprime l'indice
                            
                            $nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique
                        }else // Si l'indice n'est pas un entier
                            $nextEquivalent = true; // On signale qu'il y aura peut etre un indice numerique suivant
                            
                        }
            /* [2] 1 dimensions
                // on supprime les doublons des entrées (indice numérique)
                foreach($fetchData as $i=>$val){  // pour toutes les entrées
                    
                    if( !mb_detect_encoding($val, 'UTF-8') )
                        $fetchData[$i] = utf8_encode($val);
                    if( is_int($i) ){ // Si indice numerique
                        if( $nextEquivalent ) // Si suit un indice textuel
                            unset( $fetchData[$i] ); // on supprime l'indice
                        
                        $nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique
                    }else // Si l'indice n'est pas un entier
        ////////////////////////////////////////////////////////////////
        //                 _  __ _           _   _                 
        // __   _____ _ __(_)/ _(_) ___ __ _| |_(_) ___  _ __  ___ 
        //                 _  __ _           _   _
        // __   _____ _ __(_)/ _(_) ___ __ _| |_(_) ___  _ __  ___
        // \ \ / / _ \ '__| | |_| |/ __/ _` | __| |/ _ \| '_ \/ __|
        //  \ V /  __/ |  | |  _| | (_| (_| | |_| | (_) | | | \__ \
        //   \_/ \___|_|  |_|_| |_|\___\__,_|\__|_|\___/|_| |_|___/
        *
        */
        public static function check($type, $value){
            $checker = true;
            $checker = true;
            /* [0] On verifie que $value n'est pas nul
            =========================================================*/
            if( is_null($value) ) return false;
            if( is_null($value) ) return false;
            /* [1] Si de type VARCHAR(min, max)
            =========================================================*/
            if( preg_match('/^varchar\((\d+), ?(\d+)\)$/', $type, $match) ){
            if( preg_match('/^varchar\((\d+), ?(\d+)\)$/', $type, $match) ){
                // On recupere la taille min
                $min = (int) $match[1];
                // On recupere la taille max
            /* [2] Si de type ARRAY(type_elements)
            =========================================================*/
            if( preg_match('/^array<(.+)>$/', $type, $match) ){
            if( preg_match('/^array<(.+)>$/', $type, $match) ){
                // Si c'est pas un tableau on retourne une erreur
                if( !is_array($value) )
                    return false;
                return true;
            }
            
            /* [n] Sinon, tous les autres types definis
            =========================================================*/            
            =========================================================*/
            switch($type){
                // Entier positif (id dans BDD)
                case 'id':
                    return $checker && is_numeric($value) && $value <= 2147483647 && $value >= 0;
                case 'id':
                    return $checker && is_numeric($value) && $value <= 2147483647 && $value >= 0;
                    break;
                // String quelconque (peut etre vide)
                case 'text':
                    return $checker && is_string($value);
                case 'text':
                    return $checker && is_string($value);
                // Adresse mail (255 caracteres max)
                case 'mail':
                    return $checker && is_string($value) && strlen($value) <= 50 && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $value);
                    break;
                
                // Hash sha1
                case 'sha1':
                    return $checker && is_string($value) && preg_match('/^[\da-f]{40}$/i', $value);
                    break;
                
                default:
                    return false;
                    break;
            }
            return $checker;
        }
        ////////////////////////////////////
        //      _       _            
        //   __| | __ _| |_ ___  ___ 
        //  / _` |/ _` | __/ _ \/ __|
        // | (_| | (_| | ||  __/\__ \
        //  \__,_|\__,_|\__\___||___/
        //
        ////////////////////////////////////
        // 1) Convertis une date en en francais explicite
        public static function frDate($date){
            /* [1] On definit les traductions
            =========================================================*/
            // Jours de la semaine
            $days   = array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche");
            // Mois de l'annee
            $months = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
            /* [2] On recupere le timestamp et les indices
            =========================================================*/
            $time = strtotime($date); // timestamp
            $daynum = intval( date('N', $time)-1 ); // jour dans la semaine
            $monthnum = intval( date('n', $time)-1 ); // numero du mois dans l'annee
                    break;
                // Numéro de téléphone
                case 'phone_number':
                    return $checker && is_string($value) && preg_match('/^(?:0|\+33 ?|0?0?33 ?|)([1-9] ?(?:[0-9] ?){8})$/i', $value);
                    break;
                default:
                    return false;
                    break;
            }
            return $checker;
        }
        ////////////////////////////////////
        //      _       _
        //   __| | __ _| |_ ___  ___
        //  / _` |/ _` | __/ _ \/ __|
        // | (_| | (_| | ||  __/\__ \
        //  \__,_|\__,_|\__\___||___/
        //
        ////////////////////////////////////
        // 1) Convertis une date en en francais explicite
        public static function frDate($date){
            /* [1] On definit les traductions
            =========================================================*/
            // Jours de la semaine
            $days   = array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche");
            // Mois de l'annee
            $months = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
            /* [3] On recupere les infos independemment
            =========================================================*/
            $result = array(
                $days[$daynum],     // nom de jour
                date('j', $time),   // jour du mois
                $months[$monthnum], // nom du mois
                date('Y', $time),   // annee
            );
            return implode(" ", $result);
        }
    }
?>
            /* [2] On recupere le timestamp et les indices
            =========================================================*/
            $time = strtotime($date); // timestamp
            $daynum = intval( date('N', $time)-1 ); // jour dans la semaine
            $monthnum = intval( date('n', $time)-1 ); // numero du mois dans l'annee
            /* [3] On recupere les infos independemment
            =========================================================*/
            $result = array(
                $days[$daynum],     // nom de jour
                date('j', $time),   // jour du mois
                $months[$monthnum], // nom du mois
                date('Y', $time),   // annee
            );
            return implode(" ", $result);
        }
    }
?>
@@ -559,7 +565,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 16:55:53 UTC 2016.

diff --git a/phpunit/coverage/ManagerError.php.html b/phpunit/coverage/ManagerError.php.html index 7e86598..2f5ad2c 100755 --- a/phpunit/coverage/ManagerError.php.html +++ b/phpunit/coverage/ManagerError.php.html @@ -247,7 +247,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 16:55:53 UTC 2016.

diff --git a/phpunit/coverage/ResourceDispatcher.php.html b/phpunit/coverage/ResourceDispatcher.php.html index 328077e..96b3795 100755 --- a/phpunit/coverage/ResourceDispatcher.php.html +++ b/phpunit/coverage/ResourceDispatcher.php.html @@ -262,49 +262,49 @@         *         */         public function __construct($url, $view=false){ -             $this->error = ManagerError::Success; +             $this->error = ManagerError::Success;             /* [0] On met a jour la configuration             =====================================================*/             // Extensions supportees -             $extensions_conf = json_decode( file_get_contents(__ROOT__.self::$extension_config_path), true ); +             $extensions_conf = json_decode( file_get_contents(__ROOT__.self::$extension_config_path), true );             // Gestion de l'erreur de parsage -             if( $extensions_conf == null ){ +             if( $extensions_conf == null ){                 $this->error = ManagerError::ParsingFailed;                 return false;             } -             self::$supported_extensions = $extensions_conf; +             self::$supported_extensions = $extensions_conf;             // Dossiers supportes -             $parents_conf = json_decode( file_get_contents(__ROOT__.self::$parents_config_path), true ); +             $parents_conf = json_decode( file_get_contents(__ROOT__.self::$parents_config_path), true );                          // Gestion de l'erreur de parsage -             if( $parents_conf == null ){ +             if( $parents_conf == null ){                 $this->error = ManagerError::ParsingFailed;                 return false;             } -             self::$supported_parents = $parents_conf; +             self::$supported_parents = $parents_conf;             /* [1] On recupere les donnees de l'URL             ==================================================*/ -             $serialFlags = array_slice( explode('/',$url), 1 ); +             $serialFlags = array_slice( explode('/',$url), 1 );             /* [2] On check/cree les drapeaux avec ces donnees             ==================================================*/ -             if( !$this->createFlags($serialFlags) ){ // Creation des drapeaux +             if( !$this->createFlags($serialFlags) ){ // Creation des drapeaux                 $this->error = ManagerError::InvalidFlags;                 return false;             }             /* [3] On construit le chemin a partir des tags             ==================================================*/ -             if( !$this->buildPath() ){ // Construction du chemin +             if( !$this->buildPath() ){ // Construction du chemin                 $this->error = ManagerError::UnreachableResource;                 return false;             } @@ -312,10 +312,10 @@             /* [4] On gere l'affichage pour l'appel externe/interne             ==================================================*/             if( $view ) // Appel externe -                 $this->view(); +                 $this->view();              -             return true; +             return true;         } @@ -328,8 +328,8 @@         *         */         public static function getResource($route){ -             $instance = new ResourceDispatcher($route); -             return $instance->getContent(); +             $instance = new ResourceDispatcher($route); +             return $instance->getContent();         } @@ -345,51 +345,51 @@             /* [1] Verification des flags (version serialisee)             ======================================================*/ -             $correct = true; +             $correct = true;             // Verification du nombre de drapeaux () au moins 3 -             $correct = $correct && count($serialFlags) >= 3; +             $correct = $correct && count($serialFlags) >= 3;             // Verification que l'extension est correcte -             $correct = $correct && array_key_exists($serialFlags[0], self::$supported_extensions); +             $correct = $correct && array_key_exists($serialFlags[0], self::$supported_extensions);             // Verification du filename -             $correct = $correct && preg_match('/^[\w_\.-]+$/i', $serialFlags[1]); +             $correct = $correct && preg_match('/^[\w_\.-]+$/i', $serialFlags[1]);             // Verification du parent -             $correct = $correct && array_key_exists($serialFlags[2], self::$supported_parents); +             $correct = $correct && array_key_exists($serialFlags[2], self::$supported_parents);             // Verification du sous-parent (optionnel) -             $opt_subParent = count($serialFlags) >= 4; +             $opt_subParent = count($serialFlags) >= 4;             if( $opt_subParent ) -                 $correct = $correct && preg_match('/^[\w_-]+$/i', $serialFlags[3]); +                 $correct = $correct && preg_match('/^[\w_-]+$/i', $serialFlags[3]);             // Verification de la couleur (optionnel) -             $opt_color = count($serialFlags) >= 5 && preg_match('/^[\da-f]{6,8}+$/i', $serialFlags[4]); +             $opt_color = count($serialFlags) >= 5 && preg_match('/^[\da-f]{6,8}+$/i', $serialFlags[4]); -             if( !$correct ) -                 return false; +             if( !$correct ) +                 return false;                              /* [2] Creation (non serialisee) des flags             ======================================================*/             // Si tout se deroule bien, on cree les flags -             $this->flags = array( -                 'extension' => $serialFlags[0], -                 'filename'  => $serialFlags[1], -                 'parent'    => $serialFlags[2] -             ); +             $this->flags = array( +                 'extension' => $serialFlags[0], +                 'filename'  => $serialFlags[1], +                 'parent'    => $serialFlags[2] +             );             // Ajout du sous-parent optionnel             if( $opt_subParent ) -                 $this->flags['subparent'] = $serialFlags[3]; +                 $this->flags['subparent'] = $serialFlags[3];             // Ajout du color optionnel             if( $opt_color ) -                 $this->flags['color'] = '#'.$serialFlags[4]; +                 $this->flags['color'] = '#'.$serialFlags[4]; -             return true; +             return true;         } @@ -408,10 +408,10 @@             /* [1] On recupere le HEADER associe a l'extension             ==========================================================*/             // Si aucun header pour cet cle, on retourne une erreur -             if( !isset(self::$supported_extensions[$this->flags['extension']]) ) return false; +             if( !isset(self::$supported_extensions[$this->flags['extension']]) ) return false;             // On recupere le header associe -             $header = self::$supported_extensions[$this->flags['extension']]; +             $header = self::$supported_extensions[$this->flags['extension']]; @@ -420,23 +420,23 @@             /* [2] On recupere le chemin associe au parent             ==========================================================*/             // Si aucun dossier pour cet indice, on retourne une erreur -             if( !isset(self::$supported_parents[$this->flags['parent']]) ) return false; +             if( !isset(self::$supported_parents[$this->flags['parent']]) ) return false;             // On recupere le dossier associe -             $parent = self::$supported_parents[$this->flags['parent']]; +             $parent = self::$supported_parents[$this->flags['parent']];             /* [3] Gestion du sous-parent optionnel             ==========================================================*/ -             $opt_subParent = (isset($this->flags['subparent'])) ? $this->flags['subparent'].'/' : ''; +             $opt_subParent = (isset($this->flags['subparent'])) ? $this->flags['subparent'].'/' : '';             /* [4] Gestion du color optionnel             =========================================================*/ -             $this->stylesheet = ""; +             $this->stylesheet = "";             // si le color est defini -             if( isset($this->flags['color']) ){ +             if( isset($this->flags['color']) ){                 $this->stylesheet = "\n<style type='text/css'>\n";                     $this->stylesheet .= "\t#stylisable{\n";                         $this->stylesheet .= "\t\tfill: ".$this->flags['color']." !important;\n"; @@ -449,15 +449,15 @@             /* [5] On definit le header             ==========================================================*/ -             $this->header = $header; +             $this->header = $header;             /* [6] On construit le chemin              ==========================================================*/ -             $this->path = __ROOT__.$parent.'/'.$opt_subParent.$this->flags['filename'].'.'.$this->flags['extension']; +             $this->path = __ROOT__.$parent.'/'.$opt_subParent.$this->flags['filename'].'.'.$this->flags['extension'];             /* [7] On retourne si le fichier existe ou non             ==========================================================*/ -             return @file_get_contents( $this->path ) != false; +             return @file_get_contents( $this->path ) != false;         } @@ -489,15 +489,15 @@         */         public function getContent(){             // S'il y a eu une erreur en amont -             if( $this->error != ManagerError::Success ) -                 return false; // on retourne faux +             if( $this->error != ManagerError::Success ) +                 return false; // on retourne faux             // On inclut le contenu -             $content = file_get_contents($this->path); +             $content = file_get_contents($this->path);             // On retourne tout -             return str_replace( '</svg>', $this->stylesheet.'</svg>', $content ); +             return str_replace( '</svg>', $this->stylesheet.'</svg>', $content );         } @@ -517,7 +517,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 16:55:53 UTC 2016.

diff --git a/phpunit/coverage/autoloader.php.html b/phpunit/coverage/autoloader.php.html index 0b66a5f..b5af751 100755 --- a/phpunit/coverage/autoloader.php.html +++ b/phpunit/coverage/autoloader.php.html @@ -214,7 +214,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 16:55:53 UTC 2016.

diff --git a/phpunit/coverage/index.html b/phpunit/coverage/index.html index c7effcf..540684a 100755 --- a/phpunit/coverage/index.html +++ b/phpunit/coverage/index.html @@ -43,21 +43,21 @@ Total
-
- 67.51% covered (warning) +
+ 67.67% covered (warning)
-
67.51%
-
266 / 394
+
67.67%
+
270 / 399
-
- 47.73% covered (danger) +
+ 45.45% covered (danger)
-
47.73%
-
21 / 44
+
45.45%
+
20 / 44
11.11% covered (danger) @@ -127,21 +127,21 @@ Database.php
-
- 84.15% covered (warning) +
+ 83.33% covered (warning)
-
84.15%
-
69 / 82
-
-
- 57.14% covered (warning) +
83.33%
+
70 / 84
+
+
+ 42.86% covered (danger)
-
57.14%
-
4 / 7
+
42.86%
+
3 / 7
0.00% covered (danger) @@ -183,13 +183,13 @@ ModuleRequest.php
-
- 86.36% covered (warning) +
+ 86.81% covered (warning)
-
86.36%
-
76 / 88
+
86.81%
+
79 / 91
62.50% covered (warning) @@ -350,7 +350,7 @@ High: 90% to 100%

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 16:55:53 UTC 2016.

diff --git a/phpunit/coverage/sessionManager.php.html b/phpunit/coverage/sessionManager.php.html index 1c8f21b..21c7d73 100755 --- a/phpunit/coverage/sessionManager.php.html +++ b/phpunit/coverage/sessionManager.php.html @@ -315,7 +315,7 @@ Dead Code

- Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 9:37:55 UTC 2016. + Generated by PHP_CodeCoverage 2.1.7 using PHP 5.6.11-1ubuntu3.1 and PHPUnit 4.7.6 at Mon Apr 18 16:55:53 UTC 2016.

diff --git a/phpunit/tests/ModuleRequest.php b/phpunit/tests/ModuleRequest.php index f7c5b31..2ee2515 100644 --- a/phpunit/tests/ModuleRequest.php +++ b/phpunit/tests/ModuleRequest.php @@ -165,6 +165,41 @@ $this->assertEquals( $ans->get('p1'), $params['p1'] ); $this->assertEquals( $ans->get('p2'), $params['p2'] ); } + + /* (4) Gestion des paramètres optionnels */ + public function testConstructOptionalParamGivenIncorrectType(){ + $_SESSION['permission'] = array(); + + $params = array( 'p1' => 'sometext', 'p2' => 'sometexttoo', 'p3' => -10 ); + + $req = new \manager\ModuleRequest( 'module/phpunitOptionalParams', $params ); + $this->assertEquals( $req->error, \manager\ManagerError::ParamError ); + } + public function testConstructOptionalParamGiven(){ + $_SESSION['permission'] = array(); + + $params = array( 'p1' => 'sometext', 'p2' => 'sometexttoo', 'p3' => 10 ); + + $req = new \manager\ModuleRequest( 'module/phpunitOptionalParams', $params ); + $this->assertEquals( $req->error, \manager\ManagerError::Success ); + } + public function testConstructOptionalParamNotGiven(){ + $_SESSION['permission'] = array(); + + $params = array( 'p1' => 'sometext', 'p2' => 'sometexttoo' ); + + $req = new \manager\ModuleRequest( 'module/phpunitOptionalParams', $params ); + $this->assertEquals( $req->error, \manager\ManagerError::Success ); + } + public function testConstructOptionalParamButRequiredMissing(){ + $_SESSION['permission'] = array(); + + $params = array( 'p1' => 'sometext', 'p3' => 10 ); + + $req = new \manager\ModuleRequest( 'module/phpunitOptionalParams', $params ); + $this->assertEquals( $req->error, \manager\ManagerError::ParamError ); + } + }