Changeset 89176 in spip-zone


Ignore:
Timestamp:
May 8, 2015, 11:37:42 PM (4 years ago)
Author:
marcimat@…
Message:

Corriger le test unitaire de _DIR_PLUGIN_SUPPL en tenant compte du fait qu'il ne peut déclarer qu'un seul répertoire
et que la fonction liste_plugin_files() ne parcours pas ce répertoire par défaut.
D'autre part, _DIR_PLUGIN_SUPPL se termine par un / final.
(Merci .Gilles)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _core_/tests/unit/plugin/dir_plugins_suppl.php

    r60154 r89176  
    1616
    1717        // lancer le binz
    18         echo essais_dir_plugins_suppl();       
     18        echo essais_dir_plugins_suppl();
    1919
    2020function essais_dir_plugins_suppl() {
    21         // preparation: la constante est elle definie et comprend elle au moins 2 reps suppl?
    22         if (!defined('_DIR_PLUGINS_SUPPL'))
    23                 define('_DIR_PLUGINS_SUPPL', _DIR_TMP.'plug_sup1:'._DIR_TMP.'plug_sup2');
    24         elseif (substr_count(_DIR_PLUGINS_SUPPL, ':') < 1)
    25                 return 'NA : pour ce test la constante _DIR_PLUGINS_SUPPL definie dans mes_options.php doit contenir au moins 2 chemins de repertoires supplementaires separes par un ":", actuellement sa valeur est "'._DIR_PLUGINS_SUPPL.'"';
     21        // preparation: la constante est elle definie et comprend uniquement 1 reps suppl?
     22        if (!defined('_DIR_PLUGINS_SUPPL')) {
     23                define('_DIR_PLUGINS_SUPPL', _DIR_TMP.'plug_sup/');
     24        }
     25        elseif (substr_count(_DIR_PLUGINS_SUPPL, ':') !== 0) {
     26                return 'NA : la constante _DIR_PLUGINS_SUPPL definie dans mes_options.php ne doit contenir qu\'un seul chemin supplementaire ; actuellement sa valeur est "'._DIR_PLUGINS_SUPPL.'"';
     27        }
     28
     29        if (substr(_DIR_PLUGINS_SUPPL, -1) != '/') {
     30                return 'NA : la constante _DIR_PLUGINS_SUPPL doit terminer par un / ; actuellement sa valeur est "'._DIR_PLUGINS_SUPPL.'"';
     31        }
    2632
    2733        // preparation: verifier qu'il existe au moins un dossier plugin par rep suppl (i.e. contenant un fichier paquet.xml)?
    2834        $Ta_effacer = $Ta_retrouver = array();
    29         foreach ($Treps_suppl = explode(':', _DIR_PLUGINS_SUPPL) as $rep_sup) {
    30                 $existe_paquet = FALSE;
    31                 if (substr($rep_sup, -1) != '/')
    32                         $rep_sup .= '/';
    33 
    34                 // le rep suppl n'existe pas; le creer
    35                 if (!is_dir(_DIR_RACINE.$rep_sup)) {
    36                         if (!@mkdir(_DIR_RACINE.$rep_sup))
    37                                 return 'NA probleme de droits d\'ecriture 0, impossible de creer le dossier de _DIR_PLUGINS_SUPPL: "'.$rep_sup.'" necessaire pour ce test';
    38                         else
    39                                 $Ta_effacer[] = _DIR_RACINE.$rep_sup;
    40                 }
    41 
    42                 // le rep suppl est vide: creer un dossier de plugin bidon (toto) et y copier un paquet.xml
    43                 if (count(scandir(_DIR_RACINE.$rep_sup)) < 3) {
    44                         if (!@mkdir(_DIR_RACINE.$rep_sup.'toto')) {
    45                                 nettoyage_plugins_suppl($Ta_effacer);
    46                                 return 'NA probleme de droits d\ecriture 1, impossible de creer un dossier dans "'._DIR_RACINE.$rep_sup.'" necessaire pour ce test';
    47                         }
    48                         else
    49                                 $Ta_effacer[] = _DIR_RACINE.$rep_sup.'toto';
    50                         if (!@copy(_DIR_PLUGINS_DIST.'dump/paquet.xml', _DIR_RACINE.$rep_sup.'toto/paquet.xml')) {
    51                                 nettoyage_plugins_suppl($Ta_effacer);
    52                                 return 'NA probleme de droits d\ecriture 2, impossible de creer un fichier dans "'._DIR_RACINE.$rep_sup.'toto" necessaire pour ce test';
    53                         }
    54                         else {
    55                                 $Ta_effacer[] = _DIR_RACINE.$rep_sup.'toto/paquet.xml';
    56                                 $Ta_retrouver[] = _DIR_RACINE.$rep_sup.'toto';
    57                         }
    58                         $existe_paquet = TRUE;
     35
     36        $existe_paquet = FALSE;
     37
     38        // le rep suppl n'existe pas; le creer
     39        if (!is_dir(_DIR_RACINE . _DIR_PLUGINS_SUPPL)) {
     40                if (!@mkdir(_DIR_RACINE . _DIR_PLUGINS_SUPPL))
     41                        return 'NA probleme de droits d\'ecriture 0, impossible de creer le dossier de _DIR_PLUGINS_SUPPL: "'._DIR_PLUGINS_SUPPL.'" necessaire pour ce test';
     42                else
     43                        $Ta_effacer[] = _DIR_RACINE . _DIR_PLUGINS_SUPPL;
     44        }
     45
     46        // le rep suppl est vide: creer un dossier de plugin bidon (toto) et y copier un paquet.xml
     47        if (count(scandir(_DIR_RACINE . _DIR_PLUGINS_SUPPL)) < 3) {
     48                if (!@mkdir(_DIR_RACINE . _DIR_PLUGINS_SUPPL . 'toto')) {
     49                        nettoyage_plugins_suppl($Ta_effacer);
     50                        return 'NA probleme de droits d\ecriture 1, impossible de creer un dossier dans "'._DIR_RACINE . _DIR_PLUGINS_SUPPL.'" necessaire pour ce test';
     51                }
     52                else
     53                        $Ta_effacer[] = _DIR_RACINE . _DIR_PLUGINS_SUPPL . 'toto';
     54                if (!@copy(_DIR_PLUGINS_DIST.'dump/paquet.xml', _DIR_RACINE . _DIR_PLUGINS_SUPPL . 'toto/paquet.xml')) {
     55                        nettoyage_plugins_suppl($Ta_effacer);
     56                        return 'NA probleme de droits d\ecriture 2, impossible de creer un fichier dans "'._DIR_RACINE . _DIR_PLUGINS_SUPPL . 'toto" necessaire pour ce test';
    5957                }
    6058                else {
    61                         if ($pointeur = opendir(_DIR_RACINE.$rep_sup)) {
    62                                 while (false !== ($rep = readdir($pointeur))) {
    63                                         if ($rep == '.' OR $rep == '..' OR !is_dir($rep))
    64                                                 continue;
    65                                         else {
    66                                                 if ($pointeur = opendir(_DIR_RACINE.$rep_sup.$rep)) {
    67                                                         while (false !== ($fichier = readdir($pointeur))) {
    68                                                                 if ($fichier == 'paquet.xml') {
    69                                                                         $Ta_retrouver[] = _DIR_RACINE.$rep_sup.$rep;
    70                                                                         $existe_paquet = TRUE;
    71                                                                         break;
    72                                                                 }
     59                        $Ta_effacer[] = _DIR_RACINE . _DIR_PLUGINS_SUPPL.'toto/paquet.xml';
     60                        $Ta_retrouver[] = 'toto';
     61                }
     62                $existe_paquet = TRUE;
     63        }
     64        else {
     65                if ($pointeur = opendir(_DIR_RACINE . _DIR_PLUGINS_SUPPL)) {
     66                        while (false !== ($rep = readdir($pointeur))) {
     67                                if ($rep == '.' OR $rep == '..' OR !is_dir($rep))
     68                                        continue;
     69                                else {
     70                                        if ($pointeur = opendir(_DIR_RACINE . _DIR_PLUGINS_SUPPL . $rep)) {
     71                                                while (false !== ($fichier = readdir($pointeur))) {
     72                                                        if ($fichier == 'paquet.xml') {
     73                                                                $Ta_retrouver[] = $rep;
     74                                                                $existe_paquet = TRUE;
     75                                                                break;
    7376                                                        }
    7477                                                }
     
    7679                                }
    7780                        }
    78                         // tous les sous-dossiers sont scannes et toujours pas de paquet.xml:
    79                         // creer un dossier bidon et y copier un paquet.xml
    80                         if (!$existe_paquet) {
    81                                 if (!in_array('toto', scandir(_DIR_RACINE.$rep_sup)) AND !@mkdir(_DIR_RACINE.$rep_sup.'toto')) {
    82                                         nettoyage_plugins_suppl($Ta_effacer);
    83                                         return 'NA probleme de droits d\ecriture 3, impossible de creer un dossier dans "'._DIR_RACINE.$rep_sup.'" necessaire pour ce test';
    84                                 }
    85                                 else
    86                                         $Ta_effacer[] = _DIR_RACINE.$rep_sup.'toto';
    87                                 if (!@copy(_DIR_PLUGINS_DIST.'dump/paquet.xml', _DIR_RACINE.$rep_sup.'toto/paquet.xml')) {
    88                                         nettoyage_plugins_suppl($Ta_effacer);
    89                                         return 'NA probleme de droits d\ecriture 4, impossible de creer un fichier dans "'._DIR_RACINE.$rep_sup.'toto" necessaire pour ce test';
    90                                 }
    91                                 else {
    92                                         $Ta_retrouver[] = _DIR_RACINE.$rep_sup.'toto';
    93                                         $Ta_effacer[] = _DIR_RACINE.$rep_sup.'toto/paquet.xml';
    94                                 }
    95                                 $existe_paquet = TRUE;
    96                         }
    97                 }
    98         }
     81                }
     82                // tous les sous-dossiers sont scannes et toujours pas de paquet.xml:
     83                // creer un dossier bidon et y copier un paquet.xml
     84                if (!$existe_paquet) {
     85                        if (!in_array('toto', scandir(_DIR_RACINE . _DIR_PLUGINS_SUPPL)) AND !@mkdir(_DIR_RACINE . _DIR_PLUGINS_SUPPL . 'toto')) {
     86                                nettoyage_plugins_suppl($Ta_effacer);
     87                                return 'NA probleme de droits d\ecriture 3, impossible de creer un dossier dans "'._DIR_RACINE . _DIR_PLUGINS_SUPPL.'" necessaire pour ce test';
     88                        }
     89                        else
     90                                $Ta_effacer[] = _DIR_RACINE . _DIR_PLUGINS_SUPPL . 'toto';
     91                        if (!@copy(_DIR_PLUGINS_DIST.'dump/paquet.xml', _DIR_RACINE . _DIR_PLUGINS_SUPPL.'toto/paquet.xml')) {
     92                                nettoyage_plugins_suppl($Ta_effacer);
     93                                return 'NA probleme de droits d\ecriture 4, impossible de creer un fichier dans "'._DIR_RACINE . _DIR_PLUGINS_SUPPL.'toto" necessaire pour ce test';
     94                        }
     95                        else {
     96                                $Ta_retrouver[] = 'toto';
     97                                $Ta_effacer[] = _DIR_RACINE . _DIR_PLUGINS_SUPPL . 'toto/paquet.xml';
     98                        }
     99                        $existe_paquet = TRUE;
     100                }
     101        }
     102
    99103
    100104        // preparation: creer au moins un dossier plugin hors de _DIR_PLUGINS et _DIR_PLUGINS_SUPPL
    101         $rep_non_suppl = '';
    102         if (substr_count($Treps_suppl[0], '/') > 0)
    103                 $rep_non_suppl = substr($Treps_suppl[0], 0, strrpos($Treps_suppl[0], '/')).'/test_non_suppl';
     105        $rep_non_suppl = ''; 
     106        if (substr_count(_DIR_PLUGINS_SUPPL, '/') > 1)
     107                $rep_non_suppl = substr(_DIR_PLUGINS_SUPPL, 0, strrpos(rtrim(_DIR_PLUGINS_SUPPL, '/'), '/')).'/test_non_suppl';
    104108        else
    105109                $rep_non_suppl = _DIR_TMP.'test_non_suppl';
    106         if (in_array($rep_non_suppl, $Treps_suppl))
     110
     111        if ($rep_non_suppl == _DIR_PLUGINS_SUPPL) {
    107112                return 'NA : le dossier "'.$rep_non_suppl.'" ne doit pas faire partie des repertoires definis dans _DIR_PLUGINS_SUPPL pour que ce test fonctionne';
     113        }
    108114
    109115        if (!is_dir($rep_non_suppl)) {
     
    123129                        $Ta_effacer[] = $rep_non_suppl.'/paquet.xml';
    124130        }
    125                
    126131
    127132        // test 1: lancer liste_plugin_files() et recuperer l'array retourne
    128133        // verifier qu'on retrouve bien tous les rep suppl de _DIR_PLUGINS_SUPPL
    129         $Tplugins_recups = liste_plugin_files();
     134        $Tplugins_recups = liste_plugin_files(_DIR_PLUGINS_SUPPL);
    130135
    131136        $Terr = array();
Note: See TracChangeset for help on using the changeset viewer.