--- /dev/null
+<?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