/tests/Zend/Application/Module/AutoloaderTest.php

https://github.com/devilsansclue/ZendFramework · PHP · 190 lines · 113 code · 31 blank · 46 comment · 4 complexity · 858587e080483436d8dafbb7120481cc MD5 · raw file

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