Skip to content

Commit

Permalink
[BUGFIX] Not include defer files to concatenateJs
Browse files Browse the repository at this point in the history
Deferred files should not be concatenated. They are now
output as a single script.

Resolves: #90208
Releases: master, 9.5
Change-Id: I17c84b41acd445db6ee261bade69fddd32ca7380
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63779
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Susanne Moog <look@susi.dev>
Reviewed-by: Susanne Moog <look@susi.dev>
  • Loading branch information
brandung-gs authored and susannemoog committed Mar 20, 2020
1 parent 9f65bd8 commit 4ae42a7
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
2 changes: 1 addition & 1 deletion typo3/sysext/core/Classes/Resource/ResourceCompressor.php
Expand Up @@ -175,7 +175,7 @@ public function concatenateJsFiles(array $jsFiles)
$filesToInclude = [];
foreach ($jsFiles as $key => $fileOptions) {
// invalid section found or no concatenation allowed, so continue
if (empty($fileOptions['section']) || !empty($fileOptions['excludeFromConcatenation'])) {
if (empty($fileOptions['section']) || !empty($fileOptions['excludeFromConcatenation']) || !empty($fileOptions['defer'])) {
continue;
}
if (!isset($filesToInclude[$fileOptions['section']])) {
Expand Down
21 changes: 21 additions & 0 deletions typo3/sysext/core/Tests/Unit/Resource/ResourceCompressorTest.php
Expand Up @@ -685,4 +685,25 @@ public function getFilenamesFromMainDirInBackendContextWithSubFolder(string $fil
$relativeToRootPath = $subject->_call('getFilenameFromMainDir', $filename);
self::assertSame($expected, $relativeToRootPath);
}

/**
* @test
*/
public function deferJavascriptIsNotConcatenated(): void
{
$fileName = 'fooFile.js';
$concatenatedFileName = 'merged_' . $fileName;
$testFileFixture = [
$fileName => [
'file' => $fileName,
'defer' => true,
'section' => 'top',
]
];

$result = $this->subject->concatenateJsFiles($testFileFixture);

self::assertArrayNotHasKey($concatenatedFileName, $result);
self::assertTrue($result[$fileName]['defer']);
}
}

0 comments on commit 4ae42a7

Please sign in to comment.