alert("x")'), 'markdown_to_html échappe le HTML brut' ); assertNotContains( ''), 'markdown_to_html ne laisse passer aucune balise script' ); // --- Gras et italique -------------------------------------------------------- assertEquals( 'gras', markdown_to_html('**gras**'), 'markdown_to_html convertit **texte** en ' ); assertEquals( 'ital', markdown_to_html('*ital*'), 'markdown_to_html convertit *texte* en ' ); // --- Liens Markdown ---------------------------------------------------------- assertEquals( 'exemple', markdown_to_html('[exemple](https://exemple.com)'), 'markdown_to_html convertit un lien Markdown avec attributs de sécurité' ); assertEquals( 'site', markdown_to_html('[site](exemple.com)'), 'markdown_to_html ajoute http:// aux liens sans protocole' ); // --- URLs brutes ------------------------------------------------------------- assertEquals( 'Visite https://exemple.com/page pour info', markdown_to_html('Visite https://exemple.com/page pour info'), 'markdown_to_html rend les URLs http(s) brutes cliquables' ); assertEquals( 'va sur o-k-i.net maintenant', markdown_to_html('va sur o-k-i.net maintenant'), 'markdown_to_html rend les domaines nus cliquables (avec http://)' ); assertEquals( 'version v1.2 dispo', markdown_to_html('version v1.2 dispo'), 'markdown_to_html ne transforme pas un numéro de version en lien' ); // --- URLs contenant « & » : pas de double encodage --------------------------- // Le texte est échappé une seule fois : « & » devient « & », jamais « & » assertEquals( 'Voir https://exemple.com/page?a=1&b=2 suite', markdown_to_html('Voir https://exemple.com/page?a=1&b=2 suite'), 'markdown_to_html n\'encode pas deux fois le & des URLs brutes' ); assertEquals( 'lien', markdown_to_html('[lien](https://exemple.com/?x=1&y=2)'), 'markdown_to_html n\'encode pas deux fois le & des liens Markdown' ); assertNotContains( '&', markdown_to_html('https://exemple.com/page?a=1&b=2'), 'markdown_to_html ne produit jamais de &' ); // --- Listes ------------------------------------------------------------------ assertEquals( "", markdown_to_html("- a\n- b"), 'markdown_to_html convertit les listes à puces en