‪TYPO3CMS  11.5
ResourceCompressorIntegrationTest.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
23 
28 {
32  protected ‪$backupEnvironment = true;
33 
35  protected ?string ‪$fixtureDir;
36  protected ?string ‪$fixtureDirFromTest;
37 
38  public function ‪setUp(): void
39  {
40  parent::setUp();
41  $this->fixtureDir = 'sysext/core/Tests/Unit/Resource/ResourceCompressorTest/Fixtures/';
42  $this->fixtureDirFromTest = GeneralUtility::fixWindowsFilePath(__DIR__ . '/ResourceCompressorTest/Fixtures/');
43  }
44 
45  public function ‪tearDown(): void
46  {
47  $this->testFilesToDelete[] = ‪Environment::getPublicPath() . '/' . $this->resourceCompressor->getTargetDirectory();
48  parent::tearDown();
49  }
50 
54  public function ‪constructorCreatesTargetDirectory(): void
55  {
56  $this->resourceCompressor = new ‪TestableResourceCompressor();
57  ‪$dir = ‪Environment::getPublicPath() . '/' . $this->resourceCompressor->getTargetDirectory();
58  self::assertFileExists(‪$dir);
59  }
60 
64  public function ‪constructorCreatesHtaccessFileIfSet(): void
65  {
66  ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['generateApacheHtaccess'] = true;
67  $this->resourceCompressor = new TestableResourceCompressor();
68  $htaccessPath = ‪Environment::getPublicPath() . '/' . $this->resourceCompressor->getTargetDirectory() . '.htaccess';
69  self::assertStringEqualsFile($htaccessPath, $this->resourceCompressor->getHtaccessTemplate());
70  }
71 
76  {
77  ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['generateApacheHtaccess'] = false;
78  $this->resourceCompressor = new TestableResourceCompressor();
79  $htaccessPath = ‪Environment::getPublicPath() . '/' . $this->resourceCompressor->getTargetDirectory() . '.htaccess';
80  self::assertFileDoesNotExist($htaccessPath);
81  }
82 
86  public function ‪concatenateCssFiles(): void
87  {
88  $files = [
89  'sampleFile1' => [
90  'excludeFromConcatenation' => false,
91  'file' => $this->fixtureDir . 'css_input_with_import.css',
92  'media' => 'screen',
93  'forceOnTop' => false,
94  ],
95  ];
96  $this->resourceCompressor = new TestableResourceCompressor();
97  $concatFiles = $this->resourceCompressor->concatenateCssFiles($files);
98  $mergedFile = array_pop($concatFiles);
99  $expected = file_get_contents(
100  $this->fixtureDirFromTest . 'expected' . DIRECTORY_SEPARATOR . 'merged-css_input_with_import.css'
101  );
102  self::assertStringEqualsFile(GeneralUtility::fixWindowsFilePath(‪Environment::getPublicPath() . '/' . $mergedFile['file']), $expected);
103  }
108  {
111  true,
112  false,
117  ‪Environment::getBackendPath() . '/index.php',
118  ‪Environment::isWindows() ? 'WINDOWS' : 'UNIX'
119  );
120  $testFile = ‪Environment::getPublicPath() . '/typo3temp/var/transient/css_input_with_import.css';
121  $this->testFilesToDelete[] = $testFile;
122  copy(‪Environment::getBackendPath() . '/' . $this->fixtureDir . 'css_input_with_import.css', $testFile);
123  $files = [
124  'sampleFile1' => [
125  'excludeFromConcatenation' => false,
126  'file' => 'typo3temp/var/transient/css_input_with_import.css',
127  'media' => 'screen',
128  'forceOnTop' => false,
129  ],
130  ];
131  $this->resourceCompressor = new TestableResourceCompressor();
132  $concatFiles = $this->resourceCompressor->concatenateCssFiles($files);
133  $mergedFile = array_pop($concatFiles);
134  $expected = file_get_contents(
135  $this->fixtureDirFromTest . 'expected' . DIRECTORY_SEPARATOR . 'merged-css_input_with_import_non_root.css'
136  );
137  self::assertStringEqualsFile(GeneralUtility::fixWindowsFilePath(‪Environment::getPublicPath() . '/' . $mergedFile['file']), $expected);
138  }
139 }
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\$fixtureDir
‪string $fixtureDir
Definition: ResourceCompressorIntegrationTest.php:34
‪TYPO3\CMS\Core\Core\Environment\getPublicPath
‪static string getPublicPath()
Definition: Environment.php:206
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\tearDown
‪tearDown()
Definition: ResourceCompressorIntegrationTest.php:44
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\$fixtureDirFromTest
‪string $fixtureDirFromTest
Definition: ResourceCompressorIntegrationTest.php:35
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest
Definition: ResourceCompressorIntegrationTest.php:28
‪TYPO3\CMS\Core\Tests\Unit\Resource
Definition: AbstractFileTest.php:18
‪TYPO3\CMS\Core\Tests\Unit\Resource\BaseTestCase
Definition: BaseTestCase.php:31
‪TYPO3\CMS\Core\Core\Environment\isWindows
‪static bool isWindows()
Definition: Environment.php:318
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\concatenateCssFiles
‪concatenateCssFiles()
Definition: ResourceCompressorIntegrationTest.php:85
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\setUp
‪setUp()
Definition: ResourceCompressorIntegrationTest.php:37
‪$dir
‪$dir
Definition: validateRstFiles.php:213
‪TYPO3\CMS\Core\Core\Environment\getContext
‪static ApplicationContext getContext()
Definition: Environment.php:141
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\constructorCreatesHtaccessFileIfSet
‪constructorCreatesHtaccessFileIfSet()
Definition: ResourceCompressorIntegrationTest.php:63
‪TYPO3\CMS\Core\Core\Environment\getProjectPath
‪static string getProjectPath()
Definition: Environment.php:177
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\$resourceCompressor
‪TestableResourceCompressor $resourceCompressor
Definition: ResourceCompressorIntegrationTest.php:33
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\constructorDoesNotCreateHtaccessFileIfSetToFalse
‪constructorDoesNotCreateHtaccessFileIfSetToFalse()
Definition: ResourceCompressorIntegrationTest.php:74
‪TYPO3\CMS\Core\Core\Environment\initialize
‪static initialize(ApplicationContext $context, bool $cli, bool $composerMode, string $projectPath, string $publicPath, string $varPath, string $configPath, string $currentScript, string $os)
Definition: Environment.php:111
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorTest\Fixtures\TestableResourceCompressor
Definition: TestableResourceCompressor.php:23
‪TYPO3\CMS\Core\Core\Environment\getBackendPath
‪static string getBackendPath()
Definition: Environment.php:276
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\constructorCreatesTargetDirectory
‪constructorCreatesTargetDirectory()
Definition: ResourceCompressorIntegrationTest.php:53
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\concatenateCssFilesWorksWithFileFromNonRootPath
‪concatenateCssFilesWorksWithFileFromNonRootPath()
Definition: ResourceCompressorIntegrationTest.php:106
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Core\Environment
Definition: Environment.php:43
‪TYPO3\CMS\Core\Core\Environment\getConfigPath
‪static string getConfigPath()
Definition: Environment.php:236
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Core\Tests\Unit\Resource\ResourceCompressorIntegrationTest\$backupEnvironment
‪bool $backupEnvironment
Definition: ResourceCompressorIntegrationTest.php:31
‪TYPO3\CMS\Core\Core\Environment\getVarPath
‪static string getVarPath()
Definition: Environment.php:218