[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / cfg / tests / depot_tablepack.php
diff --git a/www/plugins/auto/cfg/tests/depot_tablepack.php b/www/plugins/auto/cfg/tests/depot_tablepack.php
new file mode 100644 (file)
index 0000000..b3eb0c3
--- /dev/null
@@ -0,0 +1,148 @@
+<?php\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+\r
+       // nom du test\r
+       $test = 'cfg:depot_tablepack';\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
+### creation de la colonne cfg si absente ###\r
+\r
+       // creation de la colonne 'cfg' sur spip_auteurs si elle n'existe pas.\r
+       include_spip('base/abstract_sql');\r
+       $t = sql_showtable('spip_auteurs');\r
+       if (!isset($t['field']['cfg'])) {\r
+               sql_alter('TABLE spip_auteurs ADD COLUMN cfg TEXT DEFAULT \'\' NOT NULL');\r
+       }\r
+       \r
+### creation de la colonne 'extra' si absente ###\r
+\r
+       // creation de la colonne 'cfg' sur spip_auteurs si elle n'existe pas.\r
+       include_spip('base/abstract_sql');\r
+       $t = sql_showtable('spip_rubriques');\r
+       if (!isset($t['field']['extra'])) {\r
+               sql_alter('TABLE spip_rubriques ADD COLUMN extra TEXT DEFAULT \'\' NOT NULL');\r
+       }\r
+       \r
+       \r
+### ecrire_config ###\r
+       // les bases de test\r
+       $assoc = array(\r
+               'one' => 'element 1',\r
+               'two' => 'element 2',\r
+               'three' => array('un'=>1, 'deux'=>2, 'troisc'=>"3")\r
+\r
+       );\r
+       $serassoc = serialize($assoc);\r
+\r
+       \r
+       $essais = array();\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_zero', 0);\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_zeroc', '0');\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chaine', 'une chaine');          \r
+       $essais[] = array(true, 'tablepack::~/test_cfg_assoc', $assoc);\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_serie', serialize($assoc));\r
+       // chemins\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chemin/casier', $assoc);\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chemin/casier/truc', 'trac');\r
+       // dans rubriques\r
+       $id_rubrique = sql_getfetsel('id_rubrique', 'spip_rubriques', '', '', '', '0,1');\r
+       $essais[] = array(true, "tablepack::rubriques@extra:$id_rubrique/test_cfg_chemin/casier/truc", 'trac');\r
+       $essais[] = array(true, "tablepack::rubrique@extra:$id_rubrique/test_cfg_chemin/casier/chose", 'trac');\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 tablepack</b><dl>' . join('', $err) . '</dl>');\r
+       }\r
+       \r
+### re lire_config ###\r
+\r
+       $essais = array();\r
+       $essais[] = array(0, 'tablepack::~/test_cfg_zero');\r
+       $essais[] = array('0', 'tablepack::~/test_cfg_zeroc');\r
+       $essais[] = array('une chaine', 'tablepack::~/test_cfg_chaine');                \r
+       $essais[] = array($assoc, 'tablepack::~/test_cfg_assoc');\r
+       $essais[] = array(serialize($assoc), 'tablepack::~/test_cfg_serie');\r
+       // chemins\r
+       $essais[] = array($assoc + array('truc'=>'trac'), 'tablepack::~/test_cfg_chemin/casier');\r
+       $essais[] = array('trac', 'tablepack::~/test_cfg_chemin/casier/truc');\r
+       $essais[] = array(1, 'tablepack::~/test_cfg_chemin/casier/three/un');\r
+       // chemin pas la\r
+       $essais[] = array(null, 'tablepack::~/test_cfg_chemin/casier/three/huit');\r
+       // dans rubrique\r
+       $essais[] = array('trac', "tablepack::rubriques@extra:$id_rubrique/test_cfg_chemin/casier/truc");\r
+       $essais[] = array('trac', "tablepack::rubrique@extra:$id_rubrique/test_cfg_chemin/casier/chose");\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 tablepack</b><dl>' . join('', $err) . '</dl>');\r
+       }\r
+\r
+### re effacer_config ###\r
+\r
+       $essais = array();\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_zero');\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_zeroc');\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chaine');                \r
+       $essais[] = array(true, 'tablepack::~/test_cfg_assoc');\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_serie');\r
+       // chemins\r
+       // on enleve finement tout test_cfg_chemin : il ne doit rien rester\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chemin/casier/three/huit'); // n'existe pas\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chemin/casier/three/troisc');\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chemin/casier/three/deux');\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chemin/casier/three/un'); // supprime three\r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chemin/casier/one'); \r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chemin/casier/two'); \r
+       $essais[] = array(true, 'tablepack::~/test_cfg_chemin/casier/truc'); // supprimer chemin/casier\r
+       // dans rubrique\r
+       $essais[] = array(true, "tablepack::rubriques@extra:$id_rubrique/test_cfg_chemin/casier/truc");\r
+       $essais[] = array(true, "tablepack::rubrique@extra:$id_rubrique/test_cfg_chemin/casier/chose");\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 tablepack</b><dl>' . join('', $err) . '</dl>');\r
+       }\r
+\r
+       \r
+### re lire_config ###\r
+\r
+       $essais = array();\r
+       $essais[] = array(null, 'tablepack::~/test_cfg_zero');\r
+       $essais[] = array(null, 'tablepack::~/test_cfg_zeroc');\r
+       $essais[] = array(null, 'tablepack::~/test_cfg_chaine');                \r
+       $essais[] = array(null, 'tablepack::~/test_cfg_assoc');\r
+       $essais[] = array(null, 'tablepack::~/test_cfg_serie');\r
+       $essais[] = array(null, 'tablepack::~/test_cfg_chemin');\r
+       // dans rubrique\r
+       $essais[] = array(null, "tablepack::rubriques@extra:$id_rubrique/test_cfg_chemin/casier/truc");\r
+       $essais[] = array(null, "tablepack::rubrique@extra:$id_rubrique/test_cfg_chemin/casier/chose");\r
+       $essais[] = array(null, "tablepack::rubriques@extra:$id_rubrique/test_cfg_chemin");\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 tablepack</b><dl>' . join('', $err) . '</dl>');\r
+       }\r
+\r
+\r
+       echo "OK";\r
+\r
+?>\r