[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / exec / test_couteau_suisse.php
diff --git a/www/plugins/auto/couteau_suisse/couteau_suisse/exec/test_couteau_suisse.php b/www/plugins/auto/couteau_suisse/couteau_suisse/exec/test_couteau_suisse.php
new file mode 100644 (file)
index 0000000..b0e9caf
--- /dev/null
@@ -0,0 +1,225 @@
+ <?php\r
+#-----------------------------------------------------#\r
+#  Plugin  : Couteau Suisse - Licence : GPL           #\r
+#  Auteur  : Patrice Vanneufville, 2006               #\r
+#  Contact : patrice¡.!vanneufville¡@!laposte¡.!net   #\r
+#  Infos : http://www.spip-contrib.net/?article2166   #\r
+#-----------------------------------------------------#\r
+\r
+/*\r
+       Cette page test certaines fonctions presentes dans le plugin\r
+       Pour rajouter des tests, rdv tout en bas de cette page !\r
+*/\r
+\r
+include_spip('inc/texte');\r
+include_spip('inc/layer');\r
+include_spip("inc/presentation");\r
+\r
+function exec_test_couteau_suisse() {\r
+cs_log("DEDUT : exec_test_couteau_suisse()");\r
+       global $connect_statut, $connect_toutes_rubriques;\r
+\r
+       cs_minipres();\r
+\r
+       // initialisation generale forcee : recuperation de $outils;\r
+       cs_initialisation(true);\r
+\r
+       $commencer_page = charger_fonction('commencer_page', 'inc');\r
+       echo $commencer_page(_T('couteauprive:titre_tests'), "configuration", 'couteau_suisse');\r
+\r
+       echo '<br /><br /><br />', gros_titre(_T('couteauprive:titre_tests'), '', false), \r
+               '<div style="width:98%; text-align:left; margin:0 auto">';\r
+       // et hop, on lance les tests !\r
+       cs_les_tests();\r
+       echo '</div>';\r
+\r
+       echo fin_page();\r
+cs_log(" FIN : exec_test_couteau_suisse()");\r
+}\r
+\r
+// renvoie un tableau contenant le texte original et sa transfrmation par la fonction $fonction\r
+// $textes est un tableau de chaines\r
+function cs_test_fun(&$textes, $fonction) {\r
+       $a = array();\r
+       if (!function_exists($fonction)) return array('erreur' => "$fonction() introuvable : outil non activ&eacute; !");\r
+       foreach ($textes as $i=>$t) {\r
+               $b = $fonction($t);\r
+               $a["$i. test"] = htmlentities($t, ENT_COMPAT, $GLOBALS['meta']['charset']);\r
+//             $a["\$resultat[$i]"] = htmlentities($b);\r
+               $a["$i. r&eacute;sultat"] = str_replace("\n",'\n', $b);\r
+       }\r
+       return $a;\r
+}\r
+\r
+// affiche un cadre de titre $titre base sur les donnees de $array\r
+function test_outil($array, $titre) {\r
+       global $icone;\r
+       static $i; $i++;\r
+       echo "<a id=$i></a>",debut_cadre_trait_couleur($icone,true,'',"$i. $titre");\r
+       foreach($array as $s=>$v) if(is_array($v))\r
+                       foreach($v as $s2=>$v2) echo "\n<b>{$s}[$s2]</b> = ".trim($v2)."<br />";\r
+               else echo "\n<b>$s</b> = ".trim($v)."<br />";\r
+       echo fin_cadre_trait_couleur(true);\r
+}\r
+\r
+// affiche un text en rouge\r
+function cs_red($s){ return "<span style='color:red;'>$s</span>"; }\r
+\r
+// effectue tous les tests !\r
+function cs_les_tests() {\r
+       global $icone, $metas_vars, $metas_outils;\r
+       $icone = find_in_path('img/couteau-24.gif');\r
+\r
+       test_outil($_SERVER, 'Echo de : $_SERVER[]');\r
+       test_outil($_ENV, 'Echo de : $_ENV[]');\r
+       global $HTTP_ENV_VARS;\r
+       test_outil($HTTP_ENV_VARS, 'Echo de : $HTTP_ENV_VARS');\r
+       $a = array('DOCUMENT_ROOT'=>getenv('DOCUMENT_ROOT'),\r
+                       'REQUEST_URI'=>getenv('REQUEST_URI'),\r
+                       'SCRIPT_NAME'=>getenv('SCRIPT_NAME'),\r
+                       'PHP_SELF'=>getenv('PHP_SELF'),\r
+               );\r
+       test_outil($a, 'Echo de : getenv()');\r
+\r
+       // lecture des variables stockees en meta\r
+       test_outil($metas_outils, 'Outils actifs : $metas_outils[]');\r
+       test_outil($metas_vars, 'Contenu des variables : $metas_vars[]');\r
+\r
+       // test de url_absolue()\r
+       $relative_path = find_in_path('img/smileys');\r
+       $realpath = str_replace("\\", "/", realpath($relative_path));\r
+       $root = preg_replace(',/$,', '', $_SERVER['DOCUMENT_ROOT']);\r
+       $test_result=substr($realpath, strlen($root));\r
+       $dir = dirname(!empty($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] :\r
+                       (!empty($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] :\r
+                       (!empty($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : str_replace('\\','/',__FILE__)\r
+               )));\r
+       $a = array('DOCUMENT_ROOT'=>$_SERVER['DOCUMENT_ROOT'],\r
+                       'REQUEST_URI'=>$_SERVER['REQUEST_URI'],\r
+                       'SCRIPT_NAME'=>$_SERVER['SCRIPT_NAME'],\r
+                       'PHP_SELF'=>$_SERVER['PHP_SELF'],\r
+                       '__FILE__'=>__FILE__,\r
+                       '$root'=>$root,\r
+                       "find_in_path('img/smileys')"=>find_in_path('img/smileys'),\r
+                       "str_replace('\\', '/', realpath('$relative_path'))"=>$realpath,\r
+                       "substr('$realpath', strlen('$root'))"=>cs_red($test_result),\r
+                       "return?"=>(strlen($root) && strpos($realpath, $root)===0)?'oui':'non',\r
+                       "url_absolue('$relative_path')"=>url_absolue($relative_path),\r
+                       '$dir'=>$dir,\r
+                       "cs_canonicalize('$dir'.'/'.'$relative_path')"=>cs_red(cs_canonicalize($dir.'/'.$relative_path)),\r
+               );\r
+       test_outil($a, 'Test sur : url_absolue()');\r
+\r
+       // test de cs_canonicalize()\r
+       $dir = $dir.'/'.$relative_path;\r
+       $address = str_replace("//", "/", $dir);\r
+       $address1 = $address2 = explode('/', $address);\r
+       $keys = array_keys($address2, '..');\r
+       foreach($keys as $keypos => $key) array_splice($address2, $key - ($keypos * 2 + 1), 2);\r
+       $address3 = preg_replace(',([^.])\./,', '\1', implode('/', $address2));\r
+       $a = array('$dir'=>$dir,\r
+                       '$address'=>$address,\r
+                       "explode('/', '$address')"=>$address1,\r
+                       'array_keys($dessus, "..")'=>$keys,\r
+                       'array_spliced()'=>$address2,\r
+                       '$resultat'=>cs_red($address3),\r
+               );\r
+       test_outil($a, 'Test sur : cs_canonicalize()');\r
+\r
+       // charger mes_fonctions, utile pour les filtres ou certains outils\r
+       include_spip('public/parametrer');\r
+\r
+       // test de typo_exposants()\r
+       include_spip('inc/charsets');\r
+       $textes = array(\r
+               "Pr Paul, Dr Jules, Prs Pierre &amp; Paul, Drs Pierre &amp; Paul. Surveiller : Pr&eacute;-St-Gervais ou Dr&eacute;",\r
+               "Ste Lucie, St-Lucien, St.Patrick, St Patrick, st-jules (laisser?), Sts Pierre &amp; Paul, STe Lucie (laisser?)",\r
+               "Bse Lucie, Bx-Lucien, Bx.Patrick, Bx Patrick, bx-jules (laisser?), Bses Jeanne &amp; Julie",\r
+               "Ier, Iers, Iier, Iiers, Ire (laisser?), Ires (laisser?), I&#232;re, 1i&#232;re, 1&#232;res, 1i&#232;res",\r
+               unicode2charset("Accents : I&#232;re, 1i&#232;re, 1&#232;res, 1i&#232;res - ro, vo, rro, 1o, 2o, 22o, Mgr J.XXIII"),\r
+               unicode2charset("Ie II&#232;me IIIe IVe Ve VIe VIIe VIIIe IXe Xe XIe XVe XXe"),\r
+               unicode2charset("Erreurs de typo : 2me, 3&#232;me, 4i&#232;me, 5mes, 6&#232;mes, 7i&#232;mes"),\r
+               unicode2charset("Cas probl&#233;matique du L (50) : XLe XL&#232;me XLi&#232;me L&#232;me LIe"),\r
+               "1er 1ers, 1eres, 2e 2es, IIIe IIIes, 2nd 22nd 21nd 2ndes. Vve Martin Cie Tartuffe, 3 Bd Voltaire.",\r
+               "3 ou 4 m², 3 ou 4 m2 et 2 m3. 50 Mds ou 50 Mns ! Sté, St&eacute;s, Stés, Ste, Ets, Éts, Éts, &Eacute;ts, &#201;ts ...",\r
+               "Mlle, Mlles, Mme, Mmes et erreurs Melle, Melles",\r
+               "Me, Me martin, Me Martin, Mes M.&T., MMes M.&T.",\r
+               'avant <a href="www.mon-1er-lien.com" title="Mon 1er titre">Mon 1er lien</a> et <img src="image.jpg" alt="logo 6e" title="Cliquez!">',\r
+               'avant [Mon 1er lien->www.mon-1er-lien.com] apres le "test"!',\r
+               'on est pass&eacute; du 7e au 15e rang, pas du 17e au 5e, des 7es aux 3emes !',\r
+               'on est pass&eacute; du 7eme au 15&#232;me rang, pas du 17ieme au 5&egrave;me',\r
+       );\r
+       test_outil(cs_test_fun($textes, 'typo_exposants'), 'Test sur : typo_exposants() - Charset du site : '.$GLOBALS['meta']['charset']);\r
+\r
+       // test de typo_guillemets()\r
+       $textes = array(\r
+               'avant <i class="style">le</i> "test"!',\r
+               'avant <code class="code">toto</code>. apres le "test"!',\r
+               'avant '.echappe_html('<script>toto</script>', 'TEST', true).'apres le "test"!',\r
+               'avant '.echappe_html('<code class="code">toto</code>', 'TEST', true).'apres le "test"!',\r
+               'avant <a href="www.monlien.com" title="Mon titre" target="_blank">Mon lien</a> apres le "test"!',\r
+               'avant [Mon lien->www.monlien.com] apres le "test"!',\r
+       );\r
+       test_outil(cs_test_fun($textes, 'typo_guillemets'), 'Test sur : typo_guillemets()');\r
+\r
+       // test des smileys\r
+       $textes = array(\r
+               "Doubles : :-(( :-)) :)) :'-)) :\92-))",\r
+               "Simples : :-> :-&gt; :-( :-D :-) |-) :'-) :\92-) :'-D :\92-D :'-( :\92-( :-( :o) B-) ;-) :-p :-P' :-| :-/ :-o :-O",\r
+               "les courts (reconnus s'il y a un espace avant) : :) :( ;) :| |) :/ :(",\r
+       );\r
+       test_outil(cs_test_fun($textes, 'cs_smileys_pre_typo'), 'Test sur : cs_smileys_pre_typo()');\r
+\r
+       // test des filets\r
+       $textes = array(\r
+               "__degrade.png__\n__ornement.png__",\r
+               "\n__6__\n__5__\n__4__\n__3__\n__2__\n__1__\n__0__\n",\r
+       );\r
+       if(function_exists('filets_sep'))\r
+               test_outil(cs_test_fun($textes, create_function('$t','return propre(filets_sep($t));')), 'Test sur : filets_sep()');\r
+\r
+       // test des liens orphelins\r
+       $GLOBALS["liens_orphelins_etendu"]=true;\r
+       $textes = array(\r
+               "http://google.fr et <html>http://google.fr</html> et <code>http://google.fr</code> et <cite>http://google.fr</cite>",\r
+               "Voici : http://google.fr. Voici :http://www.google.fr. Voici http://www.google.fr",\r
+               "voici : https://mabanque.fr ou encore ftp://mabanque.fr!",\r
+               "www.google.fr ou bien : www.google.fr",\r
+               "http://user:password@www.commentcamarche.net:80/glossair/glossair.php3 et http://serveur:port/repertoire/fichier.html",\r
+               "ftp://serveur/repertoire/fichier.qqchose, ou encore ftp.stockage.fr/tropdelaballe...",\r
+               "file:///disque|/repertoire/fichier.qqchose et : file:///c|/tmp/fichier.txt",\r
+               "mailto:nom@organisation.domaine et : mailto:Fabien.Gandon@sophia.inria.fr",\r
+               "telnet://bbs.monsite.com/ et telnet://Nom:Password@serveur.ici:port",\r
+               "telnet://gandonf:abcde@gopa.insa.fr:23",\r
+               "gopher://serveur.ici:port/repertoire/fichier#marqueur et gopher://gopher.monsite.com/",\r
+               "newsrc://serveur:port/repertoire/nom.de.la.news",\r
+               "wais://host.ici:port/database et wais://wais.monsite.com/",\r
+               "news:fr.comp.lang.c++ et pkoi pas : <div toto='ici.rien'></div>http://google.fr",\r
+               "moi+moi@world.com, mailto:moi-moi@world.com, mailto:nom@provider.com?subject=renseignement",\r
+               "moi+moi@kekpar.tm.fr, mailto:moi-moi@kekpar.tm.fr, mailto:nom@provider.com.tm.fr?subject=renseignement",\r
+               'une image ? <img src="http://mailer.e-flux.com/mail_images/toto.jpg" alt="" />',\r
+               '[<img src="http://mailer.e-flux.com/mail_images/toto.jpg" alt="" />->http://www.americas-society.org/] ',\r
+       );\r
+//     test_outil(cs_test_fun($textes, 'typo'), 'Test sur : echappements');\r
+       test_outil(cs_test_fun($textes, 'liens_orphelins'), 'Test sur : liens_orphelins()');\r
+\r
+       $textes = array(\r
+               "mailto:nom@organisation.domaine et : mailto:Fabien.Gandon@sophia.inria.fr (on supprime ces liens)",\r
+               "moi+moi@world.com, mailto:moi-moi@world.com, mailto:nom@provider.com?subject=renseignement",\r
+               "pat@moi.com [->pat@moi.com] [pat->pat@moi.com]",\r
+               "pat@moi.com.tm.fr [->pat@moi.com.tm.fr] [pat->pat@moi.com.tm.fr]",\r
+               "<a href='mailto:moi@toto.com'>Moi</a> et : <a href='mailto:moi@toto.com'>moi@toto.com</a>",\r
+               "<a href='mailto:moi@kekpar.tm.fr'>Moi</a> et : <a href='mailto:moi@kekpar.tm.fr'>moi@kekpar.tm.fr</a>",\r
+               '[Navigation->/@mot.html] <a class="spip_out" href="/@mot.html">Navigation</a>',\r
+       );\r
+       test_outil(cs_test_fun($textes, 'mailcrypt'), 'Test sur : mailcrypt()');\r
+\r
+/*\r
+define('_COULEURS_FONDS', 1); define('_COULEURS_SET', 1);\r
+define('_COULEURS_PERSO', "bas =#99CC11, haut= brown, test= bleu");\r
+couleurs_installe_dist();\r
+print_r(couleurs_pre_typo("to[bas]to[/bas]to[haut]to[/haut]toto[test]to[/couleur]to\nto[bg bas]to[/bg]to[bg haut]to[/bg]toto[bg test]to[/bg test]to\n"));\r
+print_r(couleurs_pre_typo("to[red]to[/red]to[bleu]to[/bleu]toto[rouge]to[/couleur]to\nto[bg red]to[/bg]to[bg bleu]to[/bg]toto[bg rouge]to[/bg rouge]to\n"));\r
+*/\r
+}\r
+?>
\ No newline at end of file