LinksAddTarget.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. /**
  3. * @group formatting
  4. */
  5. class Tests_Formatting_LinksAddTarget extends WP_UnitTestCase {
  6. /**
  7. * Test Content DataProvider
  8. *
  9. * array ( input_txt, converted_output_txt)
  10. */
  11. public function get_input_output() {
  12. return array(
  13. array(
  14. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> END TEXT',
  15. null,
  16. null,
  17. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC" target="_blank">LINK</a> HERE </div> END TEXT',
  18. ),
  19. array(
  20. 'MY CONTENT <div> SOME ADDITIONAL TEXT <A href="XYZ" src="ABC">LINK</A> HERE </div> END TEXT',
  21. null,
  22. null,
  23. 'MY CONTENT <div> SOME ADDITIONAL TEXT <A href="XYZ" src="ABC" target="_blank">LINK</A> HERE </div> END TEXT',
  24. ),
  25. array(
  26. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <a href="XYZ" >LINK</a>END TEXT',
  27. null,
  28. null,
  29. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC" target="_blank">LINK</a> HERE </div> <a href="XYZ" target="_blank">LINK</a>END TEXT',
  30. ),
  31. array(
  32. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span>END TEXT</span>',
  33. '_top',
  34. null,
  35. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC" target="_top">LINK</a> HERE </div> <span>END TEXT</span>',
  36. ),
  37. array(
  38. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span>END TEXT</span>',
  39. '_top',
  40. array( 'span' ),
  41. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span target="_top">END TEXT</span>',
  42. ),
  43. array(
  44. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span>END TEXT</span>',
  45. '_top',
  46. array( 'SPAN' ),
  47. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span target="_top">END TEXT</span>',
  48. ),
  49. array(
  50. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span target="_top">END TEXT</span>',
  51. '_top',
  52. array( 'span', 'div' ),
  53. 'MY CONTENT <div target="_top"> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span target="_top">END TEXT</span>',
  54. ),
  55. array(
  56. 'MY CONTENT <div target=\'ABC\'> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span target="xyz">END TEXT</span>',
  57. '_top',
  58. array( 'span', 'div' ),
  59. 'MY CONTENT <div target="_top"> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span target="_top">END TEXT</span>',
  60. ),
  61. array(
  62. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span target="xyz" src="ABC">END TEXT</span>',
  63. '_top',
  64. array( 'span' ),
  65. 'MY CONTENT <div> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </div> <span src="ABC" target="_top">END TEXT</span>',
  66. ),
  67. array(
  68. 'MY CONTENT <aside> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </aside> END TEXT',
  69. null,
  70. null,
  71. 'MY CONTENT <aside> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC" target="_blank">LINK</a> HERE </aside> END TEXT',
  72. ),
  73. array(
  74. 'MY CONTENT <aside class="_blank"> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC">LINK</a> HERE </aside> END TEXT',
  75. null,
  76. null,
  77. 'MY CONTENT <aside class="_blank"> SOME ADDITIONAL TEXT <a href="XYZ" src="ABC" target="_blank">LINK</a> HERE </aside> END TEXT',
  78. ),
  79. array(
  80. 'MY CONTENT <blockquote>SOME</blockquote> ADDITIONAL TEXT <b>LINK</b> HERE END TEXT',
  81. '_blank',
  82. array( 'b' ),
  83. 'MY CONTENT <blockquote>SOME</blockquote> ADDITIONAL TEXT <b target="_blank">LINK</b> HERE END TEXT',
  84. ),
  85. array(
  86. 'MY CONTENT <blockquote target="_self">SOME</blockquote> ADDITIONAL TEXT <b>LINK</b> HERE END TEXT',
  87. '_blank',
  88. array( 'b' ),
  89. 'MY CONTENT <blockquote target="_self">SOME</blockquote> ADDITIONAL TEXT <b target="_blank">LINK</b> HERE END TEXT',
  90. ),
  91. );
  92. }
  93. /**
  94. * Validate the normalize_whitespace function
  95. *
  96. * @dataProvider get_input_output
  97. */
  98. function test_normalize_whitespace( $content, $target, $tags, $exp_str ) {
  99. if ( true === is_null( $target ) ) {
  100. $this->assertSame( $exp_str, links_add_target( $content ) );
  101. } elseif ( true === is_null( $tags ) ) {
  102. $this->assertSame( $exp_str, links_add_target( $content, $target ) );
  103. } else {
  104. $this->assertSame( $exp_str, links_add_target( $content, $target, $tags ) );
  105. }
  106. }
  107. }