Merge "[BUGFIX] ConfigurationManager use FrontendSimulator only if neccessary"
authorBastian Waidelich <bastian@typo3.org>
Sun, 9 Oct 2011 19:17:28 +0000 (21:17 +0200)
committerGerrit Code Review <gerrit@review.typo3.org>
Sun, 9 Oct 2011 19:17:28 +0000 (21:17 +0200)
16 files changed:
typo3/sysext/extbase/Classes/MVC/Controller/ActionController.php
typo3/sysext/extbase/Classes/MVC/Controller/Argument.php
typo3/sysext/extbase/Classes/MVC/Web/RequestBuilder.php
typo3/sysext/extbase/Classes/MVC/Web/Routing/UriBuilder.php
typo3/sysext/extbase/Classes/Persistence/Backend.php
typo3/sysext/extbase/Classes/Persistence/Query.php
typo3/sysext/extbase/Classes/Persistence/QueryInterface.php
typo3/sysext/extbase/Classes/Persistence/Storage/Typo3DbBackend.php
typo3/sysext/extbase/Classes/Property/TypeConverter/ObjectStorageConverter.php
typo3/sysext/extbase/Classes/Service/ExtensionService.php
typo3/sysext/extbase/Tests/Unit/MVC/Web/RequestBuilderTest.php
typo3/sysext/extbase/Tests/Unit/MVC/Web/Routing/UriBuilderTest.php
typo3/sysext/extbase/Tests/Unit/Service/ExtensionServiceTest.php
typo3/sysext/extbase/Tests/Unit/Utility/TypeHandlingTest.php [deleted file]
typo3/sysext/extbase/ext_emconf.php
typo3/sysext/extbase/ext_typoscript_setup.txt

index 2c3df2d..14095fa 100644 (file)
@@ -280,7 +280,7 @@ class Tx_Extbase_MVC_Controller_ActionController extends Tx_Extbase_MVC_Controll
                                foreach ($validationResult->getSubResults() as $argumentName => $subValidationResult) {
                                        if (!$subValidationResult->hasErrors()) continue;
 
-                                       if (array_search($argumentName, $ignoreValidationAnnotations) !== FALSE) continue;
+                                       if (array_search('$' . $argumentName, $ignoreValidationAnnotations) !== FALSE) continue;
 
                                        $shouldCallActionMethod = FALSE;
                                }
@@ -407,7 +407,7 @@ class Tx_Extbase_MVC_Controller_ActionController extends Tx_Extbase_MVC_Controll
         * Override this method to solve assign variables common for all actions
         * or prepare the view in another way before the action is called.
         *
-        * @param Tx_Extbase_View_ViewInterface $view The view to be initialized
+        * @param Tx_Extbase_MVC_View_ViewInterface $view The view to be initialized
         * @return void
         * @api
         */
@@ -445,7 +445,7 @@ class Tx_Extbase_MVC_Controller_ActionController extends Tx_Extbase_MVC_Controll
                if ($this->configurationManager->isFeatureEnabled('rewrittenPropertyMapper')) {
                        $errorFlashMessage = $this->getErrorFlashMessage();
                        if ($errorFlashMessage !== FALSE) {
-                               $this->flashMessageContainer->add($errorFlashMessage);
+                               $this->flashMessageContainer->add($errorFlashMessage, '', t3lib_FlashMessage::ERROR);
                        }
 
                        $referringRequest = $this->request->getReferringRequest();
index 822cdab..0c124d9 100644 (file)
@@ -80,6 +80,11 @@ class Tx_Extbase_MVC_Controller_Argument {
        protected $reflectionService;
 
        /**
+        * @var Tx_Extbase_Service_TypeHandlingService
+        */
+       protected $typeHandlingService;
+
+       /**
         * Name of this argument
         * @var string
         */
@@ -164,7 +169,7 @@ class Tx_Extbase_MVC_Controller_Argument {
                if (!is_string($name)) throw new InvalidArgumentException('$name must be of type string, ' . gettype($name) . ' given.', 1187951688);
                if (strlen($name) === 0) throw new InvalidArgumentException('$name must be a non-empty string, ' . strlen($name) . ' characters given.', 1232551853);
                $this->name = $name;
-               $this->dataType = Tx_Extbase_Utility_TypeHandling::normalizeType($dataType);
+               $this->dataType = $dataType;
        }
 
        /**
@@ -246,6 +251,16 @@ class Tx_Extbase_MVC_Controller_Argument {
        public function initializeObject() {
                $this->propertyMappingConfiguration = $this->propertyMappingConfigurationBuilder->build('Tx_Extbase_MVC_Controller_MvcPropertyMappingConfiguration');
        }
+
+       /**
+        * @param Tx_Extbase_Service_TypeHandlingService $typeHandlingService
+        * @return void
+        */
+       public function injectTypeHandlingService(Tx_Extbase_Service_TypeHandlingService $typeHandlingService) {
+               $this->typeHandlingService = $typeHandlingService;
+               $this->dataType = $this->typeHandlingService->normalizeType($this->dataType);
+       }
+
        /**
         * Returns the name of this argument
         *
index afd1893..3d8af4b 100644 (file)
@@ -63,13 +63,6 @@ class Tx_Extbase_MVC_Web_RequestBuilder implements t3lib_Singleton {
        protected $defaultControllerName;
 
        /**
-        * The default action of the default controller
-        *
-        * @var string
-        */
-       protected $defaultActionName;
-
-       /**
         * The default format of the response object
         *
         * @var string
@@ -132,13 +125,11 @@ class Tx_Extbase_MVC_Web_RequestBuilder implements t3lib_Singleton {
                $this->extensionName = $configuration['extensionName'];
                $this->pluginName = $configuration['pluginName'];
                $this->defaultControllerName = current(array_keys($configuration['controllerConfiguration']));
-               $this->defaultActionName = current($configuration['controllerConfiguration'][$this->defaultControllerName]['actions']);
 
-               $allowedControllerActions = array();
+               $this->allowedControllerActions = array();
                foreach ($configuration['controllerConfiguration'] as $controllerName => $controllerActions) {
-                       $allowedControllerActions[$controllerName] = $controllerActions['actions'];
+                       $this->allowedControllerActions[$controllerName] = $controllerActions['actions'];
                }
-               $this->allowedControllerActions = $allowedControllerActions;
                if (!empty($configuration['format'])) {
                        $this->defaultFormat = $configuration['format'];
                }
@@ -154,30 +145,8 @@ class Tx_Extbase_MVC_Web_RequestBuilder implements t3lib_Singleton {
                $pluginNamespace = $this->extensionService->getPluginNamespace($this->extensionName, $this->pluginName);
                $parameters = t3lib_div::_GPmerged($pluginNamespace);
 
-               if (is_string($parameters['controller']) && array_key_exists($parameters['controller'], $this->allowedControllerActions)) {
-                       $controllerName = filter_var($parameters['controller'], FILTER_SANITIZE_STRING);
-               } elseif (!empty($this->defaultControllerName)) {
-                       $controllerName = $this->defaultControllerName;
-               } else {
-                       throw new Tx_Extbase_MVC_Exception(
-                               'The default controller can not be determined.<br />'
-                               . 'Please check for Tx_Extbase_Utility_Extension::configurePlugin() in your ext_localconf.php.',
-                               1295479650
-                       );
-               }
-
-               $allowedActions = $this->allowedControllerActions[$controllerName];
-               if (is_string($parameters['action']) && is_array($allowedActions) && in_array($parameters['action'], $allowedActions)) {
-                       $actionName = filter_var($parameters['action'], FILTER_SANITIZE_STRING);
-               } elseif (!empty($this->defaultActionName)) {
-                       $actionName = $this->defaultActionName;
-               } else {
-                       throw new Tx_Extbase_MVC_Exception(
-                               'The default action can not be determined for controller "' . $controllerName . '".<br />'
-                               . 'Please check Tx_Extbase_Utility_Extension::configurePlugin() in your ext_localconf.php.',
-                               1295479651
-                       );
-               }
+               $controllerName = $this->resolveControllerName($parameters);
+               $actionName = $this->resolveActionName($controllerName, $parameters);
 
                $request = $this->objectManager->create('Tx_Extbase_MVC_Web_Request');
                $request->setPluginName($this->pluginName);
@@ -201,6 +170,81 @@ class Tx_Extbase_MVC_Web_RequestBuilder implements t3lib_Singleton {
                return $request;
        }
 
+       /**
+        * Returns the current ControllerName extracted from given $parameters.
+        * If no controller is specified, the defaultControllerName will be returned.
+        * If that's not available, an exception is thrown.
+        *
+        * @param array $parameters
+        * @return string
+        * @throws Tx_Extbase_MVC_Exception if the controller could not be resolved
+        */
+       protected function resolveControllerName(array $parameters) {
+               if (!isset($parameters['controller']) || strlen($parameters['controller']) === 0) {
+                       if (strlen($this->defaultControllerName) === 0) {
+                               throw new Tx_Extbase_MVC_Exception(
+                                       'The default controller can not be determined. Please check for Tx_Extbase_Utility_Extension::configurePlugin() in your ext_localconf.php.',
+                                       1316104317
+                               );
+                       }
+                       return $this->defaultControllerName;
+               }
+               $allowedControllerNames = array_keys($this->allowedControllerActions);
+               if (!in_array($parameters['controller'], $allowedControllerNames)) {
+                       $configuration = $this->configurationManager->getConfiguration(Tx_Extbase_Configuration_ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK);
+                       if (isset($configuration['mvc']['throwPageNotFoundExceptionIfActionCantBeResolved']) && (boolean)$configuration['mvc']['throwPageNotFoundExceptionIfActionCantBeResolved']) {
+                               throw new t3lib_error_http_PageNotFoundException(
+                                       'The requested resource was not found',
+                                       1313857897
+                               );
+                       }
+                       throw new Tx_Extbase_MVC_Exception_InvalidControllerName(
+                               'The controller "' . $parameters['controller'] . '" is not allowed by this plugin. Please check for Tx_Extbase_Utility_Extension::configurePlugin() in your ext_localconf.php.',
+                               1313855173
+                       );
+               }
+               return filter_var($parameters['controller'], FILTER_SANITIZE_STRING);
+       }
+
+       /**
+        * Returns the current actionName extracted from given $parameters.
+        * If no action is specified, the defaultActionName will be returned.
+        * If that's not available or the specified action is not defined in the current plugin, an exception is thrown.
+        *
+        * @param $controllerName
+        * @param array $parameters
+        * @return string
+        * @throws t3lib_error_http_PageNotFoundException|Tx_Extbase_MVC_Exception|Tx_Extbase_MVC_Exception_InvalidActionName if the action could not be resolved
+        */
+       protected function resolveActionName($controllerName, array $parameters) {
+               if (!isset($parameters['action']) || strlen($parameters['action']) === 0) {
+                       $defaultActionName = is_array($this->allowedControllerActions[$controllerName]) ? current($this->allowedControllerActions[$controllerName]) : '';
+                       if (strlen($defaultActionName) === 0) {
+                               throw new Tx_Extbase_MVC_Exception(
+                                       'The default action can not be determined for controller "' . $controllerName . '". Please check Tx_Extbase_Utility_Extension::configurePlugin() in your ext_localconf.php.',
+                                       1295479651
+                               );
+                       }
+                       return $defaultActionName;
+               }
+               $actionName = $parameters['action'];
+               $allowedActionNames = $this->allowedControllerActions[$controllerName];
+               if (!in_array($actionName, $allowedActionNames)) {
+                       $configuration = $this->configurationManager->getConfiguration(Tx_Extbase_Configuration_ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK);
+                       if (isset($configuration['mvc']['throwPageNotFoundExceptionIfActionCantBeResolved']) && (boolean)$configuration['mvc']['throwPageNotFoundExceptionIfActionCantBeResolved']) {
+                               throw new t3lib_error_http_PageNotFoundException(
+                                       'The requested resource was not found',
+                                       1313857897
+                               );
+                       }
+                       throw new Tx_Extbase_MVC_Exception_InvalidActionName(
+                               'The action "' . $actionName . '" (controller "' . $controllerName . '") is not allowed by this plugin. Please check Tx_Extbase_Utility_Extension::configurePlugin() in your ext_localconf.php.',
+                               1313855173
+                       );
+               }
+               return filter_var($actionName, FILTER_SANITIZE_STRING);
+       }
+
 
 }
 ?>
\ No newline at end of file
index f2f6483..d9cb9f5 100644 (file)
@@ -66,6 +66,11 @@ class Tx_Extbase_MVC_Web_Routing_UriBuilder {
        protected $createAbsoluteUri = FALSE;
 
        /**
+        * @var string
+        */
+       protected $absoluteUriScheme = NULL;
+
+       /**
         * @var boolean
         */
        protected $addQueryString = FALSE;
@@ -198,7 +203,7 @@ class Tx_Extbase_MVC_Web_Routing_UriBuilder {
        /**
         * Specifies the format of the target (e.g. "html" or "xml")
         *
-        * @param string $section
+        * @param string $format
         * @return Tx_Extbase_MVC_Web_Routing_UriBuilder the current UriBuilder to allow method chaining
         * @api
         */
@@ -236,6 +241,24 @@ class Tx_Extbase_MVC_Web_Routing_UriBuilder {
        }
 
        /**
+        * @return string
+        */
+       public function getAbsoluteUriScheme() {
+               return $this->absoluteUriScheme;
+       }
+
+       /**
+        * Sets the scheme that should be used for absolute URIs in FE mode
+        *
+        * @param string $absoluteUriScheme the scheme to be used for absolute URIs
+        * @return Tx_Extbase_MVC_Web_Routing_UriBuilder the current UriBuilder to allow method chaining
+        */
+       public function setAbsoluteUriScheme($absoluteUriScheme) {
+               $this->absoluteUriScheme = $absoluteUriScheme;
+               return $this;
+       }
+
+       /**
         * If set, the current query parameters will be merged with $this->arguments. Defaults to FALSE.
         *
         * @param boolean $addQueryString
@@ -466,6 +489,9 @@ class Tx_Extbase_MVC_Web_Routing_UriBuilder {
                if ($pluginName === NULL) {
                        $pluginName = $this->request->getPluginName();
                }
+               if (TYPO3_MODE === 'FE' && $this->configurationManager->isFeatureEnabled('skipDefaultArguments')) {
+                       $controllerArguments = $this->removeDefaultControllerAndAction($controllerArguments, $extensionName, $pluginName);
+               }
                if ($this->targetPageUid === NULL && TYPO3_MODE === 'FE') {
                        $this->targetPageUid = $this->extensionService->getTargetPidByPlugin($extensionName, $pluginName);
                }
@@ -484,6 +510,31 @@ class Tx_Extbase_MVC_Web_Routing_UriBuilder {
        }
 
        /**
+        * This removes controller and/or action arguments from given controllerArguments
+        * if they are equal to the default controller/action of the target plugin.
+        * Note: This is only active in FE mode and if feature "skipDefaultArguments" is enabled
+        * @see Tx_Extbase_Configuration_ConfigurationManagerInterface::isFeatureEnabled()
+        *
+        * @param array $controllerArguments the current controller arguments to be modified
+        * @param string $extensionName target extension name
+        * @param string $pluginName target plugin name
+        * @return array
+        */
+       protected function removeDefaultControllerAndAction(array $controllerArguments, $extensionName, $pluginName) {
+               $defaultControllerName = $this->extensionService->getDefaultControllerNameByPlugin($extensionName, $pluginName);
+               if (isset($controllerArguments['action'])) {
+                       $defaultActionName = $this->extensionService->getDefaultActionNameByPluginAndController($extensionName, $pluginName, $controllerArguments['controller']);
+                       if ($controllerArguments['action'] === $defaultActionName) {
+                               unset($controllerArguments['action']);
+                       }
+               }
+               if ($controllerArguments['controller'] === $defaultControllerName) {
+                       unset($controllerArguments['controller']);
+               }
+               return $controllerArguments;
+       }
+
+       /**
         * Builds the URI
         * Depending on the current context this calls buildBackendUri() or buildFrontendUri()
         *
@@ -544,6 +595,9 @@ class Tx_Extbase_MVC_Web_Routing_UriBuilder {
 
                if ($this->createAbsoluteUri === TRUE) {
                        $typolinkConfiguration['forceAbsoluteUrl'] = TRUE;
+                       if ($this->absoluteUriScheme !== NULL) {
+                               $typolinkConfiguration['forceAbsoluteUrl.']['scheme'] = $this->absoluteUriScheme;
+                       }
                }
 
                $uri = $this->contentObject->typoLink_URL($typolinkConfiguration);
index 4b98289..4103c3d 100644 (file)
@@ -273,7 +273,7 @@ class Tx_Extbase_Persistence_Backend implements Tx_Extbase_Persistence_BackendIn
                } else {
                        $query = $this->queryFactory->create($className);
                        return $query->matching(
-                               $query->withUid($identifier))
+                               $query->equals('uid', $identifier))
                                ->execute()
                                ->getFirst();
                }
@@ -471,26 +471,6 @@ class Tx_Extbase_Persistence_Backend implements Tx_Extbase_Persistence_BackendIn
        }
 
        /**
-        * Returns the current field value of the given object property from the storage backend.
-        *
-        * @param Tx_Extbase_DomainObject_DomainObjectInterface $object The object
-        * @param string $propertyName The property name
-        * @return mixed The field value
-        */
-       protected function getCurrentFieldValue(Tx_Extbase_DomainObject_DomainObjectInterface $object, $propertyName) {
-               $className = get_class($object);
-               $columnMap = $this->dataMapper->getDataMap($className)->getColumnMap($propertyName);
-               $query = $this->queryFactory->create($className);
-               $query->getQuerySettings()->setReturnRawQueryResult(TRUE);
-               $currentRow = $query->matching(
-                       $query->withUid($object->getUid()))
-                       ->execute()
-                       ->getFirst();
-               $fieldValue = $currentRow[$columnMap->getColumnName()];
-               return $fieldValue;
-       }
-
-       /**
         * Returns the removed objects determined by a comparison of the clean property value
         * with the actual property value.
         *
index d707205..d0e37bb 100644 (file)
@@ -440,22 +440,6 @@ class Tx_Extbase_Persistence_Query implements Tx_Extbase_Persistence_QueryInterf
        }
 
        /**
-        * Matches against the (internal) uid.
-        *
-        * @param int $uid The uid to match against
-        * @return Tx_Extbase_Persistence_QOM_ComparisonInterface
-        * @deprecated since Extbase 1.2.0; was removed in FLOW3; will be removed in Extbase 1.4.0; use equals() instead
-        */
-       public function withUid($operand) {
-               t3lib_div::logDeprecatedFunction();
-               return $this->qomFactory->comparison(
-                       $this->qomFactory->propertyValue('uid', $this->getSelectorName()),
-                       Tx_Extbase_Persistence_QueryInterface::OPERATOR_EQUAL_TO,
-                       $operand
-                       );
-       }
-
-       /**
         * Returns an equals criterion used for matching objects against a query
         *
         * @param string $propertyName The name of the property to compare against
index ea59bd2..25f2dad 100644 (file)
@@ -197,15 +197,6 @@ interface Tx_Extbase_Persistence_QueryInterface {
        public function logicalNot($constraint);
 
        /**
-        * Matches against the (internal) identifier.
-        *
-        * @param string $uid An identifier to match against
-        * @return object
-        * @deprecated since Extbase 1.2.0; was removed in FLOW3; will be removed in Extbase 1.4.0; use equals() instead
-        */
-       public function withUid($uid);
-
-       /**
         * Returns an equals criterion used for matching objects against a query
         *
         * @param string $propertyName The name of the property to compare against
index af69e2f..3610b2d 100644 (file)
@@ -1053,7 +1053,7 @@ class Tx_Extbase_Persistence_Storage_Typo3DbBackend implements Tx_Extbase_Persis
                        $clearCacheCommands = t3lib_div::trimExplode(',',strtolower($this->pageTSConfigCache[$storagePage]['TCEMAIN.']['clearCacheCmd']),1);
                        $clearCacheCommands = array_unique($clearCacheCommands);
                        foreach ($clearCacheCommands as $clearCacheCommand)     {
-                               if (t3lib_div::testInt($clearCacheCommand))     {
+                               if (t3lib_utility_Math::canBeInterpretedAsInteger($clearCacheCommand))  {
                                        $pageIdsToClear[] = $clearCacheCommand;
                                }
                        }
index cc2bb82..c45e280 100644 (file)
 class Tx_Extbase_Property_TypeConverter_ObjectStorageConverter extends Tx_Extbase_Property_TypeConverter_AbstractTypeConverter implements t3lib_Singleton {
 
        /**
+        * @var Tx_Extbase_Service_TypeHandlingService
+        */
+       protected $typeHandlingService;
+
+       /**
+        * @param Tx_Extbase_Service_TypeHandlingService $typeHandlingService
+        * @return void
+        */
+       public function injectTypeHandlingService(Tx_Extbase_Service_TypeHandlingService $typeHandlingService) {
+               $this->typeHandlingService = $typeHandlingService;
+       }
+
+       /**
         * @var array<string>
         */
        protected $sourceTypes = array('string', 'array');
@@ -86,7 +99,8 @@ class Tx_Extbase_Property_TypeConverter_ObjectStorageConverter extends Tx_Extbas
         * @api
         */
        public function getTypeOfChildProperty($targetType, $propertyName, Tx_Extbase_Property_PropertyMappingConfigurationInterface $configuration) {
-               $parsedTargetType = Tx_Extbase_Utility_TypeHandling::parseType($targetType);
+
+               $parsedTargetType = $this->typeHandlingService->parseType($targetType);
                return $parsedTargetType['elementType'];
        }
 }
index 49493e5..a011f05 100644 (file)
@@ -177,5 +177,36 @@ class Tx_Extbase_Service_ExtensionService implements t3lib_Singleton {
                return (integer)$frameworkConfiguration['view']['defaultPid'];
        }
 
+       /**
+        * This returns the name of the first controller of the given plugin.
+        *
+        * @param string $extensionName name of the extension to retrieve the target PID for
+        * @param string $pluginName name of the plugin to retrieve the target PID for
+        * @return string
+        */
+       public function getDefaultControllerNameByPlugin($extensionName, $pluginName) {
+               if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions'][$extensionName]['plugins'][$pluginName]['controllers'])) {
+                       return;
+               }
+               $controllers = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions'][$extensionName]['plugins'][$pluginName]['controllers'];
+               return key($controllers);
+       }
+
+       /**
+        * This returns the name of the first action of the given plugin controller.
+        *
+        * @param string $extensionName name of the extension to retrieve the target PID for
+        * @param string $pluginName name of the plugin to retrieve the target PID for
+        * @param string $controllerName name of the controller to retrieve default action for
+        * @return string
+        */
+       public function getDefaultActionNameByPluginAndController($extensionName, $pluginName, $controllerName) {
+               if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions'][$extensionName]['plugins'][$pluginName]['controllers'][$controllerName]['actions'])) {
+                       return;
+               }
+               $actions = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions'][$extensionName]['plugins'][$pluginName]['controllers'][$controllerName]['actions'];
+               return current($actions);
+       }
+
 }
 ?>
