[TASK] Use environment variable for functional test bootstrap 71/27771/3
authorHelmut Hummel <helmut.hummel@typo3.org>
Fri, 21 Feb 2014 12:32:03 +0000 (13:32 +0100)
committerHelmut Hummel <helmut.hummel@typo3.org>
Fri, 21 Feb 2014 14:24:02 +0000 (15:24 +0100)
Make it possible to determine the original root path
of the installation by setting an environment variable
just like in unit test bootstrap.

Releases: 6.2
Resolves: #56182
Change-Id: I42af5d4db20a23eb5d1ce90fc87b6df818a11e88
Reviewed-on: https://review.typo3.org/27771
Reviewed-by: Helmut Hummel
Tested-by: Helmut Hummel
typo3/sysext/core/Build/FunctionalTestsBootstrap.php
typo3/sysext/core/Build/UnitTestsBootstrap.php

index c496e30..b5d9e11 100644 (file)
@@ -43,8 +43,26 @@ require_once(__DIR__ . '/../Tests/Exception.php');
  * be way more complicated if done within the test class.
  *
  * It is required that phpunit binary is called from the document root of the instance,
- * otherwise path calculation of the created TYPO3 CMS instance will fail.
+ * or TYPO3_PATH_WEB environement variable needs to be set,
+ * otherwise path calculation, of the created TYPO3 CMS instance will fail.
  */
+if (getenv('TYPO3_PATH_WEB')) {
+       $webRoot = getenv('TYPO3_PATH_WEB') . '/';
+} elseif (isset($_SERVER['PWD'])) {
+       $webRoot = $_SERVER['PWD'] . '/';
+} else {
+       $webRoot = getcwd() . '/';
+}
+
+/**
+ * Fail if configuration is not found
+ */
+if (!file_exists($webRoot . 'typo3conf/LocalConfiguration.php')) {
+       throw new \Exception('TYPO3 web root not found. Call PHPUnit from that directory or set TYPO3_PATH_WEB to it.');
+}
+
 if (!defined('ORIGINAL_ROOT')) {
-       define('ORIGINAL_ROOT', $_SERVER['PWD'] . '/');
+       define('ORIGINAL_ROOT', $webRoot);
 }
+
+unset($webRoot);
\ No newline at end of file
index 6d1d574..9ffd6fb 100644 (file)
@@ -82,6 +82,8 @@ define('PATH_site', $webRoot);
 define('TYPO3_MODE', 'BE');
 define('TYPO3_cliMode', TRUE);
 
+unset($webRoot);
+
 /**
  * We need to fake the current script to be the cli dispatcher to satisfy some GeneralUtility::getIndpEnv tests
  * TODO: properly mock these tests