/**
  * Initializes the configuration manager and the Extbase settings
  *
  * @param $configuration The current incoming configuration
  * @return void
  */
 protected function initializeConfigurationManagerAndFrameworkConfiguration($configuration)
 {
     if (TYPO3_MODE === 'FE') {
         self::$configurationManager = t3lib_div::makeInstance('Tx_Extbase_Configuration_FrontendConfigurationManager');
         self::$configurationManager->setContentObject($this->cObj);
     } else {
         self::$configurationManager = t3lib_div::makeInstance('Tx_Extbase_Configuration_BackendConfigurationManager');
     }
     self::$extbaseFrameworkConfiguration = self::$configurationManager->getFrameworkConfiguration($configuration);
 }
 /**
  * @test
  */
 public function setStoragePidWithStdWrap()
 {
     unset($this->abstractConfigurationManager);
     $this->abstractConfigurationManager = $this->getMock('Tx_Extbase_Configuration_AbstractConfigurationManager', array('getSwitchableControllerActions', 'getContextSpecificFrameworkConfiguration', 'getTypoScriptSetup', 'getPluginConfiguration'));
     $pluginConfiguration = $this->testPluginConfiguration;
     $pluginConfiguration['persistence']['storagePid'] = array('cObject' => array('value' => '8,3', '_typoScriptNodeValue' => 'TEXT'));
     $this->abstractConfigurationManager->expects($this->once())->method('getTypoScriptSetup')->will($this->returnValue($this->testTypoScriptSetup));
     $this->abstractConfigurationManager->expects($this->once())->method('getPluginConfiguration')->with('CurrentExtensionName', 'CurrentPluginName')->will($this->returnValue($pluginConfiguration));
     $this->abstractConfigurationManager->expects($this->once())->method('getSwitchableControllerActions')->with('CurrentExtensionName', 'CurrentPluginName')->will($this->returnValue(NULL));
     $expectedResult = array('settings' => array('setting1' => 'overriddenValue1', 'setting2' => 'value2', 'setting3' => 'additionalValue'), 'view' => array('viewSub' => array('key1' => 'overridden', 'key2' => 'value2', 'key3' => 'new key')), 'persistence' => array('storagePid' => '8,3'), 'controllerConfiguration' => NULL);
     $actualResult = $this->abstractConfigurationManager->getConfiguration('CurrentExtensionName', 'CurrentPluginName');
     $this->assertEquals($expectedResult, $actualResult);
 }
 /**
  * Returns the specified configuration.
  * The actual configuration will be merged from different sources in a defined order.
  *
  * Note that this is a low level method and only makes sense to be used by Extbase internally.
  *
  * @param string $configurationType The kind of configuration to fetch - must be one of the CONFIGURATION_TYPE_* constants
  * @param string $extensionName if specified, the configuration for the given extension will be returned.
  * @param string $pluginName if specified, the configuration for the given plugin will be returned.
  * @return array The configuration
  */
 public function getConfiguration($configurationType, $extensionName = NULL, $pluginName = NULL)
 {
     switch ($configurationType) {
         case self::CONFIGURATION_TYPE_SETTINGS:
             $configuration = $this->concreteConfigurationManager->getConfiguration($extensionName, $pluginName);
             return $configuration['settings'];
         case self::CONFIGURATION_TYPE_FRAMEWORK:
             return $this->concreteConfigurationManager->getConfiguration($extensionName, $pluginName);
         case self::CONFIGURATION_TYPE_FULL_TYPOSCRIPT:
             return $this->concreteConfigurationManager->getTypoScriptSetup();
         default:
             throw new Tx_Extbase_Configuration_Exception_InvalidConfigurationTypeException('Invalid configuration type "' . $configurationType . '"', 1206031879);
     }
 }