\ No newline at end of file
index de09a75..a13fc9f 100644 (file)
@@ -88,7 +88,7 @@ class Tx_Extbase_Tests_Unit_MVC_Web_RequestBuilderTest extends Tx_Extbase_Tests_
                                        'actions' => array('show', 'index')
                                ),
                                'TheThirdController' => array(
-                                       'actions' => array('delete', 'create')
+                                       'actions' => array('delete', 'create', 'onlyInThirdController')
                                )
                        )
                );
@@ -251,6 +251,22 @@ class Tx_Extbase_Tests_Unit_MVC_Web_RequestBuilderTest extends Tx_Extbase_Tests_
 
        /**
         * @test
+        * @expectedException Tx_Extbase_MVC_Exception
+        */
+       public function buildThrowsExceptionIfNoDefaultControllerCanBeResolved() {
+               $this->configuration['controllerConfiguration'] = array(
+                       '' => array(
+                               'actions' => array('foo')
+                       )
+               );
+               $this->mockConfigurationManager->expects($this->any())->method('getConfiguration')->will($this->returnValue($this->configuration));
+               $this->requestBuilder->injectConfigurationManager($this->mockConfigurationManager);
+               $this->requestBuilder->injectExtensionService($this->mockExtensionService);
+               $this->requestBuilder->build();
+       }
+
+       /**
+        * @test
         */
        public function buildSetsParametersFromGetAndPostVariables() {
                $this->configuration['extensionName'] = 'SomeExtensionName';
@@ -321,12 +337,195 @@ class Tx_Extbase_Tests_Unit_MVC_Web_RequestBuilderTest extends Tx_Extbase_Tests_
                                'show', 'index'
                        ),
                        'TheThirdController' => array(
-                               'delete', 'create'
+                               'delete', 'create', 'onlyInThirdController'
                        )
                );
                $this->requestBuilder->build();
                $actualResult = $this->requestBuilder->_get('allowedControllerActions');
                $this->assertEquals($expectedResult, $actualResult);
        }
