Skip to content

Commit

Permalink
Adds missing unit test for autoincluding the ClassMapAutoloader
Browse files Browse the repository at this point in the history
  • Loading branch information
froschdesign authored and antonis179 committed Jan 11, 2018
1 parent fe76a93 commit 3225c63
Show file tree
Hide file tree
Showing 2 changed files with 115 additions and 0 deletions.
2 changes: 2 additions & 0 deletions tests/Zend/Loader/AllTests.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
}

require_once 'Zend/Loader/AutoloaderTest.php';
require_once 'Zend/Loader/AutoloaderFactoryClassMapLoaderTest.php';
require_once 'Zend/Loader/AutoloaderFactoryTest.php';
require_once 'Zend/Loader/AutoloaderMultiVersionTest.php';
require_once 'Zend/Loader/Autoloader/ResourceTest.php';
Expand Down Expand Up @@ -52,6 +53,7 @@ public static function suite()
$suite = new PHPUnit_Framework_TestSuite('Zend Framework - Zend_Loader');

$suite->addTestSuite('Zend_Loader_AutoloaderTest');
$suite->addTestSuite('Zend_Loader_AutoloaderFactoryClassMapLoaderTest');
$suite->addTestSuite('Zend_Loader_AutoloaderFactoryTest');
$suite->addTestSuite('Zend_Loader_AutoloaderMultiVersionTest');
$suite->addTestSuite('Zend_Loader_Autoloader_ResourceTest');
Expand Down
113 changes: 113 additions & 0 deletions tests/Zend/Loader/AutoloaderFactoryClassMapLoaderTest.php
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();
}

0 comments on commit 3225c63

Please sign in to comment.