LinksAddTarget.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. );
  68. }
  69. /**
  70. * Validate the normalize_whitespace function
  71. *
  72. * @dataProvider get_input_output
  73. */
  74. function test_normalize_whitespace( $content, $target, $tags, $exp_str ) {
  75. if ( true === is_null( $target ) ) {
  76. $this->assertEquals( $exp_str, links_add_target( $content ) );
  77. } elseif ( true === is_null( $tags ) ) {
  78. $this->assertEquals( $exp_str, links_add_target( $content, $target ) );
  79. } else {
  80. $this->assertEquals( $exp_str, links_add_target( $content, $target, $tags ) );
  81. }
  82. }
  83. }