outputfactories_test.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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 lib/outputfactories.php.
  18. *
  19. * @package core
  20. * @category phpunit
  21. * @copyright 2014 Damyon Wiese
  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 . '/outputfactories.php');
  27. require_once($CFG->libdir . '/tests/fixtures/test_renderer_factory.php');
  28. /**
  29. * Unit tests for the user_picture class.
  30. */
  31. class core_outputfactories_testcase extends advanced_testcase {
  32. public function test_nonautoloaded_classnames() {
  33. global $PAGE;
  34. $renderer = $PAGE->get_renderer('mod_assign');
  35. }
  36. public function test_autoloaded_classnames() {
  37. $testfactory = new test_output_factory();
  38. $component = 'mod_assign';
  39. $subtype = 'custom';
  40. $target = RENDERER_TARGET_AJAX;
  41. $paths = $testfactory->get_standard_renderer_factory_search_paths('');
  42. $this->assertSame($paths, array (
  43. '\\core\\output\\renderer_cli',
  44. 'core_renderer_cli',
  45. '\\core\\output\\renderer',
  46. 'core_renderer',
  47. ));
  48. $paths = $testfactory->get_standard_renderer_factory_search_paths($component);
  49. $this->assertSame($paths, array (
  50. '\\mod_assign\\output\\renderer_cli',
  51. 'mod_assign_renderer_cli',
  52. '\\mod_assign\\output\\renderer',
  53. 'mod_assign_renderer',
  54. ));
  55. $paths = $testfactory->get_standard_renderer_factory_search_paths($component, $subtype);
  56. $this->assertSame($paths, array (
  57. '\\mod_assign\\output\\custom_renderer_cli',
  58. '\\mod_assign\\output\\custom\\renderer_cli',
  59. 'mod_assign_custom_renderer_cli',
  60. '\\mod_assign\\output\\custom_renderer',
  61. '\\mod_assign\\output\\custom\\renderer',
  62. 'mod_assign_custom_renderer',
  63. ));
  64. $paths = $testfactory->get_standard_renderer_factory_search_paths($component, $subtype, $target);
  65. $this->assertSame($paths, array (
  66. '\\mod_assign\\output\\custom_renderer_ajax',
  67. '\\mod_assign\\output\\custom\\renderer_ajax',
  68. 'mod_assign_custom_renderer_ajax',
  69. '\\mod_assign\\output\\custom_renderer',
  70. '\\mod_assign\\output\\custom\\renderer',
  71. 'mod_assign_custom_renderer',
  72. ));
  73. $paths = $testfactory->get_theme_overridden_renderer_factory_search_paths('');
  74. $this->assertSame($paths, array (
  75. 'theme_child\\output\\core_renderer_cli',
  76. 'theme_child_core_renderer_cli',
  77. 'theme_parent\\output\\core_renderer_cli',
  78. 'theme_parent_core_renderer_cli',
  79. '\\core\\output\\renderer_cli',
  80. 'core_renderer_cli',
  81. 'theme_child\\output\\core_renderer',
  82. 'theme_child_core_renderer',
  83. 'theme_parent\\output\\core_renderer',
  84. 'theme_parent_core_renderer',
  85. '\\core\\output\\renderer',
  86. 'core_renderer',
  87. ));
  88. $paths = $testfactory->get_theme_overridden_renderer_factory_search_paths($component);
  89. $this->assertSame($paths, array (
  90. 'theme_child\\output\\mod_assign_renderer_cli',
  91. 'theme_child_mod_assign_renderer_cli',
  92. 'theme_parent\\output\\mod_assign_renderer_cli',
  93. 'theme_parent_mod_assign_renderer_cli',
  94. '\\mod_assign\\output\\renderer_cli',
  95. 'mod_assign_renderer_cli',
  96. 'theme_child\\output\\mod_assign_renderer',
  97. 'theme_child_mod_assign_renderer',
  98. 'theme_parent\\output\\mod_assign_renderer',
  99. 'theme_parent_mod_assign_renderer',
  100. '\\mod_assign\\output\\renderer',
  101. 'mod_assign_renderer',
  102. ));
  103. $paths = $testfactory->get_theme_overridden_renderer_factory_search_paths($component, $subtype);
  104. $this->assertSame($paths, array (
  105. 'theme_child\\output\\mod_assign\\custom_renderer_cli',
  106. 'theme_child\\output\\mod_assign\\custom\\renderer_cli',
  107. 'theme_child_mod_assign_custom_renderer_cli',
  108. 'theme_parent\\output\\mod_assign\\custom_renderer_cli',
  109. 'theme_parent\\output\\mod_assign\\custom\\renderer_cli',
  110. 'theme_parent_mod_assign_custom_renderer_cli',
  111. '\\mod_assign\\output\\custom_renderer_cli',
  112. '\\mod_assign\\output\\custom\\renderer_cli',
  113. 'mod_assign_custom_renderer_cli',
  114. 'theme_child\\output\\mod_assign\\custom_renderer',
  115. 'theme_child\\output\\mod_assign\\custom\\renderer',
  116. 'theme_child_mod_assign_custom_renderer',
  117. 'theme_parent\\output\\mod_assign\\custom_renderer',
  118. 'theme_parent\\output\\mod_assign\\custom\\renderer',
  119. 'theme_parent_mod_assign_custom_renderer',
  120. '\\mod_assign\\output\\custom_renderer',
  121. '\\mod_assign\\output\\custom\\renderer',
  122. 'mod_assign_custom_renderer',
  123. ));
  124. $paths = $testfactory->get_theme_overridden_renderer_factory_search_paths($component, $subtype, $target);
  125. $this->assertSame($paths, array (
  126. 'theme_child\\output\\mod_assign\\custom_renderer_ajax',
  127. 'theme_child\\output\\mod_assign\\custom\\renderer_ajax',
  128. 'theme_child_mod_assign_custom_renderer_ajax',
  129. 'theme_parent\\output\\mod_assign\\custom_renderer_ajax',
  130. 'theme_parent\\output\\mod_assign\\custom\\renderer_ajax',
  131. 'theme_parent_mod_assign_custom_renderer_ajax',
  132. '\\mod_assign\\output\\custom_renderer_ajax',
  133. '\\mod_assign\\output\\custom\\renderer_ajax',
  134. 'mod_assign_custom_renderer_ajax',
  135. 'theme_child\\output\\mod_assign\\custom_renderer',
  136. 'theme_child\\output\\mod_assign\\custom\\renderer',
  137. 'theme_child_mod_assign_custom_renderer',
  138. 'theme_parent\\output\\mod_assign\\custom_renderer',
  139. 'theme_parent\\output\\mod_assign\\custom\\renderer',
  140. 'theme_parent_mod_assign_custom_renderer',
  141. '\\mod_assign\\output\\custom_renderer',
  142. '\\mod_assign\\output\\custom\\renderer',
  143. 'mod_assign_custom_renderer',
  144. ));
  145. }
  146. }