You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cacert-testmgr/external/ZendFramework-1.9.5/tests/Zend/Application/Bootstrap/BootstrapAbstractTest.php

784 lines
29 KiB
PHP

<?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_Application
* @subpackage UnitTests
* @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: BootstrapAbstractTest.php 18455 2009-10-01 17:49:38Z doctorrock83 $
*/
if (!defined('PHPUnit_MAIN_METHOD')) {
define('PHPUnit_MAIN_METHOD', 'Zend_Application_Bootstrap_BootstrapAbstractTest::main');
}
/**
* Test helper
*/
require_once dirname(__FILE__) . '/../../../TestHelper.php';
/**
* Zend_Loader_Autoloader
*/
require_once 'Zend/Loader/Autoloader.php';
/**
* Zend_Application_Resource_ResourceAbstract
*/
require_once 'Zend/Application/Resource/ResourceAbstract.php';
/**
* Zend_Application_Bootstrap_Bootstrapper
*/
require_once 'Zend/Application/Bootstrap/Bootstrapper.php';
/**
* Zend_Application_Bootstrap_ResourceBootstrapper
*/
require_once 'Zend/Application/Bootstrap/ResourceBootstrapper.php';
/**
* Zend_Application_Bootstrap_BootstrapAbstract
*/
require_once 'Zend/Application/Bootstrap/BootstrapAbstract.php';
/**
* Zend_Application_Bootstrap_Bootstrap
*/
require_once 'Zend/Application/Bootstrap/Bootstrap.php';
/**
* @category Zend
* @package Zend_Application
* @subpackage UnitTests
* @copyright Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @group Zend_Application
*/
class Zend_Application_Bootstrap_BootstrapAbstractTest extends PHPUnit_Framework_TestCase
{
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();
}
Zend_Loader_Autoloader::resetInstance();
$this->autoloader = Zend_Loader_Autoloader::getInstance();
$this->application = new Zend_Application('testing');
$this->error = false;
}
public function tearDown()
{
// Restore original autoloaders
$loaders = spl_autoload_functions();
foreach ($loaders as $loader) {
spl_autoload_unregister($loader);
}
foreach ($this->loaders as $loader) {
spl_autoload_register($loader);
}
// Reset autoloader instance so it doesn't affect other tests
Zend_Loader_Autoloader::resetInstance();
}
public function handleError($errno, $errstr)
{
$this->error = $errstr;
return true;
}
public function testConstructorShouldPopulateApplication()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$this->assertSame($this->application, $bootstrap->getApplication());
}
public function testConstructorShouldPopulateOptionsFromApplicationObject()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$options = array(
'foo' => 'bar',
'bar' => 'baz',
);
$this->application->setOptions($options);
$bootstrap = new ZfAppBootstrap($this->application);
$this->assertSame($options, $bootstrap->getOptions());
}
public function testConstructorShouldAllowPassingAnotherBootstrapObject()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap1 = new ZfAppBootstrap($this->application);
$bootstrap2 = new ZfAppBootstrap($bootstrap1);
$this->assertSame($bootstrap1, $bootstrap2->getApplication());
}
/**
* @expectedException Zend_Application_Bootstrap_Exception
*/
public function testConstructorShouldRaiseExceptionForInvalidApplicationArgument()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap(new stdClass);
}
public function testSettingOptionsShouldProxyToInternalSetters()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$options = array(
'arbitrary' => 'foo',
);
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->setOptions($options);
$this->assertEquals('foo', $bootstrap->getArbitrary());
}
/**
* @group ZF-6459
*/
public function testCallingSetOptionsMultipleTimesShouldMergeOptionsRecursively()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$options = array(
'deep' => array(
'foo' => 'bar',
'bar' => 'baz',
),
);
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->setOptions($options);
$options2 = array(
'deep' => array(
'bar' => 'bat',
'baz' => 'foo',
),
);
$bootstrap->setOptions($options2);
$expected = $bootstrap->mergeOptions($options, $options2);
$test = $bootstrap->getOptions();
$this->assertEquals($expected, $test);
}
public function testPluginPathsOptionKeyShouldAddPrefixPathsToPluginLoader()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->setOptions(array(
'pluginPaths' => array(
'Foo' => 'foo/bar/path/',
),
));
$loader = $bootstrap->getPluginLoader();
$paths = $loader->getPaths('Foo');
$this->assertTrue(is_array($paths));
}
public function testResourcesOptionKeyShouldRegisterBootstrapPluginResources()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->setOptions(array(
'resources' => array(
'view' => array(
'basePath' => dirname(__FILE__) . '/../_files/views/scripts',
),
),
));
$this->assertTrue($bootstrap->hasPluginResource('view'));
}
public function testHasOptionShouldReturnFalseWhenOptionUnavailable()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$this->assertFalse($bootstrap->hasOption('foo'));
}
public function testHasOptionShouldReturnTrueWhenOptionPresent()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->setOptions(array('foo' => 'bar'));
$this->assertTrue($bootstrap->hasOption('foo'));
}
public function testGetOptionShouldReturnNullWhenOptionUnavailable()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$this->assertNull($bootstrap->getOption('foo'));
}
public function testGetOptionShouldReturnOptionValue()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->setOptions(array('foo' => 'bar'));
$this->assertEquals('bar', $bootstrap->getOption('foo'));
}
public function testInternalIntializersShouldBeRegisteredAsClassResources()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$test = $bootstrap->getClassResources();
$resources = array('foo' => '_initFoo', 'bar' => '_initBar', 'barbaz' => '_initBarbaz');
$this->assertEquals($resources, $test);
}
public function testInternalInitializersShouldRegisterResourceNames()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$test = $bootstrap->getClassResourceNames();
$resources = array('foo', 'bar', 'barbaz');
$this->assertEquals($resources, $test);
}
/**
* @expectedException Zend_Application_Bootstrap_Exception
*/
public function testRegisterPluginResourceShouldThrowExceptionForInvalidResourceType()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->registerPluginResource(array());
}
public function testShouldAllowRegisteringConcretePluginResources()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$resource = new Zend_Application_Resource_View();
$bootstrap->registerPluginResource($resource);
$test = $bootstrap->getPluginResource('view');
$this->assertSame($resource, $test);
}
public function testRegisteringSecondPluginResourceOfSameTypeShouldOverwrite()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$resource1 = new Zend_Application_Resource_View();
$resource2 = new Zend_Application_Resource_View();
$bootstrap->registerPluginResource($resource1)
->registerPluginResource($resource2);
$test = $bootstrap->getPluginResource('view');
$this->assertSame($resource2, $test);
}
public function testShouldAllowRegisteringPluginResourceUsingNameOnly()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->registerPluginResource('view');
$test = $bootstrap->getPluginResource('view');
$this->assertEquals('Zend_Application_Resource_View', get_class($test));
}
public function testShouldAllowUnregisteringPluginResourcesUsingConcreteInstance()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$resource = new Zend_Application_Resource_View();
$bootstrap->registerPluginResource($resource);
$bootstrap->unregisterPluginResource($resource);
$this->assertFalse($bootstrap->hasPluginResource('view'));
}
/**
* @expectedException Zend_Application_Bootstrap_Exception
*/
public function testAttemptingToUnregisterPluginResourcesUsingInvalidResourceTypeShouldThrowException()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->registerPluginResource('view');
$bootstrap->unregisterPluginResource(array());
}
public function testShouldAllowUnregisteringPluginResourcesByName()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->registerPluginResource('view');
$bootstrap->unregisterPluginResource('view');
$this->assertFalse($bootstrap->hasPluginResource('view'));
}
public function testRetrievingNonExistentPluginResourceShouldReturnNull()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$this->assertNull($bootstrap->getPluginResource('view'));
}
public function testRetrievingPluginResourcesShouldRetrieveConcreteInstances()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->registerPluginResource('view');
$test = $bootstrap->getPluginResources();
foreach ($test as $type => $resource) {
$this->assertTrue($resource instanceof Zend_Application_Resource_Resource);
}
}
public function testShouldAllowRetrievingOnlyPluginResourceNames()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->registerPluginResource('view');
$test = $bootstrap->getPluginResourceNames();
$this->assertEquals(array('view'), $test);
}
public function testShouldAllowSettingAlternativePluginLoaderInstance()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$loader = new Zend_Loader_PluginLoader();
$bootstrap->setPluginLoader($loader);
$this->assertSame($loader, $bootstrap->getPluginLoader());
}
public function testDefaultPluginLoaderShouldRegisterPrefixPathForResources()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$loader = $bootstrap->getPluginLoader();
$paths = $loader->getPaths('Zend_Application_Resource');
$this->assertFalse(empty($paths));
}
public function testEnvironmentShouldMatchApplicationEnvironment()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$this->assertSame($this->application->getEnvironment(), $bootstrap->getEnvironment());
}
public function testBootstrappingShouldOnlyExecuteEachInitializerOnce()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->bootstrap('foo');
$bootstrap->bootstrap('foo');
$this->assertEquals(1, $bootstrap->fooExecuted);
}
/**
* @group ZF-7955
*/
public function testBootstrappingIsCaseInsensitive()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->bootstrap('Foo');
$bootstrap->bootstrap('Foo');
$bootstrap->bootstrap('foo');
$bootstrap->bootstrap('foo');
$this->assertEquals(1, $bootstrap->fooExecuted);
}
public function testBootstrappingShouldFavorInternalResourcesOverPlugins()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->getPluginLoader()->addPrefixPath('Zend_Application_BootstrapTest_Resource', dirname(__FILE__) . '/../_files/resources');
$bootstrap->bootstrap('foo');
$this->assertFalse($bootstrap->executedFooResource);
}
public function testBootstrappingShouldAllowPassingAnArrayOfResources()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->bootstrap(array('foo', 'bar'));
$this->assertEquals(1, $bootstrap->fooExecuted);
$this->assertEquals(1, $bootstrap->barExecuted);
}
public function testPassingNoValuesToBootstrapExecutesAllResources()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->getPluginLoader()->addPrefixPath('Zend_Application_BootstrapTest_Resource', dirname(__FILE__) . '/../_files/resources');
$bootstrap->registerPluginResource('foobar');
$bootstrap->bootstrap();
$this->assertEquals(1, $bootstrap->fooExecuted);
$this->assertEquals(1, $bootstrap->barExecuted);
$this->assertTrue($bootstrap->executedFoobarResource);
}
/**
* @expectedException Zend_Application_Bootstrap_Exception
*/
public function testPassingInvalidResourceArgumentToBootstrapShouldThrowException()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->bootstrap(new stdClass);
}
/**
* @expectedException Zend_Application_Bootstrap_Exception
*/
public function testPassingUnknownResourceToBootstrapShouldThrowException()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->bootstrap('bazbat');
}
public function testCallShouldOverloadToBootstrap()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->bootstrapFoo();
$this->assertEquals(1, $bootstrap->fooExecuted);
}
/**
* @expectedException Zend_Application_Bootstrap_Exception
*/
public function testCallShouldThrowExceptionForInvalidMethodCall()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->initFoo();
}
/**
* @expectedException Zend_Application_Bootstrap_Exception
*/
public function testDependencyTrackingShouldDetectCircularDependencies()
{
require_once dirname(__FILE__) . '/../_files/BootstrapBaseCircularDependency.php';
$bootstrap = new BootstrapBaseCircularDependency($this->application);
$bootstrap->bootstrap();
}
public function testContainerShouldBeRegistryInstanceByDefault()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$container = $bootstrap->getContainer();
$this->assertTrue($container instanceof Zend_Registry);
}
public function testContainerShouldAggregateReturnValuesFromClassResources()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->bootstrap('barbaz');
$container = $bootstrap->getContainer();
$this->assertEquals('Baz', $container->barbaz->baz);
}
public function testContainerShouldAggregateReturnValuesFromPluginResources()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->getPluginLoader()->addPrefixPath('Zend_Application_BootstrapTest_Resource', dirname(__FILE__) . '/../_files/resources');
$bootstrap->registerPluginResource('baz');
$bootstrap->bootstrap('baz');
$container = $bootstrap->getContainer();
$this->assertEquals('Baz', $container->baz->baz);
}
public function testClassResourcesShouldBeAvailableFollowingBootstrapping()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->bootstrap('barbaz');
$this->assertTrue($bootstrap->hasResource('barbaz'));
$resource = $bootstrap->getResource('barbaz');
$this->assertEquals('Baz', $resource->baz);
}
public function testPluginResourcesShouldBeAvailableFollowingBootstrapping()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->getPluginLoader()->addPrefixPath('Zend_Application_BootstrapTest_Resource', dirname(__FILE__) . '/../_files/resources');
$bootstrap->registerPluginResource('baz');
$bootstrap->bootstrap('baz');
$this->assertTrue($bootstrap->hasResource('baz'));
$resource = $bootstrap->getResource('baz');
$this->assertEquals('Baz', $resource->baz);
}
public function testMagicMethodsForPluginResources()
{
require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php';
$bootstrap = new ZfAppBootstrap($this->application);
$bootstrap->getPluginLoader()->addPrefixPath('Zend_Application_BootstrapTest_Resource', dirname(__FILE__) . '/../_files/resources');
$bootstrap->registerPluginResource('baz');
$bootstrap->bootstrap('baz');
$this->assertTrue(isset($bootstrap->baz));
$resource = $bootstrap->baz;
$this->assertEquals('Baz', $resource->baz);
}
/**
* @group ZF-6543
*/
public function testPassingPluginResourcesByFullClassNameWithMatchingPluginPathShouldRegisterAsShortName()
{
$this->application->setOptions(array(
'resources' => array(
'Zend_Application_Bootstrap_BootstrapAbstractTest_View' => array(),
),
'pluginPaths' => array(
'Zend_Application_Bootstrap_BootstrapAbstractTest' => dirname(__FILE__),
),
));
$bootstrap = new Zend_Application_Bootstrap_Bootstrap($this->application);
$this->assertTrue($bootstrap->hasPluginResource('View'), var_export(array_keys($bootstrap->getPluginResources()), 1));
}
/**
* @group ZF-6543
*/
public function testPassingFullViewClassNameNotMatchingARegisteredPrefixShouldRegisterAsTheClassName()
{
$this->application->setOptions(array(
'resources' => array(
'Zend_Application_Bootstrap_BootstrapAbstractTest_View' => array(),
),
));
$bootstrap = new Zend_Application_Bootstrap_Bootstrap($this->application);
$this->assertTrue($bootstrap->hasPluginResource('Zend_Application_Bootstrap_BootstrapAbstractTest_View'));
}
/**
* @group ZF-6543
*/
public function testPassingFullViewClassNameNotMatchingARegisteredPrefixShouldReturnAppropriateResource()
{
$this->application->setOptions(array(
'resources' => array(
'Zend_Application_Bootstrap_BootstrapAbstractTest_View' => array(),
),
));
$bootstrap = new Zend_Application_Bootstrap_Bootstrap($this->application);
$bootstrap->bootstrap('Zend_Application_Bootstrap_BootstrapAbstractTest_View');
$resource = $bootstrap->getResource('Zend_Application_Bootstrap_BootstrapAbstractTest_View');
$this->assertTrue($resource instanceof Zend_Application_Bootstrap_BootstrapAbstractTest_View, var_export(array_keys($bootstrap->getPluginResources()), 1));
}
/**
* @group ZF-6543
*/
public function testCanMixAndMatchPluginResourcesAndFullClassNames()
{
$this->application->setOptions(array(
'resources' => array(
'Zend_Application_Bootstrap_BootstrapAbstractTest_View' => array(),
'view' => array(),
),
));
$bootstrap = new Zend_Application_Bootstrap_Bootstrap($this->application);
$bootstrap->bootstrap('Zend_Application_Bootstrap_BootstrapAbstractTest_View');
$resource1 = $bootstrap->getResource('Zend_Application_Bootstrap_BootstrapAbstractTest_View');
$bootstrap->bootstrap('view');
$resource2 = $bootstrap->getResource('view');
$this->assertNotSame($resource1, $resource2);
$this->assertTrue($resource1 instanceof Zend_Application_Bootstrap_BootstrapAbstractTest_View, var_export(array_keys($bootstrap->getPluginResources()), 1));
$this->assertTrue($resource2 instanceof Zend_View);
}
/**
* @group ZF-6543
*/
public function testPluginClassesDefiningExplicitTypeWillBeRegisteredWithThatValue()
{
$this->application->setOptions(array(
'resources' => array(
'Zend_Application_Bootstrap_BootstrapAbstractTest_Layout' => array(),
'layout' => array(),
),
));
$bootstrap = new Zend_Application_Bootstrap_Bootstrap($this->application);
$bootstrap->bootstrap('BootstrapAbstractTestLayout');
$resource1 = $bootstrap->getResource('BootstrapAbstractTestLayout');
$bootstrap->bootstrap('layout');
$resource2 = $bootstrap->getResource('layout');
$this->assertNotSame($resource1, $resource2);
$this->assertTrue($resource1 instanceof Zend_Application_Bootstrap_BootstrapAbstractTest_Layout, var_export(array_keys($bootstrap->getPluginResources()), 1));
$this->assertTrue($resource2 instanceof Zend_Layout);
}
/**
* @group ZF-6471
*/
public function testBootstrapShouldPassItselfToResourcePluginConstructor()
{
$this->application->setOptions(array(
'pluginPaths' => array(
'Zend_Application_Bootstrap_BootstrapAbstractTest' => dirname(__FILE__),
),
'resources' => array(
'Foo' => array(),
),
));
$bootstrap = new Zend_Application_Bootstrap_Bootstrap($this->application);
$resource = $bootstrap->getPluginResource('foo');
$this->assertTrue($resource->bootstrapSetInConstructor, var_export(get_object_vars($resource), 1));
}
/**
* @group ZF-6591
*/
public function testRequestingPluginsByShortNameShouldNotRaiseFatalErrors()
{
$this->autoloader->setFallbackAutoloader(true)
->suppressNotFoundWarnings(false);
$this->application->setOptions(array(
'resources' => array(
'FrontController' => array(),
),
));
set_error_handler(array($this, 'handleError'));
$bootstrap = new Zend_Application_Bootstrap_Bootstrap($this->application);
$resource = $bootstrap->getPluginResource('FrontController');
restore_error_handler();
$this->assertTrue(false === $this->error, $this->error);
}
/**
* @group ZF-7550
*/
public function testRequestingPluginsByAutoloadableClassNameShouldNotRaiseFatalErrors()
{
// Using namesapce 'zabt' to prevent conflict with Zend namespace
$rl = new Zend_Loader_Autoloader_Resource(array(
'namespace' => 'Zabt',
'basePath' => dirname(__FILE__) . '/../_files',
));
$rl->addResourceType('resources', 'resources', 'Resource');
$options = array(
'resources' => array(
'Zabt_Resource_Autoloaded' => array('bar' => 'baz')
),
);
$this->application->setOptions($options);
$bootstrap = new Zend_Application_Bootstrap_Bootstrap($this->application);
$bootstrap->bootstrap();
}
/**
* @group ZF-7690
*/
public function testCallingSetOptionsMultipleTimesShouldUpdateOptionKeys()
{
$this->application->setOptions(array(
'resources' => array(
'layout' => array(),
),
));
$bootstrap = new Zend_Application_Bootstrap_BootstrapAbstractTest_OptionKeys($this->application);
$bootstrap->setOptions(array(
'pluginPaths' => array(
'Foo' => dirname(__FILE__),
),
));
$expected = array('resources', 'pluginpaths');
$actual = $bootstrap->getOptionKeys();
$this->assertEquals($expected, $actual);
}
}
class Zend_Application_Bootstrap_BootstrapAbstractTest_View
extends Zend_Application_Resource_ResourceAbstract
{
public function init()
{
return $this;
}
}
class Zend_Application_Bootstrap_BootstrapAbstractTest_Layout
extends Zend_Application_Resource_ResourceAbstract
{
public $_explicitType = 'BootstrapAbstractTestLayout';
public $bootstrapSetInConstructor = false;
public function __construct($options = null)
{
parent::__construct($options);
if (null !== $this->getBootstrap()) {
$this->bootstrapSetInConstructor = true;
}
}
public function init()
{
return $this;
}
}
class Zend_Application_Bootstrap_BootstrapAbstractTest_Foo
extends Zend_Application_Resource_ResourceAbstract
{
public $bootstrapSetInConstructor = false;
public function __construct($options = null)
{
parent::__construct($options);
if (null !== $this->getBootstrap()) {
$this->bootstrapSetInConstructor = true;
}
}
public function init()
{
return $this;
}
}
class Zend_Application_Bootstrap_BootstrapAbstractTest_OptionKeys
extends Zend_Application_Bootstrap_Bootstrap
{
public function getOptionKeys()
{
return $this->_optionKeys;
}
}
if (PHPUnit_MAIN_METHOD == 'Zend_Application_Bootstrap_BootstrapAbstractTest::main') {
Zend_Application_Bootstrap_BootstrapAbstractTest::main();
}