AssertHtmlTestCase.php 3.1 KB

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