AutoloaderTest.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  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-2010 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-2010 Zend Technologies USA Inc. (http://www.zend.com)
  48. * @license http://framework.zend.com/license/new-bsd New BSD License
  49. * @group Zend_Application
  50. */
  51. class Zend_Application_Module_AutoloaderTest extends PHPUnit_Framework_TestCase
  52. {
  53. public static function main()
  54. {
  55. $suite = new PHPUnit_Framework_TestSuite(__CLASS__);
  56. $result = PHPUnit_TextUI_TestRunner::run($suite);
  57. }
  58. public function setUp()
  59. {
  60. // Store original autoloaders
  61. $this->loaders = spl_autoload_functions();
  62. if (!is_array($this->loaders)) {
  63. // spl_autoload_functions does not return empty array when no
  64. // autoloaders registered...
  65. $this->loaders = array();
  66. }
  67. // Store original include_path
  68. $this->includePath = get_include_path();
  69. Zend_Loader_Autoloader::resetInstance();
  70. $this->autoloader = Zend_Loader_Autoloader::getInstance();
  71. // initialize 'error' member for tests that utilize error handling
  72. $this->error = null;
  73. $this->loader = new Zend_Application_Module_Autoloader(array(
  74. 'namespace' => 'FooBar',
  75. 'basePath' => realpath(dirname(__FILE__) . '/_files'),
  76. ));
  77. }
  78. public function tearDown()
  79. {
  80. // Restore original autoloaders
  81. $loaders = spl_autoload_functions();
  82. foreach ($loaders as $loader) {
  83. spl_autoload_unregister($loader);
  84. }
  85. foreach ($this->loaders as $loader) {
  86. spl_autoload_register($loader);
  87. }
  88. // Retore original include_path
  89. set_include_path($this->includePath);
  90. // Reset autoloader instance so it doesn't affect other tests
  91. Zend_Loader_Autoloader::resetInstance();
  92. }
  93. public function testDbTableResourceTypeShouldBeLoadedByDefault()
  94. {
  95. $this->assertTrue($this->loader->hasResourceType('dbtable'));
  96. }
  97. public function testDbTableResourceTypeShouldPointToModelsDbTableSubdirectory()
  98. {
  99. $resources = $this->loader->getResourceTypes();
  100. $this->assertContains('models/DbTable', $resources['dbtable']['path']);
  101. }
  102. public function testFormResourceTypeShouldBeLoadedByDefault()
  103. {
  104. $this->assertTrue($this->loader->hasResourceType('form'));
  105. }
  106. public function testFormResourceTypeShouldPointToFormsSubdirectory()
  107. {
  108. $resources = $this->loader->getResourceTypes();
  109. $this->assertContains('forms', $resources['form']['path']);
  110. }
  111. public function testModelResourceTypeShouldBeLoadedByDefault()
  112. {
  113. $this->assertTrue($this->loader->hasResourceType('model'));
  114. }
  115. public function testModelResourceTypeShouldPointToModelsSubdirectory()
  116. {
  117. $resources = $this->loader->getResourceTypes();
  118. $this->assertContains('models', $resources['model']['path']);
  119. }
  120. public function testPluginResourceTypeShouldBeLoadedByDefault()
  121. {
  122. $this->assertTrue($this->loader->hasResourceType('plugin'));
  123. }
  124. public function testPluginResourceTypeShouldPointToPluginsSubdirectory()
  125. {
  126. $resources = $this->loader->getResourceTypes();
  127. $this->assertContains('plugins', $resources['plugin']['path']);
  128. }
  129. public function testServiceResourceTypeShouldBeLoadedByDefault()
  130. {
  131. $this->assertTrue($this->loader->hasResourceType('service'));
  132. }
  133. public function testServiceResourceTypeShouldPointToServicesSubdirectory()
  134. {
  135. $resources = $this->loader->getResourceTypes();
  136. $this->assertContains('services', $resources['service']['path']);
  137. }
  138. public function testViewHelperResourceTypeShouldBeLoadedByDefault()
  139. {
  140. $this->assertTrue($this->loader->hasResourceType('viewhelper'));
  141. }
  142. public function testViewHelperResourceTypeShouldPointToViewHelperSubdirectory()
  143. {
  144. $resources = $this->loader->getResourceTypes();
  145. $this->assertContains('views/helpers', $resources['viewhelper']['path']);
  146. }
  147. public function testViewFilterResourceTypeShouldBeLoadedByDefault()
  148. {
  149. $this->assertTrue($this->loader->hasResourceType('viewfilter'));
  150. }
  151. public function testViewFilterResourceTypeShouldPointToViewFilterSubdirectory()
  152. {
  153. $resources = $this->loader->getResourceTypes();
  154. $this->assertContains('views/filters', $resources['viewfilter']['path']);
  155. }
  156. public function testDefaultResourceShouldBeModel()
  157. {
  158. $this->assertEquals('model', $this->loader->getDefaultResourceType());
  159. }
  160. }
  161. if (PHPUnit_MAIN_METHOD == 'Zend_Application_Module_AutoloaderTest::main') {
  162. Zend_Application_Module_AutoloaderTest::main();
  163. }