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'); require_once dirname(__FILE__) . '/../_files/ZfAppBootstrap.php'; $this->bootstrap = new ZfAppBootstrap($this->application); } 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 testBootstrapIsNullByDefault() { require_once dirname(__FILE__) . '/../_files/resources/Foo.php'; $resource = new Zend_Application_BootstrapTest_Resource_Foo(); $this->assertNull($resource->getBootstrap()); } public function testResourceShouldAllowSettingParentBootstrap() { require_once dirname(__FILE__) . '/../_files/resources/Foo.php'; $resource = new Zend_Application_BootstrapTest_Resource_Foo(); $resource->setBootstrap($this->bootstrap); $this->assertSame($this->bootstrap, $resource->getBootstrap()); } public function testOptionsAreStoredVerbatim() { require_once dirname(__FILE__) . '/../_files/resources/Foo.php'; $resource = new Zend_Application_BootstrapTest_Resource_Foo(); $options = array( 'foo' => 'bar', ); $resource->setOptions($options); $this->assertEquals($options, $resource->getOptions()); } public function testCallingSetOptionsMultipleTimesMergesOptions() { require_once dirname(__FILE__) . '/../_files/resources/Foo.php'; $resource = new Zend_Application_BootstrapTest_Resource_Foo(); $options1 = array( 'foo' => 'bar', ); $options2 = array( 'bar' => 'baz', ); $options3 = array( 'foo' => 'BAR', ); $expected = $resource->mergeOptions($options1, $options2); $expected = $resource->mergeOptions($expected, $options3); $resource->setOptions($options1) ->setOptions($options2) ->setOptions($options3); $this->assertEquals($expected, $resource->getOptions()); } public function testSetOptionsProxiesToLocalSetters() { require_once dirname(__FILE__) . '/../_files/resources/Foo.php'; $resource = new Zend_Application_BootstrapTest_Resource_Foo(); $options = array( 'someArbitraryKey' => 'test', ); $resource->setOptions($options); $this->assertEquals('test', $resource->someArbitraryKey); } public function testConstructorAcceptsArrayConfiguration() { require_once dirname(__FILE__) . '/../_files/resources/Foo.php'; $options = array( 'foo' => 'bar', ); $resource = new Zend_Application_BootstrapTest_Resource_Foo($options); $this->assertEquals($options, $resource->getOptions()); } public function testConstructorAcceptsZendConfigObject() { require_once dirname(__FILE__) . '/../_files/resources/Foo.php'; $options = array( 'foo' => 'bar', ); $config = new Zend_Config($options); $resource = new Zend_Application_BootstrapTest_Resource_Foo($config); $this->assertEquals($options, $resource->getOptions()); } /** * @group ZF-6593 */ public function testSetOptionsShouldRemoveBootstrapOptionWhenPassed() { require_once dirname(__FILE__) . '/../_files/resources/Foo.php'; $resource = new Zend_Application_BootstrapTest_Resource_Foo(); $resource->setOptions(array( 'bootstrap' => $this->bootstrap, )); $this->assertSame($this->bootstrap, $resource->getBootstrap()); $options = $resource->getOptions(); $this->assertNotContains('bootstrap', array_keys($options)); } } if (PHPUnit_MAIN_METHOD == 'Zend_Application_Resource_ResourceAbstractTest::main') { Zend_Application_Resource_ResourceAbstractTest::main(); }