PageRenderTime 30ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 1ms

/lib/tests/htmlwriter_test.php

https://bitbucket.org/kudutest1/moodlegit
PHP | 172 lines | 101 code | 23 blank | 48 comment | 1 complexity | 77fdc3a44d8f4e63b42e5ba5007b8a19 MD5 | raw file
  1. <?php
  2. // This file is part of Moodle - http://moodle.org/
  3. //
  4. // Moodle is free software: you can redistribute it and/or modify
  5. // it under the terms of the GNU General Public License as published by
  6. // the Free Software Foundation, either version 3 of the License, or
  7. // (at your option) any later version.
  8. //
  9. // Moodle is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. // GNU General Public License for more details.
  13. //
  14. // You should have received a copy of the GNU General Public License
  15. // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
  16. /**
  17. * Unit tests for the html_writer class.
  18. *
  19. * @package core
  20. * @category phpunit
  21. * @copyright 2010 Tim Hunt
  22. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  23. */
  24. defined('MOODLE_INTERNAL') || die();
  25. global $CFG;
  26. require_once($CFG->libdir . '/outputcomponents.php');
  27. /**
  28. * Unit tests for the html_writer class.
  29. *
  30. * @copyright 2010 Tim Hunt
  31. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  32. */
  33. class html_writer_testcase extends basic_testcase {
  34. public function test_start_tag() {
  35. $this->assertEquals('<div>', html_writer::start_tag('div'));
  36. }
  37. public function test_start_tag_with_attr() {
  38. $this->assertEquals('<div class="frog">',
  39. html_writer::start_tag('div', array('class' => 'frog')));
  40. }
  41. public function test_start_tag_with_attrs() {
  42. $this->assertEquals('<div class="frog" id="mydiv">',
  43. html_writer::start_tag('div', array('class' => 'frog', 'id' => 'mydiv')));
  44. }
  45. public function test_end_tag() {
  46. $this->assertEquals('</div>', html_writer::end_tag('div'));
  47. }
  48. public function test_empty_tag() {
  49. $this->assertEquals('<br />', html_writer::empty_tag('br'));
  50. }
  51. public function test_empty_tag_with_attrs() {
  52. $this->assertEquals('<input type="submit" value="frog" />',
  53. html_writer::empty_tag('input', array('type' => 'submit', 'value' => 'frog')));
  54. }
  55. public function test_nonempty_tag_with_content() {
  56. $this->assertEquals('<div>Hello world!</div>',
  57. html_writer::nonempty_tag('div', 'Hello world!'));
  58. }
  59. public function test_nonempty_tag_empty() {
  60. $this->assertEquals('',
  61. html_writer::nonempty_tag('div', ''));
  62. }
  63. public function test_nonempty_tag_null() {
  64. $this->assertEquals('',
  65. html_writer::nonempty_tag('div', null));
  66. }
  67. public function test_nonempty_tag_zero() {
  68. $this->assertEquals('<div class="score">0</div>',
  69. html_writer::nonempty_tag('div', 0, array('class' => 'score')));
  70. }
  71. public function test_nonempty_tag_zero_string() {
  72. $this->assertEquals('<div class="score">0</div>',
  73. html_writer::nonempty_tag('div', '0', array('class' => 'score')));
  74. }
  75. public function test_div() {
  76. // All options.
  77. $this->assertEquals('<div class="frog" id="kermit">ribbit</div>',
  78. html_writer::div('ribbit', 'frog', array('id' => 'kermit')));
  79. // Combine class from attributes and $class.
  80. $this->assertEquals('<div class="amphibian frog">ribbit</div>',
  81. html_writer::div('ribbit', 'frog', array('class' => 'amphibian')));
  82. // Class only.
  83. $this->assertEquals('<div class="frog">ribbit</div>',
  84. html_writer::div('ribbit', 'frog'));
  85. // Attributes only.
  86. $this->assertEquals('<div id="kermit">ribbit</div>',
  87. html_writer::div('ribbit', '', array('id' => 'kermit')));
  88. // No options.
  89. $this->assertEquals('<div>ribbit</div>',
  90. html_writer::div('ribbit'));
  91. }
  92. public function test_start_div() {
  93. // All options.
  94. $this->assertEquals('<div class="frog" id="kermit">',
  95. html_writer::start_div('frog', array('id' => 'kermit')));
  96. // Combine class from attributes and $class.
  97. $this->assertEquals('<div class="amphibian frog">',
  98. html_writer::start_div('frog', array('class' => 'amphibian')));
  99. // Class only.
  100. $this->assertEquals('<div class="frog">',
  101. html_writer::start_div('frog'));
  102. // Attributes only.
  103. $this->assertEquals('<div id="kermit">',
  104. html_writer::start_div('', array('id' => 'kermit')));
  105. // No options.
  106. $this->assertEquals('<div>',
  107. html_writer::start_div());
  108. }
  109. public function test_end_div() {
  110. $this->assertEquals('</div>', html_writer::end_div());
  111. }
  112. public function test_span() {
  113. // All options.
  114. $this->assertEquals('<span class="frog" id="kermit">ribbit</span>',
  115. html_writer::span('ribbit', 'frog', array('id' => 'kermit')));
  116. // Combine class from attributes and $class.
  117. $this->assertEquals('<span class="amphibian frog">ribbit</span>',
  118. html_writer::span('ribbit', 'frog', array('class' => 'amphibian')));
  119. // Class only.
  120. $this->assertEquals('<span class="frog">ribbit</span>',
  121. html_writer::span('ribbit', 'frog'));
  122. // Attributes only.
  123. $this->assertEquals('<span id="kermit">ribbit</span>',
  124. html_writer::span('ribbit', '', array('id' => 'kermit')));
  125. // No options.
  126. $this->assertEquals('<span>ribbit</span>',
  127. html_writer::span('ribbit'));
  128. }
  129. public function test_start_span() {
  130. // All options.
  131. $this->assertEquals('<span class="frog" id="kermit">',
  132. html_writer::start_span('frog', array('id' => 'kermit')));
  133. // Combine class from attributes and $class.
  134. $this->assertEquals('<span class="amphibian frog">',
  135. html_writer::start_span('frog', array('class' => 'amphibian')));
  136. // Class only.
  137. $this->assertEquals('<span class="frog">',
  138. html_writer::start_span('frog'));
  139. // Attributes only.
  140. $this->assertEquals('<span id="kermit">',
  141. html_writer::start_span('', array('id' => 'kermit')));
  142. // No options.
  143. $this->assertEquals('<span>',
  144. html_writer::start_span());
  145. }
  146. public function test_end_span() {
  147. $this->assertEquals('</span>', html_writer::end_span());
  148. }
  149. }