+
+       /**
+        * @test
+        * @expectedException Tx_Extbase_MVC_Exception
+        */
+       public function buildThrowsExceptionIfDefaultControllerCantBeDetermined() {
+               $this->configuration['controllerConfiguration'] = array();
+
+               $this->mockConfigurationManager->expects($this->any())->method('getConfiguration')->will($this->returnValue($this->configuration));
+               $this->requestBuilder->injectConfigurationManager($this->mockConfigurationManager);
+
+               $this->mockExtensionService->expects($this->any())->method('getPluginNamespace')->will($this->returnValue('tx_myextension_pi1'));
+               $this->requestBuilder->injectExtensionService($this->mockExtensionService);
+
+               $this->requestBuilder->build();
+       }
+
+       /**
+        * @test
+        */
+       public function buildSetsDefaultControllerIfNoControllerIsSpecified() {
+               $this->injectDependencies();
+               $_GET = array(
+                       'tx_myextension_pi1' => array(
+                               'foo' => 'bar',
+                       )
+               );
+               $this->mockRequest->expects($this->once())->method('setControllerName')->with('TheFirstController');
+               $this->requestBuilder->build();
+       }
+
+       /**
+        * @test
+        */
+       public function buildCorrectlySetsSpecifiedControllerNameIfItsAllowedForTheCurrentPlugin() {
+               $this->injectDependencies();
+               $_GET = array(
+                       'tx_myextension_pi1' => array(
+                               'controller' => 'TheSecondController',
+                       )
+               );
+               $this->mockRequest->expects($this->once())->method('setControllerName')->with('TheSecondController');
+               $this->requestBuilder->build();
+       }
+
+       /**
+        * @test
+        * @expectedException Tx_Extbase_MVC_Exception_InvalidControllerName
+        */
+       public function buildThrowsInvalidControllerNameExceptionIfSpecifiedControllerIsNotAllowed() {
+               $this->mockConfigurationManager->expects($this->any())->method('getConfiguration')->will($this->returnValue($this->configuration));
+               $this->requestBuilder->injectConfigurationManager($this->mockConfigurationManager);
+
+               $this->mockExtensionService->expects($this->any())->method('getPluginNamespace')->will($this->returnValue('tx_myextension_pi1'));
+               $this->requestBuilder->injectExtensionService($this->mockExtensionService);
+
+               $_GET = array(
+                       'tx_myextension_pi1' => array(
+                               'controller' => 'SomeIllegalController',
+                       )
+               );
+               $this->requestBuilder->build();
+       }
+
+       /**
+        * @test
+        * @expectedException t3lib_error_http_PageNotFoundException
+        */
+       public function buildThrowsPageNotFoundExceptionIfEnabledAndSpecifiedControllerIsNotAllowed() {
+               $this->configuration['mvc']['throwPageNotFoundExceptionIfActionCantBeResolved'] = 1;
+               $this->mockConfigurationManager->expects($this->any())->method('getConfiguration')->will($this->returnValue($this->configuration));
+               $this->requestBuilder->injectConfigurationManager($this->mockConfigurationManager);
+
+               $this->mockExtensionService->expects($this->any())->method('getPluginNamespace')->will($this->returnValue('tx_myextension_pi1'));
+               $this->requestBuilder->injectExtensionService($this->mockExtensionService);
+
+               $_GET = array(
+                       'tx_myextension_pi1' => array(
+                               'controller' => 'SomeIllegalController',
+                       )
+               );
+               $this->requestBuilder->build();
+       }
+
+
+       /**
+        * @test
+        * @expectedException Tx_Extbase_MVC_Exception
+        */
+       public function buildThrowsExceptionIfDefaultActionCantBeDetermined() {
+               $this->configuration['controllerConfiguration'] = array();
+
+               $this->mockConfigurationManager->expects($this->any())->method('getConfiguration')->will($this->returnValue($this->configuration));
+               $this->requestBuilder->injectConfigurationManager($this->mockConfigurationManager);
+
+               $this->mockExtensionService->expects($this->any())->method('getPluginNamespace')->will($this->returnValue('tx_myextension_pi1'));
+               $this->requestBuilder->injectExtensionService($this->mockExtensionService);
+
+               $this->requestBuilder->build();
+       }
+
+       /**
+        * @test
+        */
+       public function buildSetsDefaultActionOfTheCurrentControllerIfNoActionIsSpecified() {
+               $this->injectDependencies();
+               $_GET = array(
+                       'tx_myextension_pi1' => array(
+                               'controller' => 'TheThirdController',
+                       )
+               );
+               $this->mockRequest->expects($this->once())->method('setControllerActionName')->with('delete');
+               $this->requestBuilder->build();
+       }
+
+       /**
+        * @test
+        */
+       public function buildCorrectlySetsSpecifiedActionNameForTheDefaultControllerIfItsAllowedForTheCurrentPlugin() {
+               $this->injectDependencies();
+               $_GET = array(
+                       'tx_myextension_pi1' => array(
+                               'action' => 'create',
+                       )
+               );
+               $this->mockRequest->expects($this->once())->method('setControllerActionName')->with('create');
+               $this->requestBuilder->build();
+       }
+
+       /**
+        * @test
+        */
+       public function buildCorrectlySetsSpecifiedActionNameForTheSpecifiedControllerIfItsAllowedForTheCurrentPlugin() {
+               $this->injectDependencies();
+               $_GET = array(
+                       'tx_myextension_pi1' => array(
+                               'controller' => 'TheThirdController',
+                               'action' => 'onlyInThirdController',
+                       )
+               );
+               $this->mockRequest->expects($this->once())->method('setControllerActionName')->with('onlyInThirdController');
+               $this->requestBuilder->build();
+       }
+
+       /**
+        * @test
+        * @expectedException Tx_Extbase_MVC_Exception_InvalidActionName
+        */
+       public function buildThrowsInvalidActionNameExceptionIfSpecifiedActionIsNotAllowed() {
+               $this->mockConfigurationManager->expects($this->any())->method('getConfiguration')->will($this->returnValue($this->configuration));
+               $this->requestBuilder->injectConfigurationManager($this->mockConfigurationManager);
+
+               $this->mockExtensionService->expects($this->any())->method('getPluginNamespace')->will($this->returnValue('tx_myextension_pi1'));
+               $this->requestBuilder->injectExtensionService($this->mockExtensionService);
+
+               $_GET = array(
+                       'tx_myextension_pi1' => array(
+                               'action' => 'someIllegalAction',
+                       )
+               );
+               $this->requestBuilder->build();
+       }
+
+       /**
+        * @test
+        * @expectedException t3lib_error_http_PageNotFoundException
+        */
+       public function buildThrowsPageNotFoundExceptionIfEnabledAndSpecifiedActionIsNotAllowed() {
+               $this->configuration['mvc']['throwPageNotFoundExceptionIfActionCantBeResolved'] = 1;
+               $this->mockConfigurationManager->expects($this->any())->method('getConfiguration')->will($this->returnValue($this->configuration));
+               $this->requestBuilder->injectConfigurationManager($this->mockConfigurationManager);
+
+               $this->mockExtensionService->expects($this->any())->method('getPluginNamespace')->will($this->returnValue('tx_myextension_pi1'));
+               $this->requestBuilder->injectExtensionService($this->mockExtensionService);
+
+               $_GET = array(
+                       'tx_myextension_pi1' => array(
+                               'action' => 'someIllegalAction',
+                       )
+               );
+               $this->requestBuilder->build();
+       }
+
 }
 ?>
\ No newline at end of file
index 48f3d87..732fb3b 100644 (file)
@@ -40,6 +40,11 @@ class Tx_Extbase_Tests_Unit_MVC_Web_Routing_UriBuilderTest extends Tx_Extbase_Te
        protected $getBackup;
 
        /**
+        * @var Tx_Extbase_Configuration_ConfigurationManagerInterface
+        */
+       protected $mockConfigurationManager;
+
+       /**
         * @var tslib_cObj
         */
        protected $mockContentObject;
@@ -68,10 +73,12 @@ class Tx_Extbase_Tests_Unit_MVC_Web_Routing_UriBuilderTest extends Tx_Extbase_Te
                $this->mockContentObject = $this->getMock('tslib_cObj');
                $this->mockRequest = $this->getMock('Tx_Extbase_MVC_Web_Request');
                $this->mockExtensionService = $this->getMock('Tx_Extbase_Service_ExtensionService');
+               $this->mockConfigurationManager = $this->getMock('Tx_Extbase_Configuration_ConfigurationManagerInterface');
 
                $this->uriBuilder = $this->getAccessibleMock('Tx_Extbase_MVC_Web_Routing_UriBuilder', array('build'));
                $this->uriBuilder->setRequest($this->mockRequest);
                $this->uriBuilder->_set('contentObject', $this->mockContentObject);
+               $this->uriBuilder->injectConfigurationManager($this->mockConfigurationManager);
 
                $this->uriBuilder->injectExtensionService($this->mockExtensionService);
        }
@@ -91,6 +98,7 @@ class Tx_Extbase_Tests_Unit_MVC_Web_Routing_UriBuilderTest extends Tx_Extbase_Te
                        ->setSection('testSection')
                        ->setFormat('testFormat')
                        ->setCreateAbsoluteUri(TRUE)
+                       ->setAbsoluteUriScheme('https')
                        ->setAddQueryString(TRUE)
                        ->setArgumentsToBeExcludedFromQueryString(array('test' => 'addQueryStringExcludeArguments'))
                        ->setArgumentPrefix('testArgumentPrefix')
@@ -104,6 +112,7 @@ class Tx_Extbase_Tests_Unit_MVC_Web_Routing_UriBuilderTest extends Tx_Extbase_Te
                $this->assertEquals('testSection', $this->uriBuilder->getSection());
                $this->assertEquals('testFormat', $this->uriBuilder->getFormat());
                $this->assertEquals(TRUE, $this->uriBuilder->getCreateAbsoluteUri());
+               $this->assertEquals('https', $this->uriBuilder->getAbsoluteUriScheme());
                $this->assertEquals(TRUE, $this->uriBuilder->getAddQueryString());
                $this->assertEquals(array('test' => 'addQueryStringExcludeArguments'), $this->uriBuilder->getArgumentsToBeExcludedFromQueryString());
                $this->assertEquals('testArgumentPrefix', $this->uriBuilder->getArgumentPrefix());
@@ -354,6 +363,40 @@ class Tx_Extbase_Tests_Unit_MVC_Web_Routing_UriBuilderTest extends Tx_Extbase_Te
        /**
         * @test
         */
+       public function buildFrontendUriSetsAbsoluteUriSchemeIfSpecified() {
+               $uriBuilder = $this->getAccessibleMock('Tx_Extbase_MVC_Web_Routing_UriBuilder', array('buildTypolinkConfiguration'));
+               $uriBuilder->_set('contentObject', $this->mockContentObject);
+               $uriBuilder->expects($this->once())->method('buildTypolinkConfiguration')->will($this->returnValue(array('foo' => 'bar')));
+
+               $this->mockContentObject->expects($this->once())->method('typoLink_URL')->with(array('foo' => 'bar', 'forceAbsoluteUrl' => TRUE, 'forceAbsoluteUrl.' => array('scheme' => 'someScheme')))->will($this->returnValue('http://baseuri/relative/uri'));
+               $uriBuilder->setCreateAbsoluteUri(TRUE);
+               $uriBuilder->setAbsoluteUriScheme('someScheme');
+
+               $expectedResult = 'http://baseuri/relative/uri';
+               $actualResult = $uriBuilder->buildFrontendUri();
+               $this->assertSame($expectedResult, $actualResult);
+       }
+
+       /**
+        * @test
+        */
+       public function buildFrontendUriDoesNotSetAbsoluteUriSchemeIfCreateAbsoluteUriIsFalse() {
+               $uriBuilder = $this->getAccessibleMock('Tx_Extbase_MVC_Web_Routing_UriBuilder', array('buildTypolinkConfiguration'));
+               $uriBuilder->_set('contentObject', $this->mockContentObject);
+               $uriBuilder->expects($this->once())->method('buildTypolinkConfiguration')->will($this->returnValue(array('foo' => 'bar')));
+
+               $this->mockContentObject->expects($this->once())->method('typoLink_URL')->with(array('foo' => 'bar'))->will($this->returnValue('http://baseuri/relative/uri'));
+               $uriBuilder->setCreateAbsoluteUri(FALSE);
+               $uriBuilder->setAbsoluteUriScheme('someScheme');
+
+               $expectedResult = 'http://baseuri/relative/uri';
+               $actualResult = $uriBuilder->buildFrontendUri();
+               $this->assertSame($expectedResult, $actualResult);
+       }
+
+       /**
+        * @test
+        */
        public function resetSetsAllOptionsToTheirDefaultValue() {
                $this->uriBuilder
                        ->setArguments(array('test' => 'arguments'))
@@ -605,6 +648,69 @@ class Tx_Extbase_Tests_Unit_MVC_Web_Routing_UriBuilderTest extends Tx_Extbase_Te
                $this->assertEquals($expectedResult, $actualResult);
        }
 
+       /**
+        * @test
+        */
+       public function removeDefaultControllerAndActionDoesNotModifyArgumentsifSpecifiedControlerAndActionIsNotEqualToDefaults() {
+               $this->mockExtensionService->expects($this->atLeastOnce())->method('getDefaultControllerNameByPlugin')->with('ExtensionName', 'PluginName')->will($this->returnValue('DefaultController'));
+               $this->mockExtensionService->expects($this->atLeastOnce())->method('getDefaultActionNameByPluginAndController')->with('ExtensionName', 'PluginName', 'SomeController')->will($this->returnValue('defaultAction'));
+
+               $arguments = array('controller' => 'SomeController', 'action' => 'someAction', 'foo' => 'bar');
+               $extensionName = 'ExtensionName';
+               $pluginName = 'PluginName';
+               $expectedResult = array('controller' => 'SomeController', 'action' => 'someAction', 'foo' => 'bar');
+
+               $actualResult = $this->uriBuilder->_callRef('removeDefaultControllerAndAction', $arguments, $extensionName, $pluginName);
+               $this->assertEquals($expectedResult, $actualResult);
+       }
+
+       /**
+        * @test
+        */
+       public function removeDefaultControllerAndActionRemovesControllerIfItIsEqualToTheDefault() {
+               $this->mockExtensionService->expects($this->atLeastOnce())->method('getDefaultControllerNameByPlugin')->with('ExtensionName', 'PluginName')->will($this->returnValue('DefaultController'));
+               $this->mockExtensionService->expects($this->atLeastOnce())->method('getDefaultActionNameByPluginAndController')->with('ExtensionName', 'PluginName', 'DefaultController')->will($this->returnValue('defaultAction'));
+
+               $arguments = array('controller' => 'DefaultController', 'action' => 'someAction', 'foo' => 'bar');
+               $extensionName = 'ExtensionName';
+               $pluginName = 'PluginName';
+               $expectedResult = array('action' => 'someAction', 'foo' => 'bar');
+
+               $actualResult = $this->uriBuilder->_callRef('removeDefaultControllerAndAction', $arguments, $extensionName, $pluginName);
+               $this->assertEquals($expectedResult, $actualResult);
+       }
+
+       /**
+        * @test
+        */
+       public function removeDefaultControllerAndActionRemovesActionIfItIsEqualToTheDefault() {
+               $this->mockExtensionService->expects($this->atLeastOnce())->method('getDefaultControllerNameByPlugin')->with('ExtensionName', 'PluginName')->will($this->returnValue('DefaultController'));
+               $this->mockExtensionService->expects($this->atLeastOnce())->method('getDefaultActionNameByPluginAndController')->with('ExtensionName', 'PluginName', 'SomeController')->will($this->returnValue('defaultAction'));
+
+               $arguments = array('controller' => 'SomeController', 'action' => 'defaultAction', 'foo' => 'bar');
+               $extensionName = 'ExtensionName';
+               $pluginName = 'PluginName';
+               $expectedResult = array('controller' => 'SomeController', 'foo' => 'bar');
+
+               $actualResult = $this->uriBuilder->_callRef('removeDefaultControllerAndAction', $arguments, $extensionName, $pluginName);
+               $this->assertEquals($expectedResult, $actualResult);
+       }
+
+       /**
+        * @test
+        */
+       public function removeDefaultControllerAndActionRemovesControllerAndActionIfBothAreEqualToTheDefault() {
+               $this->mockExtensionService->expects($this->atLeastOnce())->method('getDefaultControllerNameByPlugin')->with('ExtensionName', 'PluginName')->will($this->returnValue('DefaultController'));
+               $this->mockExtensionService->expects($this->atLeastOnce())->method('getDefaultActionNameByPluginAndController')->with('ExtensionName', 'PluginName', 'DefaultController')->will($this->returnValue('defaultAction'));
+
+               $arguments = array('controller' => 'DefaultController', 'action' => 'defaultAction', 'foo' => 'bar');
+               $extensionName = 'ExtensionName';
+               $pluginName = 'PluginName';
+               $expectedResult = array('foo' => 'bar');
+
+               $actualResult = $this->uriBuilder->_callRef('removeDefaultControllerAndAction', $arguments, $extensionName, $pluginName);
+               $this->assertEquals($expectedResult, $actualResult);
+       }
 
 }
 ?>
