/Tests/Extension/UrlAutoConverterTwigExtensionTest.php

https://github.com/liip/LiipUrlAutoConverterBundle · PHP · 158 lines · 146 code · 9 blank · 3 comment · 0 complexity · ddab7aeaf8de00af8f4800b515604cd6 MD5 · raw file

  1. <?php
  2. namespace Liip\UrlAutoConverterBundle\Tests\Extension;
  3. use Liip\UrlAutoConverterBundle\Extension\UrlAutoConverterTwigExtension;
  4. class UrlAutoConverterTwigExtensionTest extends \PHPUnit_Framework_TestCase
  5. {
  6. public function testGetFilters()
  7. {
  8. $classInstance = new UrlAutoConverterTwigExtension();
  9. $returnArray = $classInstance->getFilters();
  10. $this->assertIsArray($returnArray);
  11. $this->assertNotEmpty($returnArray);
  12. $filter = reset($returnArray);
  13. $this->assertInstanceOf('Twig_SimpleFilter', $filter);
  14. $this->assertEquals(array('html'), $filter->getSafe(new \Twig_Node()));
  15. }
  16. public function provider()
  17. {
  18. return array(
  19. array(
  20. 'Lorem ipsum dolor sit amet, <a href="http://www.test.com" class="" target="">www.test.com</a> consectetuer.',
  21. 'Lorem ipsum dolor sit amet, www.test.com consectetuer.',
  22. ),
  23. array(
  24. 'Lorem ipsum dolor sit amet, <a href="http://test.com" class="" target="">test.com</a> consectetuer adipiscing',
  25. 'Lorem ipsum dolor sit amet, test.com consectetuer adipiscing',
  26. ),
  27. array(
  28. 'Lorem ipsum dolor sit amet, <a href="http://test.com" class="" target="">http://test.com</a> aksjdhasd.',
  29. 'Lorem ipsum dolor sit amet, http://test.com aksjdhasd.',
  30. ),
  31. array(
  32. 'Lorem ipsum dolor sit amet, <a href="http://www.test.com" class="" target="">http://www.test.com</a> aksjdhasd.',
  33. 'Lorem ipsum dolor sit amet, http://www.test.com aksjdhasd.',
  34. ),
  35. array(
  36. 'Lorem ipsum dolor sit amet, lala <a href="http://subtest.test.com" class="" target="">subtest.test.com</a> aksjdhasd.',
  37. 'Lorem ipsum dolor sit amet, lala subtest.test.com aksjdhasd.',
  38. ),
  39. array(
  40. 'Lorem ipsum dolor <a href="http://subsub.subtest.test.com" class="" target="">subsub.subtest.test.com</a> amet, lala aksjdhasd.',
  41. 'Lorem ipsum dolor subsub.subtest.test.com amet, lala aksjdhasd.',
  42. ),
  43. array(
  44. 'Lorem ipsum <a href="http://subsubsub.subtest.test.com" class="" target="">subsubsub.subtest.test.com</a> ad amet, lala aksjdhasd.',
  45. 'Lorem ipsum subsubsub.subtest.test.com ad amet, lala aksjdhasd.',
  46. ),
  47. array(
  48. 'Lorem ipsum <a href="http://www.test.com/kjsdsd/safs?dfa=kdjf&sfddf=dsafsd" class="" target="">www.test.com/kjsdsd/safs?dfa=kdjf&sfddf=dsafsd</a> ad amet, lala aksjdhasd.',
  49. 'Lorem ipsum www.test.com/kjsdsd/safs?dfa=kdjf&sfddf=dsafsd ad amet, lala aksjdhasd.',
  50. ),
  51. array(
  52. 'Lorem ipsum <a href="http://www.test.com/kjsdsd/safs.php?dfa=kdjf&sfddf=dsafsd" class="" target="">www.test.com/kjsdsd/safs.php?dfa=kdjf&sfddf=dsafsd</a> ad amet, lala aksjdhasd.',
  53. 'Lorem ipsum www.test.com/kjsdsd/safs.php?dfa=kdjf&sfddf=dsafsd ad amet, lala aksjdhasd.',
  54. ),
  55. array(
  56. '<a href="#">testlink</a>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean <a href="http://www.che" class="" target="">www.che</a> chcommodo <a href="http://ligula.kkkk" class="" target="">ligula.kkkk</a> ligula.kkkkk dolor. Aenean massa. Cum <a href="http://sociis.com" class="" target="">http://sociis.com</a> natoque penatibus et magnis dis parturient montes, nascetur <a href="http://sub.sub.sub.something.com" class="" target="">sub.sub.sub.something.com</a> <a href="http://sub.sub.sub.something.com" class="" target="">http://sub.sub.sub.something.com</a> <a href="http://www.sub.sub.sub.something.com" class="" target="">www.sub.sub.sub.something.com</a> ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. <a href="mailto:andre.abt@liip.ch" class="" target="">andre.abt@liip.ch</a> Nulla consequat <a href="mailto:test@eisd.com" class="" target="">test@eisd.com</a> massa <a href="http://www.test.com/kjsdsd/safs?dfa=kdjf&sfddf=dsafsd" class="" target="">www.test.com/kjsdsd/safs?dfa=kdjf&sfddf=dsafsd</a> quis enim.',
  57. '<a href="#">testlink</a>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean www.che chcommodo ligula.kkkk ligula.kkkkk dolor. Aenean massa. Cum http://sociis.com natoque penatibus et magnis dis parturient montes, nascetur sub.sub.sub.something.com http://sub.sub.sub.something.com www.sub.sub.sub.something.com ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. andre.abt@liip.ch Nulla consequat test@eisd.com massa www.test.com/kjsdsd/safs?dfa=kdjf&sfddf=dsafsd quis enim.',
  58. ),
  59. array(
  60. 'Lorem ipsum dolor sit amet, <a href="https://any.kind.of.domain.tld/" class="" target="">https://any.kind.of.domain.tld/</a> consectetuer.',
  61. 'Lorem ipsum dolor sit amet, https://any.kind.of.domain.tld/ consectetuer.',
  62. ),
  63. array(
  64. 'Lorem ipsum dolor sit amet, <a href="https://any.kind.of.domain.tld/with/path/of/any/depth.ext" class="" target="">https://any.kind.of.domain.tld/with/path/of/any/depth.ext</a> consectetuer adipiscing',
  65. 'Lorem ipsum dolor sit amet, https://any.kind.of.domain.tld/with/path/of/any/depth.ext consectetuer adipiscing',
  66. ),
  67. array(
  68. 'Lorem ipsum <a href="http://test.com">testlink</a> aksjdhasd',
  69. 'Lorem ipsum <a href="http://test.com">testlink</a> aksjdhasd',
  70. ),
  71. array(
  72. 'Lorem ipsum dolor sit amet, <a href="mailto:test@test.com" class="" target="">test@test.com</a> consectetuer.',
  73. 'Lorem ipsum dolor sit amet, test@test.com consectetuer.',
  74. ),
  75. array(
  76. 'Lorem ipsum <a href="mailto:test.test@test.com" class="" target="">test.test@test.com</a> dolor sit amet, consectetuer.',
  77. 'Lorem ipsum test.test@test.com dolor sit amet, consectetuer.',
  78. ),
  79. array(
  80. 'Lorem ipsum <a href="mailto:test.test.test@test.com" class="" target="">test.test.test@test.com</a> dolor sit amet, consectetuer.',
  81. 'Lorem ipsum test.test.test@test.com dolor sit amet, consectetuer.',
  82. ),
  83. array(
  84. 'Lorem ipsum dolor sit amet, <a href="http://-rs.ch" class="" target="">-rs.ch</a> consectetuer.',
  85. 'Lorem ipsum dolor sit amet, -rs.ch consectetuer.',
  86. ),
  87. array(
  88. 'Lorem ipsum dolor sit amet, <a href="http://&&re.name" class="" target="">&&re.name</a> consectetuer.',
  89. 'Lorem ipsum dolor sit amet, &&re.name consectetuer.',
  90. ),
  91. array(
  92. 'Lorem ipsum dolor sit amet, <a href="http://&&http://re.name" class="" target="">&&http://re.name</a> consectetuer.',
  93. 'Lorem ipsum dolor sit amet, &&http://re.name consectetuer.',
  94. ),
  95. array(
  96. 'Lorem ipsum test.fffff dolor sit amet, consectetuer.',
  97. 'Lorem ipsum test.fffff dolor sit amet, consectetuer.',
  98. ),
  99. array(
  100. 'Lorem ipsum t.fff dolor sit amet, consectetuer.',
  101. 'Lorem ipsum t.fff dolor sit amet, consectetuer.',
  102. ),
  103. array(
  104. 'Lorem ipsum dolor sit amet, <a href="http://&&http://re.name" class="" target="">&&http://re.name</a>. Period!',
  105. 'Lorem ipsum dolor sit amet, &&http://re.name. Period!',
  106. ),
  107. array(
  108. 'Lorem ipsum dolor sit amet, <a href="http://&&http://re.name" class="" target="">&&http://re.name</a>, really?',
  109. 'Lorem ipsum dolor sit amet, &&http://re.name, really?',
  110. ),
  111. array(
  112. 'Lorem ipsum dolor sit amet, <a href="http://&&http://re.name" class="" target="">&&http://re.name</a>?',
  113. 'Lorem ipsum dolor sit amet, &&http://re.name?',
  114. ),
  115. array(
  116. 'Lorem ipsum dolor sit amet, <a href="http://www.test.com/myÄcçènted/page.htm" class="" target="">http://www.test.com/myÄcçènted/page.htm</a> consectetuer.',
  117. 'Lorem ipsum dolor sit amet, http://www.test.com/myÄcçènted/page.htm consectetuer.',
  118. ),
  119. array(
  120. 'Lorem ipsum dolor sit amet, <a href="http://www.test.com/my_page(with_parentheses).htm" class="" target="">http://www.test.com/my_page(with_parentheses).htm</a> consectetuer.',
  121. 'Lorem ipsum dolor sit amet, http://www.test.com/my_page(with_parentheses).htm consectetuer.',
  122. ),
  123. array(
  124. 'Lorem ipsum dolor sit amet, <a href="http://test.com?param=1" class="" target="">http://test.com?param=1</a> consectetuer.',
  125. 'Lorem ipsum dolor sit amet, http://test.com?param=1 consectetuer.',
  126. ),
  127. array(
  128. 'Lorem ipsum dolor sit amet, <a href="http://тест.рф" class="" target="">http://тест.рф</a> consectetuer.',
  129. 'Lorem ipsum dolor sit amet, http://тест.рф consectetuer.',
  130. ),
  131. array(
  132. 'Lorem ipsum dolor sit amet, <a href="http://test.com/foo,_bar" class="" target="">http://test.com/foo,_bar</a> consectetuer.',
  133. 'Lorem ipsum dolor sit amet, http://test.com/foo,_bar consectetuer.',
  134. ),
  135. );
  136. }
  137. /**
  138. * @dataProvider provider
  139. */
  140. public function testAutoConvertUrls($a, $b)
  141. {
  142. $classInstance = new UrlAutoConverterTwigExtension();
  143. $this->assertEquals($a, $classInstance->autoconverturls($b));
  144. }
  145. private function assertIsArray($test)
  146. {
  147. $this->assertTrue(is_array($test));
  148. }
  149. }