/tests/classicwr_inlineTagsTest.php

https://bitbucket.org/laurentj/wikirenderer · PHP · 102 lines · 82 code · 11 blank · 9 comment · 0 complexity · 97ed7e3a28bed12781a829ef00beba9d MD5 · raw file

  1. <?php
  2. /**
  3. * Tests unitaires
  4. *
  5. * @package wikirenderer
  6. * @subpackage tests
  7. * @author Laurent Jouanneau
  8. * @copyright 2006-2011 Laurent Jouanneau
  9. */
  10. require_once(WR_DIR.'rules/classicwr_to_xhtml.php');
  11. class classicwr_inlineTagsTest extends PHPUnit_Framework_TestCase {
  12. var $listinline = array(
  13. 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.'
  14. =>'<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>',
  15. 'Lorem __ipsum dolor__ sit amet, consectetuer adipiscing elit.'
  16. =>'<p>Lorem <strong>ipsum dolor</strong> sit amet, consectetuer adipiscing elit.</p>',
  17. 'Lorem ipsum dolor \'\'sit amet\'\', consectetuer adipiscing elit.'
  18. =>'<p>Lorem ipsum dolor <em>sit amet</em>, consectetuer adipiscing elit.</p>',
  19. 'Lorem ipsum dolor sit amet, @@consectetuer@@ adipiscing elit.'
  20. =>'<p>Lorem ipsum dolor sit amet, <code>consectetuer</code> adipiscing elit.</p>',
  21. 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.'
  22. =>'<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>',
  23. 'Lorem ipsum ^^dolor sit amet^^, consectetuer adipiscing elit.'
  24. =>'<p>Lorem ipsum <q>dolor sit amet</q>, consectetuer adipiscing elit.</p>',
  25. 'Lorem ipsum ^^dolor sit amet|fr^^, consectetuer adipiscing elit.'
  26. =>'<p>Lorem ipsum <q lang="fr">dolor sit amet</q>, consectetuer adipiscing elit.</p>',
  27. 'Lorem ipsum ^^dolor sit amet|fr|foo bar^^, consectetuer adipiscing elit.'
  28. =>'<p>Lorem ipsum <q lang="fr" cite="foo bar">dolor sit amet</q>, consectetuer adipiscing elit.</p>',
  29. 'Lorem ipsum dolor sit amet, {{consectetuer adipiscing}} elit.'
  30. =>'<p>Lorem ipsum dolor sit amet, <cite>consectetuer adipiscing</cite> elit.</p>',
  31. 'Lorem ipsum dolor sit amet, {{consectetuer adipiscing|un titre}} elit.'
  32. =>'<p>Lorem ipsum dolor sit amet, <cite title="un titre">consectetuer adipiscing</cite> elit.</p>',
  33. 'Lorem ipsum dolor sit amet, ??consectetuer adipiscing?? elit.'
  34. =>'<p>Lorem ipsum dolor sit amet, <acronym>consectetuer adipiscing</acronym> elit.</p>',
  35. 'Lorem ipsum dolor sit amet, ??consectetuer adipiscing|un titre?? elit.'
  36. =>'<p>Lorem ipsum dolor sit amet, <acronym title="un titre">consectetuer adipiscing</acronym> elit.</p>',
  37. 'Lorem [ipsum dolor] sit amet, consectetuer adipiscing elit.'
  38. =>'<p>Lorem <a href="ipsum dolor">ipsum dolor</a> sit amet, consectetuer adipiscing elit.</p>',
  39. 'Lorem [ipsum dolor|http://foo.com] sit amet, consectetuer adipiscing elit.'
  40. =>'<p>Lorem <a href="http://foo.com">ipsum dolor</a> sit amet, consectetuer adipiscing elit.</p>',
  41. 'Lorem [ipsum dolor|javascript:alert(window.title)] sit amet, consectetuer adipiscing elit.'
  42. =>'<p>Lorem <a href="#">ipsum dolor</a> sit amet, consectetuer adipiscing elit.</p>',
  43. 'Lorem [ipsum dolor|bar|fr] sit amet, consectetuer adipiscing elit.'
  44. =>'<p>Lorem <a href="bar" hreflang="fr">ipsum dolor</a> sit amet, consectetuer adipiscing elit.</p>',
  45. 'Lorem [ipsum dolor|bar|fr|ceci est un titre] sit amet, consectetuer adipiscing elit.'
  46. =>'<p>Lorem <a href="bar" hreflang="fr" title="ceci est un titre">ipsum dolor</a> sit amet, consectetuer adipiscing elit.</p>',
  47. 'Lorem ((ipsumdolorsit.png)) amet, consectetuer adipiscing elit.'
  48. =>'<p>Lorem <img src="ipsumdolorsit.png" alt=""/> amet, consectetuer adipiscing elit.</p>',
  49. 'Lorem ((ipsumdolorsit.png|alternative text)) amet, consectetuer adipiscing elit.'
  50. =>'<p>Lorem <img alt="alternative text" src="ipsumdolorsit.png"/> amet, consectetuer adipiscing elit.</p>',
  51. 'Lorem ((ipsumdolorsit.png|alternative text|L)) amet, consectetuer adipiscing elit.'
  52. =>'<p>Lorem <img style="float:left;" alt="alternative text" src="ipsumdolorsit.png"/> amet, consectetuer adipiscing elit.</p>',
  53. 'Lorem ((ipsumdolorsit.png|alternative text|R|longue description)) amet, consectetuer adipiscing elit.'
  54. =>'<p>Lorem <img longdesc="longue description" style="float:right;" alt="alternative text" src="ipsumdolorsit.png"/> amet, consectetuer adipiscing elit.</p>',
  55. 'Lorem ~~ipsumdolorsit~~ amet, consectetuer adipiscing elit.'
  56. =>'<p>Lorem <a name="ipsumdolorsit"></a> amet, consectetuer adipiscing elit.</p>',
  57. );
  58. var $listinline2 = array(
  59. // 'source' => array( nb_error, 'resultat')
  60. 'Lorem __ipsum \'\'dolor sit\'\' amet__, consectetuer adipiscing elit.'
  61. =>array(0,'<p>Lorem <strong>ipsum <em>dolor sit</em> amet</strong>, consectetuer adipiscing elit.</p>'),
  62. 'Lorem __ipsum \'\'dolor sit__ amet\'\', consectetuer adipiscing elit.'
  63. =>array(1,'<p>Lorem __ipsum \'\'dolor sit__ amet\'\', consectetuer adipiscing elit.</p>'),
  64. 'Lorem __ipsum \'\'dolor sit__ amet__, consectetuer adipiscing elit.'
  65. =>array(1,'<p>Lorem __ipsum \'\'dolor sit<strong> amet</strong>, consectetuer adipiscing elit.</p>'),
  66. 'Lorem [ips__um dol__or|bar|fr] sit amet, consectetuer adipiscing elit.'
  67. =>array(0,'<p>Lorem <a href="bar" hreflang="fr">ips<strong>um dol</strong>or</a> sit amet, consectetuer adipiscing elit.</p>'),
  68. 'Lorem [ips[um dol]or|bar|fr] sit amet, consectetuer adipiscing elit.'
  69. =>array(0,'<p>Lorem <a href="bar" hreflang="fr">ips<a href="um dol">um dol</a>or</a> sit amet, consectetuer adipiscing elit.</p>'),
  70. 'Lorem [ips[um dolor|bar|fr] sit] amet, consectetuer adipiscing elit.'
  71. =>array(0,'<p>Lorem <a href="ips[um dolor|bar|fr] sit">ips[um dolor|bar|fr] sit</a> amet, consectetuer adipiscing elit.</p>'),
  72. 'Lorem [ips__um dolor|bar|fr] sit__ amet, consectetuer adipiscing elit.'
  73. =>array(1,'<p>Lorem [ips<strong>um dolor|bar|fr] sit</strong> amet, consectetuer adipiscing elit.</p>'),
  74. );
  75. function testBalisesInlineSimples() {
  76. $wr = new WikiRenderer('classicwr_to_xhtml');
  77. foreach($this->listinline as $source=>$result){
  78. $res = $wr->render($source);
  79. $this->assertEquals($result, $res);
  80. $this->assertEquals(0, count($wr->errors), "Erreurs détéctées par wr ! (%s)");
  81. }
  82. }
  83. function testBalisesInlineComplexes() {
  84. $wr = new WikiRenderer('classicwr_to_xhtml');
  85. foreach($this->listinline2 as $source=>$result){
  86. $res = $wr->render($source);
  87. $this->assertEquals($result[1], $res);
  88. $this->assertEquals($result[0], count($wr->errors), "Nombre d'erreurs différents (%s)");
  89. }
  90. }
  91. }