\ No newline at end of file
index 52b53c1..4ba1cf9 100644 (file)
@@ -296,5 +296,58 @@ class Tx_Extbase_Tests_Unit_Service_ExtensionServiceTest extends Tx_Extbase_Test
                $this->extensionService->getTargetPidByPlugin('ExtensionName', 'SomePlugin');
        }
 
+       /**
+        * @test
+        */
+       public function getDefaultControllerNameByPluginReturnsNullIfGivenExtensionCantBeFound() {
+               $this->assertNull($this->extensionService->getDefaultControllerNameByPlugin('NonExistingExtensionName', 'SomePlugin'));
+       }
+
+       /**
+        * @test
+        */
+       public function getDefaultControllerNameByPluginReturnsNullIfGivenPluginCantBeFound() {
+               $this->assertNull($this->extensionService->getDefaultControllerNameByPlugin('ExtensionName', 'NonExistingPlugin'));
+       }
+
+       /**
+        * @test
+        */
+       public function getDefaultControllerNameByPluginReturnsFirstControllerNameOfGivenPlugin() {
+               $expectedResult = 'ControllerName';
+               $actualResult = $this->extensionService->getDefaultControllerNameByPlugin('ExtensionName', 'SomePlugin');
+               $this->assertEquals($expectedResult, $actualResult);
+       }
+
+       /**
+        * @test
+        */
+       public function getDefaultActionNameByPluginAndControllerReturnsNullIfGivenExtensionCantBeFound() {
+               $this->assertNull($this->extensionService->getDefaultActionNameByPluginAndController('NonExistingExtensionName', 'SomePlugin', 'ControllerName'));
+       }
+
+       /**
+        * @test
+        */
+       public function getDefaultActionNameByPluginAndControllerReturnsNullIfGivenPluginCantBeFound() {
+               $this->assertNull($this->extensionService->getDefaultActionNameByPluginAndController('ExtensionName', 'NonExistingPlugin', 'ControllerName'));
+       }
+
+       /**
+        * @test
+        */
+       public function getDefaultActionNameByPluginAndControllerReturnsNullIfGivenControllerCantBeFound() {
+               $this->assertNull($this->extensionService->getDefaultActionNameByPluginAndController('ExtensionName', 'SomePlugin', 'NonExistingControllerName'));
+       }
+
+       /**
+        * @test
+        */
+       public function getDefaultActionNameByPluginAndControllerReturnsFirstActionNameOfGivenController() {
+               $expectedResult = 'someAction';
+               $actualResult = $this->extensionService->getDefaultActionNameByPluginAndController('SomeOtherExtensionName', 'SecondPlugin', 'SecondControllerName');
+               $this->assertEquals($expectedResult, $actualResult);
+       }
+
 }
 ?>
\ No newline at end of file
diff --git a/typo3/sysext/extbase/Tests/Unit/Utility/TypeHandlingTest.php b/typo3/sysext/extbase/Tests/Unit/Utility/TypeHandlingTest.php
deleted file mode 100644 (file)
index 6c010a1..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-<?php
-
-/*                                                                        *
- * This script belongs to the Extbase framework.                            *
- *                                                                        *
- * It is free software; you can redistribute it and/or modify it under    *
- * the terms of the GNU Lesser General Public License as published by the *
- * Free Software Foundation, either version 3 of the License, or (at your *
- * option) any later version.                                             *
- *                                                                        *
- * This script is distributed in the hope that it will be useful, but     *
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN-    *
- * TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser       *
- * General Public License for more details.                               *
- *                                                                        *
- * You should have received a copy of the GNU Lesser General Public       *
- * License along with the script.                                         *
- * If not, see http://www.gnu.org/licenses/lgpl.html                      *
- *                                                                        *
- * The TYPO3 project - inspiring people to share!                         *
- *                                                                        */
-
-/**
- * Testcase for the Utility\TypeHandling class
- *
- * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License, version 3 or later
- * @deprecated since Extbase 1.4.0; will be removed in Extbase 1.6.0. Please use Tx_Extbase_Tests_Unit_Service_TypeHandlingServiceTest instead
- */
-class Tx_Extbase_Tests_Unit_Utility_TypeHandlingTest extends Tx_Extbase_Tests_Unit_BaseTestCase {
-
-       /**
-        * @test
-        * @expectedException InvalidArgumentException
-        * @author Karsten Dambekalns <karsten@typo3.org>
-        */
-       public function parseTypeThrowsExceptionOnInvalidType() {
-               Tx_Extbase_Utility_TypeHandling::parseType('something not a type');
-       }
-
-       /**
-        * @test
-        * @expectedException InvalidArgumentException
-        * @author Karsten Dambekalns <karsten@typo3.org>
-        */
-       public function parseTypeThrowsExceptionOnInvalidElementTypeHint() {
-               Tx_Extbase_Utility_TypeHandling::parseType('string<integer>');
-       }
-
-       /**
-        * data provider for parseTypeReturnsArrayWithInformation
-        * @author Karsten Dambekalns <karsten@typo3.org>
-        */
-       public function types() {
-               return array(
-                       array('int', array('type' => 'integer', 'elementType' => NULL)),
-                       array('string', array('type' => 'string', 'elementType' => NULL)),
-                       array('DateTime', array('type' => 'DateTime', 'elementType' => NULL)),
-                       array('Tx_Extbase_Bar', array('type' => 'Tx_Extbase_Bar', 'elementType' => NULL)),
-                       array('Tx_Extbase_Bar', array('type' => 'Tx_Extbase_Bar', 'elementType' => NULL)),
-                       array('array<integer>', array('type' => 'array', 'elementType' => 'integer')),
-                       array('ArrayObject<string>', array('type' => 'ArrayObject', 'elementType' => 'string')),
-                       array('SplObjectStorage<Tx_Extbase_Bar>', array('type' => 'SplObjectStorage', 'elementType' => 'Tx_Extbase_Bar')),
-                       array('SplObjectStorage<Tx_Extbase_Bar>', array('type' => 'SplObjectStorage', 'elementType' => 'Tx_Extbase_Bar')),
-               );
-       }
-
-       /**
-        * @test
-        * @dataProvider types
-        * @author Karsten Dambekalns <karsten@typo3.org>
-        */
-       public function parseTypeReturnsArrayWithInformation($type, $expectedResult) {
-               $this->assertEquals(
-                       Tx_Extbase_Utility_TypeHandling::parseType($type),
-                       $expectedResult
-               );
-       }
-
-       /**
-        * data provider for normalizeTypesReturnsNormalizedType
-        * @author Karsten Dambekalns <karsten@typo3.org>
-        */
-       public function normalizeTypes() {
-               return array(
-                       array('int', 'integer'),
-                       array('double', 'float'),
-                       array('bool', 'boolean'),
-                       array('string', 'string')
-               );
-       }
-
-       /**
-        * @test
-        * @dataProvider normalizeTypes
-        * @author Karsten Dambekalns <karsten@typo3.org>
-        */
-       public function normalizeTypesReturnsNormalizedType($type, $normalized) {
-               $this->assertEquals(Tx_Extbase_Utility_TypeHandling::normalizeType($type), $normalized);
-       }
-}
-?>
\ No newline at end of file
index 8eee027..9aacec6 100755 (executable)
@@ -3,7 +3,7 @@
 ########################################################################
 # Extension Manager/Repository config file for ext "extbase".
 #
-# Auto generated 26-01-2011 09:19
+# Auto generated 19-09-2011 19:57
 #
 # Manual updates:
 # Only the data in the array - everything else is removed by next
