[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / cfg / tests / depot_meta.php
diff --git a/www/plugins/auto/cfg/tests/depot_meta.php b/www/plugins/auto/cfg/tests/depot_meta.php
new file mode 100644 (file)
index 0000000..3defd8a
--- /dev/null
@@ -0,0 +1,138 @@
+<?php\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+\r
+       // nom du test\r
+       $test = 'cfg:depot_meta';\r
+\r
+       // recherche test.inc qui nous ouvre au monde spip\r
+       $deep = 2;\r
+       $include = '../../tests/test.inc';\r
+       while (!defined('_SPIP_TEST_INC') && $deep++ < 6) {\r
+               $include = '../' . $include;\r
+               @include $include;\r
+       }\r
+       if (!defined('_SPIP_TEST_INC')) {\r
+               die("Pas de $include");\r
+       }\r
+\r
+\r
+### lire_config meta ###\r
+\r
+       $meta = $GLOBALS['meta'];\r
+       \r
+       // les bases de test\r
+       $assoc = array('one' => 'element 1', 'two' => 'element 2');\r
+       $serassoc = serialize($assoc);\r
+       \r
+       // on flingue meta a juste nos donnees\r
+       $GLOBALS['meta'] = array(\r
+               'zero' => 0,\r
+               'zeroc' => '0',\r
+               'chaine' => 'une chaine',\r
+               'assoc' => $assoc,\r
+               'serie' => serialize($assoc)\r
+       );\r
+\r
+       $essais[] = array(0, 'zero');\r
+       $essais[] = array('0', 'zeroc');\r
+       $essais[] = array('une chaine', 'chaine');\r
+       $essais[] = array($assoc, 'assoc');\r
+       $essais[] = array($assoc, 'serie');\r
+       $essais[] = array(serialize($assoc), 'serie','',0);\r
+       $essais[] = array(null, 'rien');\r
+       $essais[] = array('defaut', 'rien','defaut');\r
+\r
+       $err = tester_fun('lire_config', $essais);\r
+\r
+       // retablissement des metas\r
+       $GLOBALS['meta']=$meta;\r
+       \r
+       // si le tableau $err est pas vide ca va pas\r
+       if ($err) {\r
+               die ('<b>lire_config meta</b><dl>' . join('', $err) . '</dl>');\r
+       }\r
+\r
+### ecrire_config meta ###\r
+\r
+       /*\r
+        * Notes sur l'ecriture :\r
+        * - dans le tableau $GLOBALS['meta'], les valeurs transmises\r
+        * conservent effectivement leur type\r
+        * - si l'on applique un lire_metas() (reecriture du tableau $GLOBALS['meta']\r
+        * depuis les informations de la table spip_meta, les types de valeurs\r
+        * sont tous des types string (puisque la colonne 'valeur' de spip_meta est\r
+        * varchar (ou text).\r
+        *      - 0 devient alors '0'\r
+        *  - array(xxx) devient 'Array'\r
+        *\r
+        * Cela ne se produit pas avec le depot 'metapack' qui serialize systematiquement\r
+        * tout ce qu'on lui donne (et peut donc restituer le type de donnee correctement).\r
+        *\r
+        */\r
+       $essais = array();\r
+       $essais[] = array(true, 'test_cfg_zero', 0);\r
+       $essais[] = array(true, 'test_cfg_zeroc', '0');\r
+       $essais[] = array(true, 'test_cfg_chaine', 'une chaine');               \r
+       $essais[] = array(true, 'test_cfg_assoc', $assoc);\r
+       $essais[] = array(true, 'test_cfg_serie', serialize($assoc));\r
+\r
+       $err = tester_fun('ecrire_config', $essais);\r
+       \r
+       // si le tableau $err est pas vide ca va pas\r
+       if ($err) {\r
+               die ('<b>ecrire_config meta</b><dl>' . join('', $err) . '</dl>');\r
+       }\r
+       \r
+### re lire_config meta ###\r
+\r
+       $essais = array();\r
+       $essais[] = array(0, 'test_cfg_zero');\r
+       $essais[] = array('0', 'test_cfg_zeroc');\r
+       $essais[] = array('une chaine', 'test_cfg_chaine');             \r
+       $essais[] = array($assoc, 'test_cfg_assoc');\r
+       $essais[] = array(serialize($assoc), 'test_cfg_serie','',0);\r
+\r
+       $err = tester_fun('lire_config', $essais);\r
+       \r
+       // si le tableau $err est pas vide ca va pas\r
+       if ($err) {\r
+               die ('<b>relecture ecrire_config meta</b><dl>' . join('', $err) . '</dl>');\r
+       }\r
+\r
+### re effacer_config meta ###\r
+\r
+       $essais = array();\r
+       $essais[] = array(true, 'test_cfg_zero');\r
+       $essais[] = array(true, 'test_cfg_zeroc');\r
+       $essais[] = array(true, 'test_cfg_chaine');             \r
+       $essais[] = array(true, 'test_cfg_assoc');\r
+       $essais[] = array(true, 'test_cfg_serie');\r
+\r
+       $err = tester_fun('effacer_config', $essais);\r
+       \r
+       // si le tableau $err est pas vide ca va pas\r
+       if ($err) {\r
+               die ('<b>effacer_config meta</b><dl>' . join('', $err) . '</dl>');\r
+       }\r
+\r
+       \r
+### re lire_config meta ###\r
+\r
+       $essais = array();\r
+       $essais[] = array(null, 'test_cfg_zero');\r
+       $essais[] = array(null, 'test_cfg_zeroc');\r
+       $essais[] = array(null, 'test_cfg_chaine');             \r
+       $essais[] = array(null, 'test_cfg_assoc');\r
+       $essais[] = array(null, 'test_cfg_serie');\r
+\r
+       $err = tester_fun('lire_config', $essais);\r
+       \r
+       // si le tableau $err est pas vide ca va pas\r
+       if ($err) {\r
+               die ('<b>relecture effacer_config meta</b><dl>' . join('', $err) . '</dl>');\r
+       }\r
+\r
+       \r
+       echo "OK";\r
+\r
+?>\r