2
0

AutoloaderTest.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  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. }
  90. public function testDbTableResourceTypeShouldBeLoadedByDefault()
  91. {
  92. $this->assertTrue($this->loader->hasResourceType('dbtable'));
  93. }
  94. public function testDbTableResourceTypeShouldPointToModelsDbTableSubdirectory()
  95. {
  96. $resources = $this->loader->getResourceTypes();
  97. $this->assertContains('models/DbTable', $resources['dbtable']['path']);
  98. }
  99. public function testFormResourceTypeShouldBeLoadedByDefault()
  100. {
  101. $this->assertTrue($this->loader->hasResourceType('form'));
  102. }
  103. public function testFormResourceTypeShouldPointToFormsSubdirectory()
  104. {
  105. $resources = $this->loader->getResourceTypes();
  106. $this->assertContains('forms', $resources['form']['path']);
  107. }
  108. public function testModelResourceTypeShouldBeLoadedByDefault()
  109. {
  110. $this->assertTrue($this->loader->hasResourceType('model'));
  111. }
  112. public function testModelResourceTypeShouldPointToModelsSubdirectory()
  113. {
  114. $resources = $this->loader->getResourceTypes();
  115. $this->assertContains('models', $resources['model']['path']);
  116. }
  117. public function testPluginResourceTypeShouldBeLoadedByDefault()
  118. {
  119. $this->assertTrue($this->loader->hasResourceType('plugin'));
  120. }
  121. public function testPluginResourceTypeShouldPointToPluginsSubdirectory()
  122. {
  123. $resources = $this->loader->getResourceTypes();
  124. $this->assertContains('plugins', $resources['plugin']['path']);
  125. }
  126. public function testServiceResourceTypeShouldBeLoadedByDefault()
  127. {
  128. $this->assertTrue($this->loader->hasResourceType('service'));
  129. }
  130. public function testServiceResourceTypeShouldPointToServicesSubdirectory()
  131. {
  132. $resources = $this->loader->getResourceTypes();
  133. $this->assertContains('services', $resources['service']['path']);
  134. }
  135. public function testViewHelperResourceTypeShouldBeLoadedByDefault()
  136. {
  137. $this->assertTrue($this->loader->hasResourceType('viewhelper'));
  138. }
  139. public function testViewHelperResourceTypeShouldPointToViewHelperSubdirectory()
  140. {
  141. $resources = $this->loader->getResourceTypes();
  142. $this->assertContains('views/helpers', $resources['viewhelper']['path']);
  143. }
  144. public function testViewFilterResourceTypeShouldBeLoadedByDefault()
  145. {
  146. $this->assertTrue($this->loader->hasResourceType('viewfilter'));
  147. }
  148. public function testViewFilterResourceTypeShouldPointToViewFilterSubdirectory()
  149. {
  150. $resources = $this->loader->getResourceTypes();
  151. $this->assertContains('views/filters', $resources['viewfilter']['path']);
  152. }
  153. public function testDefaultResourceShouldBeModel()
  154. {
  155. $this->assertEquals('model', $this->loader->getDefaultResourceType());
  156. }
  157. }
  158. if (PHPUnit_MAIN_METHOD == 'Zend_Application_Module_AutoloaderTest::main') {
  159. Zend_Application_Module_AutoloaderTest::main();
  160. }