AssertHtmlTestCase.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace Cake\Test\Fixture;
  3. use Cake\TestSuite\TestCase;
  4. /**
  5. * This class helps in indirectly testing the functionalities of TestCase::assertHtml
  6. *
  7. */
  8. class AssertHtmlTestCase extends TestCase
  9. {
  10. /**
  11. * test that assertHtml knows how to handle correct quoting.
  12. *
  13. * @return void
  14. */
  15. public function testAssertHtmlQuotes()
  16. {
  17. $input = '<a href="/test.html" class="active">My link</a>';
  18. $pattern = [
  19. 'a' => ['href' => '/test.html', 'class' => 'active'],
  20. 'My link',
  21. '/a'
  22. ];
  23. $this->assertHtml($pattern, $input);
  24. $input = "<a href='/test.html' class='active'>My link</a>";
  25. $pattern = [
  26. 'a' => ['href' => '/test.html', 'class' => 'active'],
  27. 'My link',
  28. '/a'
  29. ];
  30. $this->assertHtml($pattern, $input);
  31. $input = "<a href='/test.html' class='active'>My link</a>";
  32. $pattern = [
  33. 'a' => ['href' => 'preg:/.*\.html/', 'class' => 'active'],
  34. 'My link',
  35. '/a'
  36. ];
  37. $this->assertHtml($pattern, $input);
  38. }
  39. /**
  40. * testNumericValuesInExpectationForAssertHtml
  41. *
  42. * @return void
  43. */
  44. public function testNumericValuesInExpectationForAssertHtml()
  45. {
  46. $value = 220985;
  47. $input = '<p><strong>' . $value . '</strong></p>';
  48. $pattern = [
  49. '<p',
  50. '<strong',
  51. $value,
  52. '/strong',
  53. '/p'
  54. ];
  55. $this->assertHtml($pattern, $input);
  56. $input = '<p><strong>' . $value . '</strong></p><p><strong>' . $value . '</strong></p>';
  57. $pattern = [
  58. '<p',
  59. '<strong',
  60. $value,
  61. '/strong',
  62. '/p',
  63. '<p',
  64. '<strong',
  65. $value,
  66. '/strong',
  67. '/p',
  68. ];
  69. $this->assertHtml($pattern, $input);
  70. $input = '<p><strong>' . $value . '</strong></p><p id="' . $value . '"><strong>' . $value . '</strong></p>';
  71. $pattern = [
  72. '<p',
  73. '<strong',
  74. $value,
  75. '/strong',
  76. '/p',
  77. 'p' => ['id' => $value],
  78. '<strong',
  79. $value,
  80. '/strong',
  81. '/p',
  82. ];
  83. $this->assertHtml($pattern, $input);
  84. }
  85. /**
  86. * testBadAssertHtml
  87. *
  88. * @return void
  89. */
  90. public function testBadAssertHtml()
  91. {
  92. $input = '<a href="/test.html" class="active">My link</a>';
  93. $pattern = [
  94. 'a' => ['hRef' => '/test.html', 'clAss' => 'active'],
  95. 'My link2',
  96. '/a'
  97. ];
  98. $this->assertHtml($pattern, $input);
  99. }
  100. /**
  101. * testBadAssertHtml
  102. *
  103. * @return void
  104. */
  105. public function testBadAssertHtml2()
  106. {
  107. $input = '<a href="/test.html" class="active">My link</a>';
  108. $pattern = [
  109. '<a' => ['href' => '/test.html', 'class' => 'active'],
  110. 'My link',
  111. '/a'
  112. ];
  113. $this->assertHtml($pattern, $input);
  114. }
  115. }