[BUGFIX] Ensure new @import syntax is loaded properly 90/58090/4
authorBenni Mack <benni@typo3.org>
Thu, 30 Aug 2018 13:52:44 +0000 (15:52 +0200)
committerWouter Wolters <typo3@wouterwolters.nl>
Thu, 30 Aug 2018 17:03:04 +0000 (19:03 +0200)
The new @import TypoScript syntax only works
if there is an empty line before, so this should
be added - to be exactly in line with the <INCLUDE_TYPOSCRIPT>
syntax.

Resolves: #85867
Releases: master
Change-Id: I20fd9ba12b19baedfe4e4522811dfaebb51773fa
Reviewed-on: https://review.typo3.org/58090
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
typo3/sysext/core/Classes/TypoScript/Parser/TypoScriptParser.php
typo3/sysext/core/Tests/Unit/TypoScript/Parser/TypoScriptParserTest.php

index 96f364d..6c980bd 100644 (file)
@@ -1017,7 +1017,7 @@ class TypoScriptParser
         foreach ($finder as $fileObject) {
             // Clean filename output for comments
             $readableFileName = rtrim($readableFilePrefix, '/') . '/' . $fileObject->getFilename();
-            $content .= '### @import \'' . $readableFileName . '\' begin ###' . LF;
+            $content .= LF . '### @import \'' . $readableFileName . '\' begin ###' . LF;
             // Check for allowed files
             if (!GeneralUtility::verifyFilenameAgainstDenyPattern($fileObject->getFilename())) {
                 $content .= self::typoscriptIncludeError('File "' . $readableFileName . '" was not included since it is not allowed due to fileDenyPattern.');
@@ -1033,7 +1033,7 @@ class TypoScriptParser
                 }
                 $content .= $included_text . LF;
             }
-            $content .= '### @import \'' . $readableFileName . '\' end ###' . LF;
+            $content .= '### @import \'' . $readableFileName . '\' end ###' . LF . LF;
 
             // load default TypoScript for content rendering templates like
             // fluid_styled_content if those have been included through e.g.
index 72e5c35..c500003 100644 (file)
@@ -468,6 +468,17 @@ class TypoScriptParserTest extends UnitTestCase
     public function importFilesDataProvider(): array
     {
         return [
+            'Found include file as single file is imported' => [
+                // Input TypoScript
+                '@import "EXT:core/Tests/Unit/TypoScript/Fixtures/ext_typoscript_setup.txt"'
+                ,
+                // Expected
+                '
+### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/ext_typoscript_setup.txt\' begin ###
+test.Core.TypoScript = 1
+### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/ext_typoscript_setup.txt\' end ###
+'
+            ],
             'Found include file is imported' => [
                 // Input TypoScript
                 'bennilove = before
@@ -477,6 +488,7 @@ class TypoScriptParserTest extends UnitTestCase
                 // Expected
                 '
 bennilove = before
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/ext_typoscript_setup.txt\' begin ###
 test.Core.TypoScript = 1
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/ext_typoscript_setup.txt\' end ###
@@ -506,6 +518,7 @@ bennilove = before
                 // Expected
                 '
 bennilove = before
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/ext_typoscript_setup.txt\' begin ###
 test.Core.TypoScript = 1
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/ext_typoscript_setup.txt\' end ###
@@ -520,6 +533,7 @@ test.Core.TypoScript = 1
                 // Expected
                 '
 bennilove = before
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' begin ###
 test.TYPO3Forever.TypoScript = 1
 
@@ -535,6 +549,7 @@ test.TYPO3Forever.TypoScript = 1
                 // Expected
                 '
 bennilove = before
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/badfilename.php\' begin ###
 
 ###
@@ -542,9 +557,13 @@ bennilove = before
 ###
 
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/badfilename.php\' end ###
+
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/ext_typoscript_setup.txt\' begin ###
 test.Core.TypoScript = 1
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/ext_typoscript_setup.txt\' end ###
+
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/recursive_includes_setup.typoscript\' begin ###
 
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' begin ###
@@ -553,6 +572,8 @@ test.TYPO3Forever.TypoScript = 1
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' end ###
 
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/recursive_includes_setup.typoscript\' end ###
+
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' begin ###
 test.TYPO3Forever.TypoScript = 1
 
@@ -568,6 +589,7 @@ test.TYPO3Forever.TypoScript = 1
                 // Expected
                 '
 bennilove = before
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/recursive_includes_setup.typoscript\' begin ###
 
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' begin ###
@@ -576,6 +598,8 @@ test.TYPO3Forever.TypoScript = 1
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' end ###
 
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/recursive_includes_setup.typoscript\' end ###
+
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' begin ###
 test.TYPO3Forever.TypoScript = 1
 
@@ -591,6 +615,7 @@ test.TYPO3Forever.TypoScript = 1
                 // Expected
                 '
 bennilove = before
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/recursive_includes_setup.typoscript\' begin ###
 
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' begin ###
@@ -599,6 +624,8 @@ test.TYPO3Forever.TypoScript = 1
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' end ###
 
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/recursive_includes_setup.typoscript\' end ###
+
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' begin ###
 test.TYPO3Forever.TypoScript = 1
 
@@ -629,6 +656,7 @@ bennilove = before
                 // Expected
                 '
 bennilove = before
+
 ### @import \'EXT:core/Tests/Unit/TypoScript/Fixtures/setup.typoscript\' begin ###
 test.TYPO3Forever.TypoScript = 1