AutoloaderTest.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Application
  17. * @subpackage UnitTests
  18. * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
  19. * @license http://framework.zend.com/license/new-bsd New BSD License
  20. * @version $Id$
  21. */
  22. if (!defined('PHPUnit_MAIN_METHOD')) {
  23. define('PHPUnit_MAIN_METHOD', 'Zend_Application_Module_AutoloaderTest::main');
  24. }
  25. /**
  26. * Test helper
  27. */
  28. require_once dirname(__FILE__) . '/../../../TestHelper.php';
  29. /**
  30. * @see Zend_Loader_Autoloader
  31. */
  32. require_once 'Zend/Loader/Autoloader.php';
  33. /**
  34. * @see Zend_Application_Module_Autoloader
  35. */
  36. require_once 'Zend/Loader/Autoloader/Resource.php';
  37. /**
  38. * @see Zend_Loader_Autoloader_Interface
  39. */
  40. require_once 'Zend/Loader/Autoloader/Interface.php';
  41. /** Zend_Config */
  42. require_once 'Zend/Config.php';
  43. /**
  44. * @category Zend
  45. * @package Zend_Application
  46. * @subpackage UnitTests
  47. * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com)
  48. * @license http://framework.zend.com/license/new-bsd New BSD License
  49. */
  50. class Zend_Application_Module_AutoloaderTest extends PHPUnit_Framework_TestCase
  51. {
  52. public static function main()
  53. {
  54. $suite = new PHPUnit_Framework_TestSuite(__CLASS__);
  55. $result = PHPUnit_TextUI_TestRunner::run($suite);
  56. }
  57. public function setUp()
  58. {
  59. // Store original autoloaders
  60. $this->loaders = spl_autoload_functions();
  61. if (!is_array($this->loaders)) {
  62. // spl_autoload_functions does not return empty array when no
  63. // autoloaders registered...
  64. $this->loaders = array();
  65. }
  66. // Store original include_path
  67. $this->includePath = get_include_path();
  68. Zend_Loader_Autoloader::resetInstance();
  69. $this->autoloader = Zend_Loader_Autoloader::getInstance();
  70. // initialize 'error' member for tests that utilize error handling
  71. $this->error = null;
  72. $this->loader = new Zend_Application_Module_Autoloader(array(
  73. 'namespace' => 'FooBar',
  74. 'basePath' => realpath(dirname(__FILE__) . '/_files'),
  75. ));
  76. }
  77. public function tearDown()
  78. {
  79. // Restore original autoloaders
  80. $loaders = spl_autoload_functions();
  81. foreach ($loaders as $loader) {
  82. spl_autoload_unregister($loader);
  83. }
  84. foreach ($this->loaders as $loader) {
  85. spl_autoload_register($loader);
  86. }
  87. // Retore original include_path
  88. set_include_path($this->includePath);
  89. // Reset autoloader instance so it doesn't affect other tests
  90. Zend_Loader_Autoloader::resetInstance();
  91. }
  92. public function testDbTableResourceTypeShouldBeLoadedByDefault()
  93. {
  94. $this->assertTrue($this->loader->hasResourceType('dbtable'));
  95. }
  96. public function testDbTableResourceTypeShouldPointToModelsDbTableSubdirectory()
  97. {
  98. $resources = $this->loader->getResourceTypes();
  99. $this->assertContains('models/DbTable', $resources['dbtable']['path']);
  100. }
  101. public function testFormResourceTypeShouldBeLoadedByDefault()
  102. {
  103. $this->assertTrue($this->loader->hasResourceType('form'));
  104. }
  105. public function testFormResourceTypeShouldPointToFormsSubdirectory()
  106. {
  107. $resources = $this->loader->getResourceTypes();
  108. $this->assertContains('forms', $resources['form']['path']);
  109. }
  110. public function testModelResourceTypeShouldBeLoadedByDefault()
  111. {
  112. $this->assertTrue($this->loader->hasResourceType('model'));
  113. }
  114. public function testModelResourceTypeShouldPointToModelsSubdirectory()
  115. {
  116. $resources = $this->loader->getResourceTypes();
  117. $this->assertContains('models', $resources['model']['path']);
  118. }
  119. public function testPluginResourceTypeShouldBeLoadedByDefault()
  120. {
  121. $this->assertTrue($this->loader->hasResourceType('plugin'));
  122. }
  123. public function testPluginResourceTypeShouldPointToPluginsSubdirectory()
  124. {
  125. $resources = $this->loader->getResourceTypes();
  126. $this->assertContains('plugins', $resources['plugin']['path']);
  127. }
  128. public function testServiceResourceTypeShouldBeLoadedByDefault()
  129. {
  130. $this->assertTrue($this->loader->hasResourceType('service'));
  131. }
  132. public function testServiceResourceTypeShouldPointToServicesSubdirectory()
  133. {
  134. $resources = $this->loader->getResourceTypes();
  135. $this->assertContains('services', $resources['service']['path']);
  136. }
  137. public function testViewHelperResourceTypeShouldBeLoadedByDefault()
  138. {
  139. $this->assertTrue($this->loader->hasResourceType('viewhelper'));
  140. }
  141. public function testViewHelperResourceTypeShouldPointToViewHelperSubdirectory()
  142. {
  143. $resources = $this->loader->getResourceTypes();
  144. $this->assertContains('views/helpers', $resources['viewhelper']['path']);
  145. }
  146. public function testViewFilterResourceTypeShouldBeLoadedByDefault()
  147. {
  148. $this->assertTrue($this->loader->hasResourceType('viewfilter'));
  149. }
  150. public function testViewFilterResourceTypeShouldPointToViewFilterSubdirectory()
  151. {
  152. $resources = $this->loader->getResourceTypes();
  153. $this->assertContains('views/filters', $resources['viewfilter']['path']);
  154. }
  155. public function testDefaultResourceShouldBeModel()
  156. {
  157. $this->assertEquals('model', $this->loader->getDefaultResourceType());
  158. }
  159. }
  160. if (PHPUnit_MAIN_METHOD == 'Zend_Application_Module_AutoloaderTest::main') {
  161. Zend_Application_Module_AutoloaderTest::main();
  162. }