forked from zendframework/zf1
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds missing unit test for autoincluding the ClassMapAutoloader
- Loading branch information
1 parent
fe76a93
commit 3225c63
Showing
2 changed files
with
115 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
113 changes: 113 additions & 0 deletions
113
tests/Zend/Loader/AutoloaderFactoryClassMapLoaderTest.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
<?php | ||
/** | ||
* Zend Framework | ||
* | ||
* LICENSE | ||
* | ||
* This source file is subject to the new BSD license that is bundled | ||
* with this package in the file LICENSE.txt. | ||
* It is also available through the world-wide-web at this URL: | ||
* http://framework.zend.com/license/new-bsd | ||
* If you did not receive a copy of the license and are unable to | ||
* obtain it through the world-wide-web, please send an email | ||
* to license@zend.com so we can send you a copy immediately. | ||
* | ||
* @category Zend | ||
* @package Zend_Loader | ||
* @subpackage UnitTests | ||
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) | ||
* @license http://framework.zend.com/license/new-bsd New BSD License | ||
*/ | ||
|
||
if (!defined('PHPUnit_MAIN_METHOD')) { | ||
define('PHPUnit_MAIN_METHOD', 'Zend_Loader_AutoloaderFactoryClassMapLoaderTest::main'); | ||
} | ||
|
||
require_once 'Zend/Loader/AutoloaderFactory.php'; | ||
|
||
/** | ||
* @package Zend_Loader | ||
* @subpackage UnitTests | ||
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) | ||
* @license http://framework.zend.com/license/new-bsd New BSD License | ||
* @group Loader | ||
*/ | ||
class Zend_Loader_AutoloaderFactoryClassMapLoaderTest extends PHPUnit_Framework_TestCase | ||
{ | ||
|
||
/** | ||
* @var array | ||
*/ | ||
protected $_loaders; | ||
|
||
/** | ||
* @var string | ||
*/ | ||
protected $_includePath; | ||
|
||
public static function main() | ||
{ | ||
$suite = new PHPUnit_Framework_TestSuite(__CLASS__); | ||
$result = PHPUnit_TextUI_TestRunner::run($suite); | ||
} | ||
|
||
public function setUp() | ||
{ | ||
// Store original autoloaders | ||
$this->_loaders = spl_autoload_functions(); | ||
if (!is_array($this->_loaders)) { | ||
// spl_autoload_functions does not return empty array when no | ||
// autoloaders registered... | ||
$this->_loaders = array(); | ||
} | ||
|
||
// Clear out other autoloaders to ensure those being tested are at the | ||
// top of the stack | ||
foreach ($this->_loaders as $loader) { | ||
spl_autoload_unregister($loader); | ||
} | ||
|
||
// Store original include_path | ||
$this->_includePath = get_include_path(); | ||
} | ||
|
||
public function tearDown() | ||
{ | ||
Zend_Loader_AutoloaderFactory::unregisterAutoloaders(); | ||
// Restore original autoloaders | ||
$loaders = spl_autoload_functions(); | ||
if (is_array($loaders)) { | ||
foreach ($loaders as $loader) { | ||
spl_autoload_unregister($loader); | ||
} | ||
} | ||
|
||
foreach ($this->_loaders as $loader) { | ||
spl_autoload_register($loader); | ||
} | ||
|
||
// Restore original include_path | ||
set_include_path($this->_includePath); | ||
} | ||
|
||
public function testAutoincluding() | ||
{ | ||
Zend_Loader_AutoloaderFactory::factory( | ||
array( | ||
'Zend_Loader_ClassMapAutoloader' => array( | ||
dirname(__FILE__) . '/_files/goodmap.php', | ||
), | ||
) | ||
); | ||
$loader = Zend_Loader_AutoloaderFactory::getRegisteredAutoloader( | ||
'Zend_Loader_ClassMapAutoloader' | ||
); | ||
$map = $loader->getAutoloadMap(); | ||
$this->assertTrue(is_array($map)); | ||
$this->assertEquals(2, count($map)); | ||
} | ||
} | ||
|
||
if (PHPUnit_MAIN_METHOD == 'Zend_Loader_AutoloaderFactoryClassMapLoaderTest::main') { | ||
Zend_Loader_AutoloaderFactoryClassMapLoaderTest::main(); | ||
} |