@@ -29,11 +29,11 @@ $EM_CONF[$_EXTKEY] = array(
        'clearCacheOnLoad' => 1,
        'lockType' => '',
        'author_company' => '',
-       'version' => '1.4.0-beta1',
+       'version' => '1.4.0-beta3',
        'constraints' => array(
                'depends' => array(
                        'php' => '5.3.0-0.0.0',
-                       'typo3' => '4.5.0-0.0.0',
+                       'typo3' => '4.6.0-0.0.0',
                ),
                'conflicts' => array(
                ),
@@ -42,7 +42,7 @@ $EM_CONF[$_EXTKEY] = array(
        ),
        'suggests' => array(
        ),
-       '_md5_values_when_last_written' => 'a:299:{s:13:"ChangeLog.txt";s:4:"baf2";s:16:"ext_autoload.php";s:4:"a485";s:12:"ext_icon.gif";s:4:"e922";s:17:"ext_localconf.php";s:4:"50dd";s:14:"ext_tables.php";s:4:"491e";s:14:"ext_tables.sql";s:4:"0c2f";s:24:"ext_typoscript_setup.txt";s:4:"2bf7";s:22:"Classes/Dispatcher.php";s:4:"c031";s:21:"Classes/Exception.php";s:4:"c346";s:54:"Classes/Configuration/AbstractConfigurationManager.php";s:4:"c4ea";s:53:"Classes/Configuration/BackendConfigurationManager.php";s:4:"ba7c";s:46:"Classes/Configuration/ConfigurationManager.php";s:4:"31cb";s:55:"Classes/Configuration/ConfigurationManagerInterface.php";s:4:"7a2b";s:35:"Classes/Configuration/Exception.php";s:4:"31e6";s:54:"Classes/Configuration/FrontendConfigurationManager.php";s:4:"7a7b";s:53:"Classes/Configuration/Exception/ContainerIsLocked.php";s:4:"113a";s:60:"Classes/Configuration/Exception/InvalidConfigurationType.php";s:4:"9379";s:46:"Classes/Configuration/Exception/NoSuchFile.php";s:4:"75ce";s:48:"Classes/Configuration/Exception/NoSuchOption.php";s:4:"f616";s:46:"Classes/Configuration/Exception/ParseError.php";s:4:"b75a";s:26:"Classes/Core/Bootstrap.php";s:4:"5e7e";s:37:"Classes/Domain/Model/FrontendUser.php";s:4:"7bb3";s:42:"Classes/Domain/Model/FrontendUserGroup.php";s:4:"794d";s:57:"Classes/Domain/Repository/FrontendUserGroupRepository.php";s:4:"0197";s:52:"Classes/Domain/Repository/FrontendUserRepository.php";s:4:"ce1e";s:45:"Classes/DomainObject/AbstractDomainObject.php";s:4:"c4d7";s:39:"Classes/DomainObject/AbstractEntity.php";s:4:"4b00";s:44:"Classes/DomainObject/AbstractValueObject.php";s:4:"42f0";s:46:"Classes/DomainObject/DomainObjectInterface.php";s:4:"d689";s:23:"Classes/Error/Error.php";s:4:"4fa2";s:26:"Classes/MVC/Dispatcher.php";s:4:"fd5f";s:25:"Classes/MVC/Exception.php";s:4:"606f";s:23:"Classes/MVC/Request.php";s:4:"d652";s:39:"Classes/MVC/RequestHandlerInterface.php";s:4:"620c";s:38:"Classes/MVC/RequestHandlerResolver.php";s:4:"860e";s:32:"Classes/MVC/RequestInterface.php";s:4:"e830";s:24:"Classes/MVC/Response.php";s:4:"0069";s:33:"Classes/MVC/ResponseInterface.php";s:4:"0ab1";s:45:"Classes/MVC/Controller/AbstractController.php";s:4:"2130";s:43:"Classes/MVC/Controller/ActionController.php";s:4:"dcf2";s:35:"Classes/MVC/Controller/Argument.php";s:4:"56f6";s:40:"Classes/MVC/Controller/ArgumentError.php";s:4:"6c22";s:36:"Classes/MVC/Controller/Arguments.php";s:4:"cff5";s:45:"Classes/MVC/Controller/ArgumentsValidator.php";s:4:"ca84";s:44:"Classes/MVC/Controller/ControllerContext.php";s:4:"b24c";s:46:"Classes/MVC/Controller/ControllerInterface.php";s:4:"c450";s:40:"Classes/MVC/Controller/FlashMessages.php";s:4:"f28e";s:38:"Classes/MVC/Exception/InfiniteLoop.php";s:4:"5984";s:43:"Classes/MVC/Exception/InvalidActionName.php";s:4:"baec";s:45:"Classes/MVC/Exception/InvalidArgumentName.php";s:4:"55a6";s:45:"Classes/MVC/Exception/InvalidArgumentType.php";s:4:"0b9c";s:46:"Classes/MVC/Exception/InvalidArgumentValue.php";s:4:"a836";s:43:"Classes/MVC/Exception/InvalidController.php";s:4:"f0b0";s:47:"Classes/MVC/Exception/InvalidControllerName.php";s:4:"7b4c";s:46:"Classes/MVC/Exception/InvalidExtensionName.php";s:4:"865a";s:39:"Classes/MVC/Exception/InvalidMarker.php";s:4:"4a5e";s:48:"Classes/MVC/Exception/InvalidOrNoRequestHash.php";s:4:"beff";s:46:"Classes/MVC/Exception/InvalidRequestMethod.php";s:4:"508f";s:44:"Classes/MVC/Exception/InvalidRequestType.php";s:4:"def7";s:49:"Classes/MVC/Exception/InvalidTemplateResource.php";s:4:"bbb7";s:43:"Classes/MVC/Exception/InvalidUriPattern.php";s:4:"cee0";s:43:"Classes/MVC/Exception/InvalidViewHelper.php";s:4:"686d";s:38:"Classes/MVC/Exception/NoSuchAction.php";s:4:"1889";s:40:"Classes/MVC/Exception/NoSuchArgument.php";s:4:"1bec";s:42:"Classes/MVC/Exception/NoSuchController.php";s:4:"baa6";s:36:"Classes/MVC/Exception/StopAction.php";s:4:"7290";s:48:"Classes/MVC/Exception/UnsupportedRequestType.php";s:4:"27ce";s:33:"Classes/MVC/View/AbstractView.php";s:4:"3960";s:30:"Classes/MVC/View/EmptyView.php";s:4:"52f5";s:33:"Classes/MVC/View/NotFoundView.php";s:4:"5fe7";s:34:"Classes/MVC/View/ViewInterface.php";s:4:"dc07";s:42:"Classes/MVC/Web/AbstractRequestHandler.php";s:4:"a510";s:41:"Classes/MVC/Web/BackendRequestHandler.php";s:4:"31f7";s:42:"Classes/MVC/Web/FrontendRequestHandler.php";s:4:"33bd";s:27:"Classes/MVC/Web/Request.php";s:4:"93cc";s:34:"Classes/MVC/Web/RequestBuilder.php";s:4:"1d01";s:28:"Classes/MVC/Web/Response.php";s:4:"7156";s:38:"Classes/MVC/Web/Routing/UriBuilder.php";s:4:"9269";s:28:"Classes/Object/Exception.php";s:4:"2f66";s:26:"Classes/Object/Manager.php";s:4:"4026";s:32:"Classes/Object/ObjectManager.php";s:4:"c78d";s:41:"Classes/Object/ObjectManagerInterface.php";s:4:"9dd9";s:38:"Classes/Object/Container/ClassInfo.php";s:4:"3ddc";s:43:"Classes/Object/Container/ClassInfoCache.php";s:4:"f745";s:45:"Classes/Object/Container/ClassInfoFactory.php";s:4:"1355";s:38:"Classes/Object/Container/Container.php";s:4:"6fb5";s:69:"Classes/Object/Container/Exception/CannotInitializeCacheException.php";s:4:"4258";s:70:"Classes/Object/Container/Exception/TooManyRecursionLevelsException.php";s:4:"cd39";s:61:"Classes/Object/Container/Exception/UnknownObjectException.php";s:4:"d18e";s:46:"Classes/Object/Exception/CannotBuildObject.php";s:4:"8070";s:53:"Classes/Object/Exception/CannotReconstituteObject.php";s:4:"e8cc";s:41:"Classes/Object/Exception/InvalidClass.php";s:4:"d226";s:42:"Classes/Object/Exception/InvalidObject.php";s:4:"cc16";s:55:"Classes/Object/Exception/InvalidObjectConfiguration.php";s:4:"e82a";s:52:"Classes/Object/Exception/ObjectAlreadyRegistered.php";s:4:"eecb";s:41:"Classes/Object/Exception/UnknownClass.php";s:4:"d10a";s:45:"Classes/Object/Exception/UnknownInterface.php";s:4:"22a4";s:51:"Classes/Object/Exception/UnresolvedDependencies.php";s:4:"7d47";s:39:"Classes/Object/Exception/WrongScope.php";s:4:"cc92";s:31:"Classes/Persistence/Backend.php";s:4:"c8e0";s:40:"Classes/Persistence/BackendInterface.php";s:4:"88db";s:33:"Classes/Persistence/Exception.php";s:4:"1713";s:35:"Classes/Persistence/IdentityMap.php";s:4:"6b90";s:40:"Classes/Persistence/LazyLoadingProxy.php";s:4:"1928";s:41:"Classes/Persistence/LazyObjectStorage.php";s:4:"1cbd";s:48:"Classes/Persistence/LoadingStrategyInterface.php";s:4:"fa0d";s:31:"Classes/Persistence/Manager.php";s:4:"6e42";s:40:"Classes/Persistence/ManagerInterface.php";s:4:"17d8";s:49:"Classes/Persistence/ObjectMonitoringInterface.php";s:4:"6054";s:37:"Classes/Persistence/ObjectStorage.php";s:4:"5dd6";s:36:"Classes/Persistence/PropertyType.php";s:4:"f62a";s:29:"Classes/Persistence/Query.php";s:4:"203d";s:36:"Classes/Persistence/QueryFactory.php";s:4:"4ab8";s:45:"Classes/Persistence/QueryFactoryInterface.php";s:4:"900e";s:38:"Classes/Persistence/QueryInterface.php";s:4:"ebdb";s:35:"Classes/Persistence/QueryResult.php";s:4:"af68";s:44:"Classes/Persistence/QueryResultInterface.php";s:4:"843d";s:46:"Classes/Persistence/QuerySettingsInterface.php";s:4:"1e52";s:34:"Classes/Persistence/Repository.php";s:4:"8ee2";s:43:"Classes/Persistence/RepositoryInterface.php";s:4:"55e7";s:31:"Classes/Persistence/Session.php";s:4:"43b4";s:42:"Classes/Persistence/Typo3QuerySettings.php";s:4:"cd0d";s:56:"Classes/Persistence/Exception/CleanStateNotMemorized.php";s:4:"7689";s:51:"Classes/Persistence/Exception/IllegalObjectType.php";s:4:"73e7";s:46:"Classes/Persistence/Exception/InvalidClass.php";s:4:"761b";s:60:"Classes/Persistence/Exception/InvalidNumberOfConstraints.php";s:4:"3a38";s:53:"Classes/Persistence/Exception/InvalidPropertyType.php";s:4:"cd9a";s:48:"Classes/Persistence/Exception/MissingBackend.php";s:4:"1d0d";s:53:"Classes/Persistence/Exception/RepositoryException.php";s:4:"1aba";s:42:"Classes/Persistence/Exception/TooDirty.php";s:4:"3347";s:57:"Classes/Persistence/Exception/UnexpectedTypeException.php";s:4:"5b57";s:47:"Classes/Persistence/Exception/UnknownObject.php";s:4:"21a6";s:51:"Classes/Persistence/Exception/UnsupportedMethod.php";s:4:"9915";s:50:"Classes/Persistence/Exception/UnsupportedOrder.php";s:4:"f4b9";s:53:"Classes/Persistence/Exception/UnsupportedRelation.php";s:4:"6bc0";s:40:"Classes/Persistence/Mapper/ColumnMap.php";s:4:"fee9";s:38:"Classes/Persistence/Mapper/DataMap.php";s:4:"2b19";s:45:"Classes/Persistence/Mapper/DataMapFactory.php";s:4:"ab68";s:41:"Classes/Persistence/Mapper/DataMapper.php";s:4:"5358";s:40:"Classes/Persistence/QOM/AndInterface.php";s:4:"f72d";s:45:"Classes/Persistence/QOM/BindVariableValue.php";s:4:"454e";s:54:"Classes/Persistence/QOM/BindVariableValueInterface.php";s:4:"822e";s:38:"Classes/Persistence/QOM/Comparison.php";s:4:"74e7";s:47:"Classes/Persistence/QOM/ComparisonInterface.php";s:4:"f50a";s:38:"Classes/Persistence/QOM/Constraint.php";s:4:"6e7b";s:47:"Classes/Persistence/QOM/ConstraintInterface.php";s:4:"c106";s:42:"Classes/Persistence/QOM/DynamicOperand.php";s:4:"29d3";s:51:"Classes/Persistence/QOM/DynamicOperandInterface.php";s:4:"981b";s:45:"Classes/Persistence/QOM/EquiJoinCondition.php";s:4:"29b1";s:54:"Classes/Persistence/QOM/EquiJoinConditionInterface.php";s:4:"b9f5";s:32:"Classes/Persistence/QOM/Join.php";s:4:"d270";s:50:"Classes/Persistence/QOM/JoinConditionInterface.php";s:4:"63c8";s:41:"Classes/Persistence/QOM/JoinInterface.php";s:4:"c3a5";s:38:"Classes/Persistence/QOM/LogicalAnd.php";s:4:"4b22";s:38:"Classes/Persistence/QOM/LogicalNot.php";s:4:"aba3";s:37:"Classes/Persistence/QOM/LogicalOr.php";s:4:"3476";s:37:"Classes/Persistence/QOM/LowerCase.php";s:4:"15a8";s:46:"Classes/Persistence/QOM/LowerCaseInterface.php";s:4:"215c";s:40:"Classes/Persistence/QOM/NotInterface.php";s:4:"8d10";s:35:"Classes/Persistence/QOM/Operand.php";s:4:"a635";s:44:"Classes/Persistence/QOM/OperandInterface.php";s:4:"39ff";s:39:"Classes/Persistence/QOM/OrInterface.php";s:4:"b109";s:36:"Classes/Persistence/QOM/Ordering.php";s:4:"e7f4";s:45:"Classes/Persistence/QOM/OrderingInterface.php";s:4:"b9f9";s:41:"Classes/Persistence/QOM/PropertyValue.php";s:4:"96fb";s:50:"Classes/Persistence/QOM/PropertyValueInterface.php";s:4:"6526";s:62:"Classes/Persistence/QOM/QueryObjectModelConstantsInterface.php";s:4:"33bb";s:51:"Classes/Persistence/QOM/QueryObjectModelFactory.php";s:4:"e6fc";s:60:"Classes/Persistence/QOM/QueryObjectModelFactoryInterface.php";s:4:"3b53";s:36:"Classes/Persistence/QOM/Selector.php";s:4:"59cb";s:45:"Classes/Persistence/QOM/SelectorInterface.php";s:4:"e75c";s:43:"Classes/Persistence/QOM/SourceInterface.php";s:4:"a397";s:37:"Classes/Persistence/QOM/Statement.php";s:4:"c978";s:41:"Classes/Persistence/QOM/StaticOperand.php";s:4:"69f4";s:50:"Classes/Persistence/QOM/StaticOperandInterface.php";s:4:"4e9b";s:37:"Classes/Persistence/QOM/UpperCase.php";s:4:"6646";s:46:"Classes/Persistence/QOM/UpperCaseInterface.php";s:4:"ea6b";s:48:"Classes/Persistence/Storage/BackendInterface.php";s:4:"ad7b";s:46:"Classes/Persistence/Storage/Typo3DbBackend.php";s:4:"8e5f";s:55:"Classes/Persistence/Storage/Exception/BadConstraint.php";s:4:"3a87";s:50:"Classes/Persistence/Storage/Exception/SqlError.php";s:4:"850b";s:30:"Classes/Property/Exception.php";s:4:"8465";s:27:"Classes/Property/Mapper.php";s:4:"d709";s:35:"Classes/Property/MappingResults.php";s:4:"64c8";s:49:"Classes/Property/Exception/FormatNotSupported.php";s:4:"338e";s:46:"Classes/Property/Exception/InvalidDataType.php";s:4:"f280";s:44:"Classes/Property/Exception/InvalidFormat.php";s:4:"0bfa";s:46:"Classes/Property/Exception/InvalidProperty.php";s:4:"e6fb";s:44:"Classes/Property/Exception/InvalidSource.php";s:4:"ba13";s:44:"Classes/Property/Exception/InvalidTarget.php";s:4:"6cd9";s:38:"Classes/Reflection/ClassReflection.php";s:4:"913c";s:34:"Classes/Reflection/ClassSchema.php";s:4:"7ebc";s:39:"Classes/Reflection/DocCommentParser.php";s:4:"6357";s:32:"Classes/Reflection/Exception.php";s:4:"8625";s:39:"Classes/Reflection/MethodReflection.php";s:4:"26fc";s:35:"Classes/Reflection/ObjectAccess.php";s:4:"445e";s:42:"Classes/Reflection/ParameterReflection.php";s:4:"284d";s:41:"Classes/Reflection/PropertyReflection.php";s:4:"95b8";s:30:"Classes/Reflection/Service.php";s:4:"54c8";s:52:"Classes/Reflection/Exception/InvalidPropertyType.php";s:4:"02d6";s:63:"Classes/Reflection/Exception/PropertyNotAccessibleException.php";s:4:"0ddf";s:30:"Classes/Security/Exception.php";s:4:"2d15";s:47:"Classes/Security/Channel/RequestHashService.php";s:4:"afac";s:45:"Classes/Security/Cryptography/HashService.php";s:4:"e0aa";s:63:"Classes/Security/Exception/InvalidArgumentForHashGeneration.php";s:4:"856e";s:70:"Classes/Security/Exception/InvalidArgumentForRequestHashGeneration.php";s:4:"9f05";s:60:"Classes/Security/Exception/SyntacticallyWrongRequestHash.php";s:4:"89bd";s:26:"Classes/Utility/Arrays.php";s:4:"5dfd";s:25:"Classes/Utility/Cache.php";s:4:"b9ee";s:31:"Classes/Utility/ClassLoader.php";s:4:"16a4";s:44:"Classes/Utility/ExtbaseRequirementsCheck.php";s:4:"a352";s:29:"Classes/Utility/Extension.php";s:4:"fc27";s:37:"Classes/Utility/FrontendSimulator.php";s:4:"bd64";s:32:"Classes/Utility/Localization.php";s:4:"5c10";s:32:"Classes/Utility/TypeHandling.php";s:4:"d63e";s:30:"Classes/Utility/TypoScript.php";s:4:"c335";s:28:"Classes/Validation/Error.php";s:4:"247a";s:32:"Classes/Validation/Exception.php";s:4:"44f8";s:36:"Classes/Validation/PropertyError.php";s:4:"f0a7";s:40:"Classes/Validation/ValidatorResolver.php";s:4:"07a6";s:47:"Classes/Validation/Exception/InvalidSubject.php";s:4:"5040";s:63:"Classes/Validation/Exception/InvalidValidationConfiguration.php";s:4:"9cfa";s:57:"Classes/Validation/Exception/InvalidValidationOptions.php";s:4:"a3a8";s:48:"Classes/Validation/Exception/NoSuchValidator.php";s:4:"64f4";s:49:"Classes/Validation/Exception/NoValidatorFound.php";s:4:"be96";s:59:"Classes/Validation/Validator/AbstractCompositeValidator.php";s:4:"93b2";s:56:"Classes/Validation/Validator/AbstractObjectValidator.php";s:4:"fb77";s:50:"Classes/Validation/Validator/AbstractValidator.php";s:4:"c4ad";s:54:"Classes/Validation/Validator/AlphanumericValidator.php";s:4:"ae25";s:53:"Classes/Validation/Validator/ConjunctionValidator.php";s:4:"e2bc";s:50:"Classes/Validation/Validator/DateTimeValidator.php";s:4:"3716";s:53:"Classes/Validation/Validator/DisjunctionValidator.php";s:4:"95f8";s:54:"Classes/Validation/Validator/EmailAddressValidator.php";s:4:"e9de";s:47:"Classes/Validation/Validator/FloatValidator.php";s:4:"6e44";s:55:"Classes/Validation/Validator/GenericObjectValidator.php";s:4:"210d";s:49:"Classes/Validation/Validator/IntegerValidator.php";s:4:"f70f";s:50:"Classes/Validation/Validator/NotEmptyValidator.php";s:4:"92fa";s:53:"Classes/Validation/Validator/NumberRangeValidator.php";s:4:"33cb";s:48:"Classes/Validation/Validator/NumberValidator.php";s:4:"ab3d";s:57:"Classes/Validation/Validator/ObjectValidatorInterface.php";s:4:"aeea";s:45:"Classes/Validation/Validator/RawValidator.php";s:4:"2b76";s:59:"Classes/Validation/Validator/RegularExpressionValidator.php";s:4:"95aa";s:54:"Classes/Validation/Validator/StringLengthValidator.php";s:4:"6885";s:48:"Classes/Validation/Validator/StringValidator.php";s:4:"2231";s:46:"Classes/Validation/Validator/TextValidator.php";s:4:"d641";s:51:"Classes/Validation/Validator/ValidatorInterface.php";s:4:"1c82";s:24:"Documentation/README.txt";s:4:"35d4";s:43:"Resources/Private/Language/locallang_db.xml";s:4:"d03e";s:48:"Resources/Private/MVC/NotFoundView_Template.html";s:4:"d5a3";s:22:"Tests/BaseTestCase.php";s:4:"c7e5";s:30:"Tests/SeleniumBaseTestCase.php";s:4:"6769";s:27:"Tests/Unit/BaseTestCase.php";s:4:"c0ba";s:61:"Tests/Unit/Configuration/AbstractConfigurationManagerTest.php";s:4:"d475";s:60:"Tests/Unit/Configuration/BackendConfigurationManagerTest.php";s:4:"5d6c";s:61:"Tests/Unit/Configuration/FrontendConfigurationManagerTest.php";s:4:"6cdb";s:46:"Tests/Unit/DomainObject/AbstractEntityTest.php";s:4:"4539";s:30:"Tests/Unit/Fixtures/Entity.php";s:4:"09e9";s:33:"Tests/Unit/MVC/DispatcherTest.php";s:4:"17b7";s:52:"Tests/Unit/MVC/Controller/AbstractControllerTest.php";s:4:"5a51";s:50:"Tests/Unit/MVC/Controller/ActionControllerTest.php";s:4:"110f";s:42:"Tests/Unit/MVC/Controller/ArgumentTest.php";s:4:"4805";s:43:"Tests/Unit/MVC/Controller/ArgumentsTest.php";s:4:"f493";s:41:"Tests/Unit/MVC/Web/RequestBuilderTest.php";s:4:"a77a";s:34:"Tests/Unit/MVC/Web/RequestTest.php";s:4:"70cf";s:45:"Tests/Unit/MVC/Web/Routing/UriBuilderTest.php";s:4:"d8e5";s:52:"Tests/Unit/Object/Container/ClassInfoFactoryTest.php";s:4:"e450";s:45:"Tests/Unit/Object/Container/ContainerTest.php";s:4:"f62e";s:52:"Tests/Unit/Object/Container/Fixtures/Testclasses.php";s:4:"64ed";s:44:"Tests/Unit/Persistence/ObjectStorageTest.php";s:4:"f76b";s:42:"Tests/Unit/Persistence/QueryResultTest.php";s:4:"4681";s:36:"Tests/Unit/Persistence/QueryTest.php";s:4:"9df8";s:41:"Tests/Unit/Persistence/RepositoryTest.php";s:4:"1ca3";s:38:"Tests/Unit/Persistence/SessionTest.php";s:4:"908a";s:52:"Tests/Unit/Persistence/Mapper/DataMapFactoryTest.php";s:4:"1f05";s:53:"Tests/Unit/Persistence/Storage/Typo3DbBackendTest.php";s:4:"610a";s:42:"Tests/Unit/Reflection/ObjectAccessTest.php";s:4:"bbfc";s:37:"Tests/Unit/Reflection/ServiceTest.php";s:4:"135c";s:50:"Tests/Unit/Reflection/Fixture/ArrayAccessClass.php";s:4:"9afd";s:65:"Tests/Unit/Reflection/Fixture/DummyClassWithGettersAndSetters.php";s:4:"258b";s:54:"Tests/Unit/Security/Channel/RequestHashServiceTest.php";s:4:"a9be";s:52:"Tests/Unit/Security/Cryptography/HashServiceTest.php";s:4:"f27a";s:36:"Tests/Unit/Utility/ExtensionTest.php";s:4:"99d2";s:39:"Tests/Unit/Utility/LocalizationTest.php";s:4:"e9f4";s:37:"Tests/Unit/Utility/TypoScriptTest.php";s:4:"4237";s:47:"Tests/Unit/Validation/ValidatorResolverTest.php";s:4:"4548";s:61:"Tests/Unit/Validation/Validator/AlphanumericValidatorTest.php";s:4:"0223";s:60:"Tests/Unit/Validation/Validator/ConjunctionValidatorTest.php";s:4:"4e82";s:57:"Tests/Unit/Validation/Validator/DateTimeValidatorTest.php";s:4:"1fd6";s:61:"Tests/Unit/Validation/Validator/EmailAddressValidatorTest.php";s:4:"7961";s:54:"Tests/Unit/Validation/Validator/FloatValidatorTest.php";s:4:"4b61";s:62:"Tests/Unit/Validation/Validator/GenericObjectValidatorTest.php";s:4:"5743";s:56:"Tests/Unit/Validation/Validator/IntegerValidatorTest.php";s:4:"f9e9";s:57:"Tests/Unit/Validation/Validator/NotEmptyValidatorTest.php";s:4:"29d8";s:60:"Tests/Unit/Validation/Validator/NumberRangeValidatorTest.php";s:4:"0351";s:55:"Tests/Unit/Validation/Validator/NumberValidatorTest.php";s:4:"82bf";s:52:"Tests/Unit/Validation/Validator/RawValidatorTest.php";s:4:"03b1";s:66:"Tests/Unit/Validation/Validator/RegularExpressionValidatorTest.php";s:4:"18d0";s:61:"Tests/Unit/Validation/Validator/StringLengthValidatorTest.php";s:4:"4cf3";s:53:"Tests/Unit/Validation/Validator/TextValidatorTest.php";s:4:"eb32";}',
+       '_md5_values_when_last_written' => 'a:377:{s:13:"ChangeLog.txt";s:4:"bc0f";s:16:"ext_autoload.php";s:4:"f252";s:12:"ext_icon.gif";s:4:"e922";s:17:"ext_localconf.php";s:4:"844f";s:14:"ext_tables.php";s:4:"d8f7";s:14:"ext_tables.sql";s:4:"d078";s:24:"ext_typoscript_setup.txt";s:4:"5b79";s:22:"Classes/Dispatcher.php";s:4:"c031";s:21:"Classes/Exception.php";s:4:"c346";s:54:"Classes/Configuration/AbstractConfigurationManager.php";s:4:"acc4";s:53:"Classes/Configuration/BackendConfigurationManager.php";s:4:"ae5d";s:46:"Classes/Configuration/ConfigurationManager.php";s:4:"5774";s:55:"Classes/Configuration/ConfigurationManagerInterface.php";s:4:"b4d3";s:35:"Classes/Configuration/Exception.php";s:4:"31e6";s:54:"Classes/Configuration/FrontendConfigurationManager.php";s:4:"31f2";s:53:"Classes/Configuration/Exception/ContainerIsLocked.php";s:4:"113a";s:60:"Classes/Configuration/Exception/InvalidConfigurationType.php";s:4:"9379";s:46:"Classes/Configuration/Exception/NoSuchFile.php";s:4:"75ce";s:48:"Classes/Configuration/Exception/NoSuchOption.php";s:4:"f616";s:46:"Classes/Configuration/Exception/ParseError.php";s:4:"b75a";s:26:"Classes/Core/Bootstrap.php";s:4:"6df5";s:37:"Classes/Domain/Model/FrontendUser.php";s:4:"7bb3";s:42:"Classes/Domain/Model/FrontendUserGroup.php";s:4:"794d";s:57:"Classes/Domain/Repository/FrontendUserGroupRepository.php";s:4:"0197";s:52:"Classes/Domain/Repository/FrontendUserRepository.php";s:4:"ce1e";s:45:"Classes/DomainObject/AbstractDomainObject.php";s:4:"c4d7";s:39:"Classes/DomainObject/AbstractEntity.php";s:4:"4b00";s:44:"Classes/DomainObject/AbstractValueObject.php";s:4:"7342";s:46:"Classes/DomainObject/DomainObjectInterface.php";s:4:"d689";s:23:"Classes/Error/Error.php";s:4:"5d46";s:25:"Classes/Error/Message.php";s:4:"50cb";s:24:"Classes/Error/Notice.php";s:4:"87e0";s:24:"Classes/Error/Result.php";s:4:"b4b3";s:25:"Classes/Error/Warning.php";s:4:"35ca";s:26:"Classes/MVC/Dispatcher.php";s:4:"891c";s:25:"Classes/MVC/Exception.php";s:4:"606f";s:23:"Classes/MVC/Request.php";s:4:"58ef";s:39:"Classes/MVC/RequestHandlerInterface.php";s:4:"620c";s:38:"Classes/MVC/RequestHandlerResolver.php";s:4:"860e";s:32:"Classes/MVC/RequestInterface.php";s:4:"e830";s:24:"Classes/MVC/Response.php";s:4:"0069";s:33:"Classes/MVC/ResponseInterface.php";s:4:"0ab1";s:45:"Classes/MVC/Controller/AbstractController.php";s:4:"ce93";s:43:"Classes/MVC/Controller/ActionController.php";s:4:"7f42";s:35:"Classes/MVC/Controller/Argument.php";s:4:"e26f";s:40:"Classes/MVC/Controller/ArgumentError.php";s:4:"28c2";s:36:"Classes/MVC/Controller/Arguments.php";s:4:"eda9";s:45:"Classes/MVC/Controller/ArgumentsValidator.php";s:4:"5bd5";s:44:"Classes/MVC/Controller/ControllerContext.php";s:4:"42c7";s:46:"Classes/MVC/Controller/ControllerInterface.php";s:4:"c450";s:40:"Classes/MVC/Controller/FlashMessages.php";s:4:"f28e";s:58:"Classes/MVC/Controller/MvcPropertyMappingConfiguration.php";s:4:"b6bc";s:69:"Classes/MVC/Controller/Exception/RequiredArgumentMissingException.php";s:4:"8a5a";s:38:"Classes/MVC/Exception/InfiniteLoop.php";s:4:"5984";s:43:"Classes/MVC/Exception/InvalidActionName.php";s:4:"baec";s:45:"Classes/MVC/Exception/InvalidArgumentName.php";s:4:"55a6";s:45:"Classes/MVC/Exception/InvalidArgumentType.php";s:4:"0b9c";s:46:"Classes/MVC/Exception/InvalidArgumentValue.php";s:4:"a836";s:43:"Classes/MVC/Exception/InvalidController.php";s:4:"f0b0";s:47:"Classes/MVC/Exception/InvalidControllerName.php";s:4:"7b4c";s:46:"Classes/MVC/Exception/InvalidExtensionName.php";s:4:"865a";s:39:"Classes/MVC/Exception/InvalidMarker.php";s:4:"4a5e";s:48:"Classes/MVC/Exception/InvalidOrNoRequestHash.php";s:4:"beff";s:46:"Classes/MVC/Exception/InvalidRequestMethod.php";s:4:"508f";s:44:"Classes/MVC/Exception/InvalidRequestType.php";s:4:"def7";s:49:"Classes/MVC/Exception/InvalidTemplateResource.php";s:4:"bbb7";s:43:"Classes/MVC/Exception/InvalidUriPattern.php";s:4:"cee0";s:43:"Classes/MVC/Exception/InvalidViewHelper.php";s:4:"686d";s:38:"Classes/MVC/Exception/NoSuchAction.php";s:4:"1889";s:40:"Classes/MVC/Exception/NoSuchArgument.php";s:4:"1bec";s:42:"Classes/MVC/Exception/NoSuchController.php";s:4:"baa6";s:36:"Classes/MVC/Exception/StopAction.php";s:4:"d3aa";s:48:"Classes/MVC/Exception/UnsupportedRequestType.php";s:4:"27ce";s:33:"Classes/MVC/View/AbstractView.php";s:4:"3960";s:30:"Classes/MVC/View/EmptyView.php";s:4:"ec6a";s:33:"Classes/MVC/View/NotFoundView.php";s:4:"5fe7";s:34:"Classes/MVC/View/ViewInterface.php";s:4:"dc07";s:42:"Classes/MVC/Web/AbstractRequestHandler.php";s:4:"f39b";s:41:"Classes/MVC/Web/BackendRequestHandler.php";s:4:"31f7";s:42:"Classes/MVC/Web/FrontendRequestHandler.php";s:4:"33bd";s:27:"Classes/MVC/Web/Request.php";s:4:"d840";s:34:"Classes/MVC/Web/RequestBuilder.php";s:4:"d7e7";s:28:"Classes/MVC/Web/Response.php";s:4:"7156";s:38:"Classes/MVC/Web/Routing/UriBuilder.php";s:4:"fc1a";s:28:"Classes/Object/Exception.php";s:4:"2f66";s:26:"Classes/Object/Manager.php";s:4:"4026";s:32:"Classes/Object/ObjectManager.php";s:4:"f53d";s:41:"Classes/Object/ObjectManagerInterface.php";s:4:"f2dc";s:38:"Classes/Object/Container/ClassInfo.php";s:4:"a386";s:43:"Classes/Object/Container/ClassInfoCache.php";s:4:"052c";s:45:"Classes/Object/Container/ClassInfoFactory.php";s:4:"38ba";s:38:"Classes/Object/Container/Container.php";s:4:"a8ac";s:69:"Classes/Object/Container/Exception/CannotInitializeCacheException.php";s:4:"4258";s:70:"Classes/Object/Container/Exception/TooManyRecursionLevelsException.php";s:4:"cd39";s:61:"Classes/Object/Container/Exception/UnknownObjectException.php";s:4:"d18e";s:46:"Classes/Object/Exception/CannotBuildObject.php";s:4:"8070";s:53:"Classes/Object/Exception/CannotReconstituteObject.php";s:4:"e8cc";s:41:"Classes/Object/Exception/InvalidClass.php";s:4:"d226";s:42:"Classes/Object/Exception/InvalidObject.php";s:4:"cc16";s:55:"Classes/Object/Exception/InvalidObjectConfiguration.php";s:4:"e82a";s:52:"Classes/Object/Exception/ObjectAlreadyRegistered.php";s:4:"eecb";s:41:"Classes/Object/Exception/UnknownClass.php";s:4:"d10a";s:45:"Classes/Object/Exception/UnknownInterface.php";s:4:"22a4";s:51:"Classes/Object/Exception/UnresolvedDependencies.php";s:4:"7d47";s:39:"Classes/Object/Exception/WrongScope.php";s:4:"cc92";s:31:"Classes/Persistence/Backend.php";s:4:"e944";s:40:"Classes/Persistence/BackendInterface.php";s:4:"88db";s:33:"Classes/Persistence/Exception.php";s:4:"1713";s:35:"Classes/Persistence/IdentityMap.php";s:4:"0073";s:40:"Classes/Persistence/LazyLoadingProxy.php";s:4:"e868";s:41:"Classes/Persistence/LazyObjectStorage.php";s:4:"2cd9";s:48:"Classes/Persistence/LoadingStrategyInterface.php";s:4:"fa0d";s:31:"Classes/Persistence/Manager.php";s:4:"11ce";s:40:"Classes/Persistence/ManagerInterface.php";s:4:"bf22";s:49:"Classes/Persistence/ObjectMonitoringInterface.php";s:4:"6054";s:37:"Classes/Persistence/ObjectStorage.php";s:4:"c75e";s:36:"Classes/Persistence/PropertyType.php";s:4:"f62a";s:29:"Classes/Persistence/Query.php";s:4:"a20b";s:36:"Classes/Persistence/QueryFactory.php";s:4:"74fe";s:45:"Classes/Persistence/QueryFactoryInterface.php";s:4:"900e";s:38:"Classes/Persistence/QueryInterface.php";s:4:"4edc";s:35:"Classes/Persistence/QueryResult.php";s:4:"af68";s:44:"Classes/Persistence/QueryResultInterface.php";s:4:"843d";s:46:"Classes/Persistence/QuerySettingsInterface.php";s:4:"1e52";s:34:"Classes/Persistence/Repository.php";s:4:"4cbe";s:43:"Classes/Persistence/RepositoryInterface.php";s:4:"55e7";s:31:"Classes/Persistence/Session.php";s:4:"43b4";s:42:"Classes/Persistence/Typo3QuerySettings.php";s:4:"cd0d";s:56:"Classes/Persistence/Exception/CleanStateNotMemorized.php";s:4:"7689";s:51:"Classes/Persistence/Exception/IllegalObjectType.php";s:4:"73e7";s:46:"Classes/Persistence/Exception/InvalidClass.php";s:4:"761b";s:60:"Classes/Persistence/Exception/InvalidNumberOfConstraints.php";s:4:"3a38";s:53:"Classes/Persistence/Exception/InvalidPropertyType.php";s:4:"cd9a";s:48:"Classes/Persistence/Exception/MissingBackend.php";s:4:"1d0d";s:53:"Classes/Persistence/Exception/RepositoryException.php";s:4:"1aba";s:42:"Classes/Persistence/Exception/TooDirty.php";s:4:"3347";s:57:"Classes/Persistence/Exception/UnexpectedTypeException.php";s:4:"5b57";s:47:"Classes/Persistence/Exception/UnknownObject.php";s:4:"21a6";s:51:"Classes/Persistence/Exception/UnsupportedMethod.php";s:4:"9915";s:50:"Classes/Persistence/Exception/UnsupportedOrder.php";s:4:"f4b9";s:53:"Classes/Persistence/Exception/UnsupportedRelation.php";s:4:"6bc0";s:40:"Classes/Persistence/Mapper/ColumnMap.php";s:4:"fee9";s:38:"Classes/Persistence/Mapper/DataMap.php";s:4:"2b19";s:45:"Classes/Persistence/Mapper/DataMapFactory.php";s:4:"d600";s:41:"Classes/Persistence/Mapper/DataMapper.php";s:4:"a3c7";s:40:"Classes/Persistence/QOM/AndInterface.php";s:4:"f72d";s:45:"Classes/Persistence/QOM/BindVariableValue.php";s:4:"454e";s:54:"Classes/Persistence/QOM/BindVariableValueInterface.php";s:4:"822e";s:38:"Classes/Persistence/QOM/Comparison.php";s:4:"74e7";s:47:"Classes/Persistence/QOM/ComparisonInterface.php";s:4:"f50a";s:38:"Classes/Persistence/QOM/Constraint.php";s:4:"6e7b";s:47:"Classes/Persistence/QOM/ConstraintInterface.php";s:4:"c106";s:42:"Classes/Persistence/QOM/DynamicOperand.php";s:4:"29d3";s:51:"Classes/Persistence/QOM/DynamicOperandInterface.php";s:4:"981b";s:45:"Classes/Persistence/QOM/EquiJoinCondition.php";s:4:"29b1";s:54:"Classes/Persistence/QOM/EquiJoinConditionInterface.php";s:4:"b9f5";s:32:"Classes/Persistence/QOM/Join.php";s:4:"d270";s:50:"Classes/Persistence/QOM/JoinConditionInterface.php";s:4:"63c8";s:41:"Classes/Persistence/QOM/JoinInterface.php";s:4:"c3a5";s:38:"Classes/Persistence/QOM/LogicalAnd.php";s:4:"4b22";s:38:"Classes/Persistence/QOM/LogicalNot.php";s:4:"aba3";s:37:"Classes/Persistence/QOM/LogicalOr.php";s:4:"3476";s:37:"Classes/Persistence/QOM/LowerCase.php";s:4:"15a8";s:46:"Classes/Persistence/QOM/LowerCaseInterface.php";s:4:"215c";s:40:"Classes/Persistence/QOM/NotInterface.php";s:4:"8d10";s:35:"Classes/Persistence/QOM/Operand.php";s:4:"a635";s:44:"Classes/Persistence/QOM/OperandInterface.php";s:4:"39ff";s:39:"Classes/Persistence/QOM/OrInterface.php";s:4:"b109";s:36:"Classes/Persistence/QOM/Ordering.php";s:4:"e7f4";s:45:"Classes/Persistence/QOM/OrderingInterface.php";s:4:"b9f9";s:41:"Classes/Persistence/QOM/PropertyValue.php";s:4:"96fb";s:50:"Classes/Persistence/QOM/PropertyValueInterface.php";s:4:"6526";s:62:"Classes/Persistence/QOM/QueryObjectModelConstantsInterface.php";s:4:"33bb";s:51:"Classes/Persistence/QOM/QueryObjectModelFactory.php";s:4:"e6fc";s:60:"Classes/Persistence/QOM/QueryObjectModelFactoryInterface.php";s:4:"3b53";s:36:"Classes/Persistence/QOM/Selector.php";s:4:"59cb";s:45:"Classes/Persistence/QOM/SelectorInterface.php";s:4:"e75c";s:43:"Classes/Persistence/QOM/SourceInterface.php";s:4:"a397";s:37:"Classes/Persistence/QOM/Statement.php";s:4:"c978";s:41:"Classes/Persistence/QOM/StaticOperand.php";s:4:"69f4";s:50:"Classes/Persistence/QOM/StaticOperandInterface.php";s:4:"4e9b";s:37:"Classes/Persistence/QOM/UpperCase.php";s:4:"6646";s:46:"Classes/Persistence/QOM/UpperCaseInterface.php";s:4:"ea6b";s:48:"Classes/Persistence/Storage/BackendInterface.php";s:4:"ad7b";s:46:"Classes/Persistence/Storage/Typo3DbBackend.php";s:4:"ea9b";s:55:"Classes/Persistence/Storage/Exception/BadConstraint.php";s:4:"3a87";s:50:"Classes/Persistence/Storage/Exception/SqlError.php";s:4:"850b";s:30:"Classes/Property/Exception.php";s:4:"8465";s:27:"Classes/Property/Mapper.php";s:4:"4948";s:35:"Classes/Property/MappingResults.php";s:4:"8409";s:35:"Classes/Property/PropertyMapper.php";s:4:"bcf3";s:49:"Classes/Property/PropertyMappingConfiguration.php";s:4:"0d84";s:56:"Classes/Property/PropertyMappingConfigurationBuilder.php";s:4:"95e9";s:58:"Classes/Property/PropertyMappingConfigurationInterface.php";s:4:"7e48";s:43:"Classes/Property/TypeConverterInterface.php";s:4:"a78b";s:55:"Classes/Property/Exception/DuplicateObjectException.php";s:4:"34c9";s:62:"Classes/Property/Exception/DuplicateTypeConverterException.php";s:4:"a0d1";s:49:"Classes/Property/Exception/FormatNotSupported.php";s:4:"338e";s:58:"Classes/Property/Exception/FormatNotSupportedException.php";s:4:"d21d";s:46:"Classes/Property/Exception/InvalidDataType.php";s:4:"f280";s:55:"Classes/Property/Exception/InvalidDataTypeException.php";s:4:"60b7";s:44:"Classes/Property/Exception/InvalidFormat.php";s:4:"0bfa";s:53:"Classes/Property/Exception/InvalidFormatException.php";s:4:"0038";s:46:"Classes/Property/Exception/InvalidProperty.php";s:4:"e6fb";s:55:"Classes/Property/Exception/InvalidPropertyException.php";s:4:"6266";s:75:"Classes/Property/Exception/InvalidPropertyMappingConfigurationException.php";s:4:"3be5";s:44:"Classes/Property/Exception/InvalidSource.php";s:4:"ba13";s:53:"Classes/Property/Exception/InvalidSourceException.php";s:4:"a281";s:44:"Classes/Property/Exception/InvalidTarget.php";s:4:"6cd9";s:53:"Classes/Property/Exception/InvalidTargetException.php";s:4:"e666";s:54:"Classes/Property/Exception/TargetNotFoundException.php";s:4:"3a53";s:53:"Classes/Property/Exception/TypeConverterException.php";s:4:"9a90";s:56:"Classes/Property/TypeConverter/AbstractTypeConverter.php";s:4:"fbe4";s:49:"Classes/Property/TypeConverter/ArrayConverter.php";s:4:"9454";s:51:"Classes/Property/TypeConverter/BooleanConverter.php";s:4:"d59a";s:52:"Classes/Property/TypeConverter/DateTimeConverter.php";s:4:"eb93";s:49:"Classes/Property/TypeConverter/FloatConverter.php";s:4:"1c29";s:51:"Classes/Property/TypeConverter/IntegerConverter.php";s:4:"707d";s:57:"Classes/Property/TypeConverter/ObjectStorageConverter.php";s:4:"380e";s:60:"Classes/Property/TypeConverter/PersistentObjectConverter.php";s:4:"19f3";s:50:"Classes/Property/TypeConverter/StringConverter.php";s:4:"b8cd";s:38:"Classes/Reflection/ClassReflection.php";s:4:"913c";s:34:"Classes/Reflection/ClassSchema.php";s:4:"daf0";s:39:"Classes/Reflection/DocCommentParser.php";s:4:"6357";s:32:"Classes/Reflection/Exception.php";s:4:"8625";s:39:"Classes/Reflection/MethodReflection.php";s:4:"26fc";s:35:"Classes/Reflection/ObjectAccess.php";s:4:"0f60";s:42:"Classes/Reflection/ParameterReflection.php";s:4:"284d";s:41:"Classes/Reflection/PropertyReflection.php";s:4:"95b8";s:30:"Classes/Reflection/Service.php";s:4:"234e";s:52:"Classes/Reflection/Exception/InvalidPropertyType.php";s:4:"02d6";s:63:"Classes/Reflection/Exception/PropertyNotAccessibleException.php";s:4:"0ddf";s:45:"Classes/Reflection/Exception/UnknownClass.php";s:4:"6184";s:30:"Classes/Security/Exception.php";s:4:"2d15";s:47:"Classes/Security/Channel/RequestHashService.php";s:4:"2f08";s:45:"Classes/Security/Cryptography/HashService.php";s:4:"e0aa";s:63:"Classes/Security/Exception/InvalidArgumentForHashGeneration.php";s:4:"856e";s:70:"Classes/Security/Exception/InvalidArgumentForRequestHashGeneration.php";s:4:"9f05";s:60:"Classes/Security/Exception/SyntacticallyWrongRequestHash.php";s:4:"89bd";s:32:"Classes/Service/CacheService.php";s:4:"7ce9";s:36:"Classes/Service/ExtensionService.php";s:4:"5a1b";s:35:"Classes/Service/FlexFormService.php";s:4:"f4d1";s:39:"Classes/Service/TypeHandlingService.php";s:4:"159b";s:37:"Classes/Service/TypoScriptService.php";s:4:"c1b5";s:33:"Classes/SignalSlot/Dispatcher.php";s:4:"2a92";s:53:"Classes/SignalSlot/Exception/InvalidSlotException.php";s:4:"a348";s:26:"Classes/Utility/Arrays.php";s:4:"5dfd";s:25:"Classes/Utility/Cache.php";s:4:"c94b";s:31:"Classes/Utility/ClassLoader.php";s:4:"bab2";s:44:"Classes/Utility/ExtbaseRequirementsCheck.php";s:4:"c9f2";s:29:"Classes/Utility/Extension.php";s:4:"100a";s:37:"Classes/Utility/FrontendSimulator.php";s:4:"bd64";s:32:"Classes/Utility/Localization.php";s:4:"e07b";s:32:"Classes/Utility/TypeHandling.php";s:4:"1b2c";s:30:"Classes/Utility/TypoScript.php";s:4:"951b";s:28:"Classes/Validation/Error.php";s:4:"247a";s:32:"Classes/Validation/Exception.php";s:4:"44f8";s:36:"Classes/Validation/PropertyError.php";s:4:"e6e2";s:40:"Classes/Validation/ValidatorResolver.php";s:4:"aaf2";s:47:"Classes/Validation/Exception/InvalidSubject.php";s:4:"5040";s:63:"Classes/Validation/Exception/InvalidValidationConfiguration.php";s:4:"9cfa";s:57:"Classes/Validation/Exception/InvalidValidationOptions.php";s:4:"a3a8";s:48:"Classes/Validation/Exception/NoSuchValidator.php";s:4:"64f4";s:49:"Classes/Validation/Exception/NoValidatorFound.php";s:4:"be96";s:59:"Classes/Validation/Validator/AbstractCompositeValidator.php";s:4:"957a";s:56:"Classes/Validation/Validator/AbstractObjectValidator.php";s:4:"c43e";s:50:"Classes/Validation/Validator/AbstractValidator.php";s:4:"5c28";s:54:"Classes/Validation/Validator/AlphanumericValidator.php";s:4:"ae25";s:53:"Classes/Validation/Validator/ConjunctionValidator.php";s:4:"6cb0";s:50:"Classes/Validation/Validator/DateTimeValidator.php";s:4:"3716";s:53:"Classes/Validation/Validator/DisjunctionValidator.php";s:4:"52b0";s:54:"Classes/Validation/Validator/EmailAddressValidator.php";s:4:"04bb";s:47:"Classes/Validation/Validator/FloatValidator.php";s:4:"6e44";s:55:"Classes/Validation/Validator/GenericObjectValidator.php";s:4:"27be";s:49:"Classes/Validation/Validator/IntegerValidator.php";s:4:"f70f";s:50:"Classes/Validation/Validator/NotEmptyValidator.php";s:4:"92fa";s:53:"Classes/Validation/Validator/NumberRangeValidator.php";s:4:"086a";s:48:"Classes/Validation/Validator/NumberValidator.php";s:4:"ab3d";s:57:"Classes/Validation/Validator/ObjectValidatorInterface.php";s:4:"3e83";s:45:"Classes/Validation/Validator/RawValidator.php";s:4:"f7ed";s:59:"Classes/Validation/Validator/RegularExpressionValidator.php";s:4:"95aa";s:54:"Classes/Validation/Validator/StringLengthValidator.php";s:4:"6885";s:48:"Classes/Validation/Validator/StringValidator.php";s:4:"4102";s:46:"Classes/Validation/Validator/TextValidator.php";s:4:"d641";s:51:"Classes/Validation/Validator/ValidatorInterface.php";s:4:"3cf9";s:24:"Documentation/README.txt";s:4:"35d4";s:43:"Resources/Private/Language/locallang_db.xlf";s:4:"e48d";s:48:"Resources/Private/MVC/NotFoundView_Template.html";s:4:"d5a3";s:22:"Tests/BaseTestCase.php";s:4:"3ad3";s:30:"Tests/SeleniumBaseTestCase.php";s:4:"6769";s:27:"Tests/Unit/BaseTestCase.php";s:4:"9823";s:61:"Tests/Unit/Configuration/AbstractConfigurationManagerTest.php";s:4:"e977";s:60:"Tests/Unit/Configuration/BackendConfigurationManagerTest.php";s:4:"9c89";s:61:"Tests/Unit/Configuration/FrontendConfigurationManagerTest.php";s:4:"ca01";s:46:"Tests/Unit/DomainObject/AbstractEntityTest.php";s:4:"4539";s:30:"Tests/Unit/Error/ErrorTest.php";s:4:"6252";s:31:"Tests/Unit/Error/ResultTest.php";s:4:"31b4";s:40:"Tests/Unit/Fixtures/ClassWithSetters.php";s:4:"4a51";s:54:"Tests/Unit/Fixtures/ClassWithSettersAndConstructor.php";s:4:"414b";s:34:"Tests/Unit/Fixtures/DummyClass.php";s:4:"e122";s:30:"Tests/Unit/Fixtures/Entity.php";s:4:"09e9";s:40:"Tests/Unit/Fixtures/SecondDummyClass.php";s:4:"8758";s:33:"Tests/Unit/MVC/DispatcherTest.php";s:4:"843b";s:30:"Tests/Unit/MVC/RequestTest.php";s:4:"1e54";s:52:"Tests/Unit/MVC/Controller/AbstractControllerTest.php";s:4:"7cd2";s:50:"Tests/Unit/MVC/Controller/ActionControllerTest.php";s:4:"7417";s:65:"Tests/Unit/MVC/Controller/ArgumentBehaviorBeforeExtbase14Test.php";s:4:"014a";s:42:"Tests/Unit/MVC/Controller/ArgumentTest.php";s:4:"f226";s:43:"Tests/Unit/MVC/Controller/ArgumentsTest.php";s:4:"75e6";s:41:"Tests/Unit/MVC/Web/RequestBuilderTest.php";s:4:"88b2";s:34:"Tests/Unit/MVC/Web/RequestTest.php";s:4:"3ee0";s:45:"Tests/Unit/MVC/Web/Routing/UriBuilderTest.php";s:4:"8bbc";s:52:"Tests/Unit/Object/Container/ClassInfoFactoryTest.php";s:4:"e450";s:45:"Tests/Unit/Object/Container/ContainerTest.php";s:4:"f461";s:52:"Tests/Unit/Object/Container/Fixtures/Testclasses.php";s:4:"64ed";s:44:"Tests/Unit/Persistence/ObjectStorageTest.php";s:4:"f76b";s:42:"Tests/Unit/Persistence/QueryResultTest.php";s:4:"97e7";s:36:"Tests/Unit/Persistence/QueryTest.php";s:4:"7a11";s:41:"Tests/Unit/Persistence/RepositoryTest.php";s:4:"80c8";s:38:"Tests/Unit/Persistence/SessionTest.php";s:4:"908a";s:52:"Tests/Unit/Persistence/Mapper/DataMapFactoryTest.php";s:4:"db40";s:53:"Tests/Unit/Persistence/Storage/Typo3DbBackendTest.php";s:4:"610a";s:42:"Tests/Unit/Property/PropertyMapperTest.php";s:4:"9f7d";s:63:"Tests/Unit/Property/PropertyMappingConfigurationBuilderTest.php";s:4:"703b";s:56:"Tests/Unit/Property/PropertyMappingConfigurationTest.php";s:4:"c5bf";s:56:"Tests/Unit/Property/TypeConverter/ArrayConverterTest.php";s:4:"f268";s:58:"Tests/Unit/Property/TypeConverter/BooleanConverterTest.php";s:4:"978d";s:59:"Tests/Unit/Property/TypeConverter/DateTimeConverterTest.php";s:4:"92a7";s:56:"Tests/Unit/Property/TypeConverter/FloatConverterTest.php";s:4:"ff29";s:58:"Tests/Unit/Property/TypeConverter/IntegerConverterTest.php";s:4:"1445";s:67:"Tests/Unit/Property/TypeConverter/PersistentObjectConverterTest.php";s:4:"750d";s:57:"Tests/Unit/Property/TypeConverter/StringConverterTest.php";s:4:"81ef";s:42:"Tests/Unit/Reflection/ObjectAccessTest.php";s:4:"3289";s:37:"Tests/Unit/Reflection/ServiceTest.php";s:4:"135c";s:50:"Tests/Unit/Reflection/Fixture/ArrayAccessClass.php";s:4:"9afd";s:65:"Tests/Unit/Reflection/Fixture/DummyClassWithGettersAndSetters.php";s:4:"fa70";s:54:"Tests/Unit/Security/Channel/RequestHashServiceTest.php";s:4:"acdc";s:52:"Tests/Unit/Security/Cryptography/HashServiceTest.php";s:4:"f27a";s:39:"Tests/Unit/Service/CacheServiceTest.php";s:4:"1393";s:43:"Tests/Unit/Service/ExtensionServiceTest.php";s:4:"c68a";s:42:"Tests/Unit/Service/FlexFormServiceTest.php";s:4:"d52f";s:46:"Tests/Unit/Service/TypeHandlingServiceTest.php";s:4:"11d2";s:44:"Tests/Unit/Service/TypoScriptServiceTest.php";s:4:"b628";s:40:"Tests/Unit/SignalSlot/DispatcherTest.php";s:4:"91cf";s:36:"Tests/Unit/Utility/ExtensionTest.php";s:4:"9d90";s:39:"Tests/Unit/Utility/LocalizationTest.php";s:4:"079a";s:47:"Tests/Unit/Validation/ValidatorResolverTest.php";s:4:"e62d";s:61:"Tests/Unit/Validation/Validator/AbstractValidatorTestcase.php";s:4:"41be";s:61:"Tests/Unit/Validation/Validator/AlphanumericValidatorTest.php";s:4:"8aca";s:60:"Tests/Unit/Validation/Validator/ConjunctionValidatorTest.php";s:4:"3736";s:60:"Tests/Unit/Validation/Validator/DisjunctionValidatorTest.php";s:4:"a7db";s:61:"Tests/Unit/Validation/Validator/EmailAddressValidatorTest.php";s:4:"e50e";s:54:"Tests/Unit/Validation/Validator/FloatValidatorTest.php";s:4:"cd99";s:62:"Tests/Unit/Validation/Validator/GenericObjectValidatorTest.php";s:4:"2b31";s:56:"Tests/Unit/Validation/Validator/IntegerValidatorTest.php";s:4:"3c47";s:57:"Tests/Unit/Validation/Validator/NotEmptyValidatorTest.php";s:4:"fed6";s:60:"Tests/Unit/Validation/Validator/NumberRangeValidatorTest.php";s:4:"21f4";s:55:"Tests/Unit/Validation/Validator/NumberValidatorTest.php";s:4:"adb1";s:52:"Tests/Unit/Validation/Validator/RawValidatorTest.php";s:4:"db3e";s:66:"Tests/Unit/Validation/Validator/RegularExpressionValidatorTest.php";s:4:"5092";s:61:"Tests/Unit/Validation/Validator/StringLengthValidatorTest.php";s:4:"3c81";s:55:"Tests/Unit/Validation/Validator/StringValidatorTest.php";s:4:"5cf0";s:53:"Tests/Unit/Validation/Validator/TextValidatorTest.php";s:4:"5d6e";s:77:"Tests/Unit/Validation/Validator/BeforeExtbase14/AlphanumericValidatorTest.php";s:4:"8dbc";s:76:"Tests/Unit/Validation/Validator/BeforeExtbase14/ConjunctionValidatorTest.php";s:4:"893c";s:73:"Tests/Unit/Validation/Validator/BeforeExtbase14/DateTimeValidatorTest.php";s:4:"a627";s:77:"Tests/Unit/Validation/Validator/BeforeExtbase14/EmailAddressValidatorTest.php";s:4:"e2b7";s:70:"Tests/Unit/Validation/Validator/BeforeExtbase14/FloatValidatorTest.php";s:4:"d9a3";s:78:"Tests/Unit/Validation/Validator/BeforeExtbase14/GenericObjectValidatorTest.php";s:4:"af4e";s:72:"Tests/Unit/Validation/Validator/BeforeExtbase14/IntegerValidatorTest.php";s:4:"a0c5";s:73:"Tests/Unit/Validation/Validator/BeforeExtbase14/NotEmptyValidatorTest.php";s:4:"6db5";s:76:"Tests/Unit/Validation/Validator/BeforeExtbase14/NumberRangeValidatorTest.php";s:4:"7eac";s:71:"Tests/Unit/Validation/Validator/BeforeExtbase14/NumberValidatorTest.php";s:4:"96f9";s:68:"Tests/Unit/Validation/Validator/BeforeExtbase14/RawValidatorTest.php";s:4:"a66b";s:82:"Tests/Unit/Validation/Validator/BeforeExtbase14/RegularExpressionValidatorTest.php";s:4:"74fd";s:77:"Tests/Unit/Validation/Validator/BeforeExtbase14/StringLengthValidatorTest.php";s:4:"ab58";s:69:"Tests/Unit/Validation/Validator/BeforeExtbase14/TextValidatorTest.php";s:4:"a246";}',
 );
 
 ?>
\ No newline at end of file
index 6853d81..5454a06 100644 (file)
@@ -12,6 +12,7 @@ config.tx_extbase {
                        Tx_Extbase_MVC_Web_FrontendRequestHandler = Tx_Extbase_MVC_Web_FrontendRequestHandler
                        Tx_Extbase_MVC_Web_BackendRequestHandler = Tx_Extbase_MVC_Web_BackendRequestHandler
                }
+               throwPageNotFoundExceptionIfActionCantBeResolved = 0
        }
        persistence{
                enableAutomaticCacheClearing = 1
@@ -37,5 +38,8 @@ config.tx_extbase {
                        }
                }
        }
-       features.rewrittenPropertyMapper = 1
+       features {
+               rewrittenPropertyMapper = 1
+               skipDefaultArguments = 0
+       }
 }
\ No newline at end of file