2 namespace TYPO3\CMS\Extensionmanager\Tests\Unit\Utility;
47 $this->extensionKey =
'dummy';
48 $this->extensionData = array(
49 'key' => $this->extensionKey
51 $this->installMock = $this->getAccessibleMock(
52 \TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class,
57 'processDatabaseUpdates',
58 'processRuntimeDatabaseUpdates',
60 'processCachingFrameworkUpdates',
61 'saveDefaultConfiguration',
63 'enrichExtensionWithDetails',
64 'ensureConfiguredDirectoriesExist',
66 'emitAfterExtensionInstallSignal'
72 $dependencyUtility = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::class);
73 $this->installMock->_set(
'dependencyUtility', $dependencyUtility);
74 $this->installMock->expects($this->any())
75 ->method(
'getExtensionArray')
76 ->with($this->extensionKey)
77 ->will($this->returnCallback(array($this,
'getExtensionData')));
78 $this->installMock->expects($this->any())
79 ->method(
'enrichExtensionWithDetails')
80 ->with($this->extensionKey)
81 ->will($this->returnCallback(array($this,
'getExtensionData')));
97 foreach ($this->fakedExtensions as $fakeExtkey => $fakeExtension) {
98 $this->testFilesToDelete[] = PATH_site .
'typo3temp/' . $fakeExtkey;
111 $extKey = strtolower($this->getUniqueId(
'testing'));
112 $absExtPath = PATH_site .
'typo3temp/' . $extKey;
113 $relPath =
'typo3temp/' . $extKey .
'/';
114 \TYPO3\CMS\Core\Utility\GeneralUtility::mkdir($absExtPath);
115 $this->fakedExtensions[$extKey] = array(
116 'siteRelPath' => $relPath
126 $this->installMock->expects($this->once())
127 ->method(
'processRuntimeDatabaseUpdates')
128 ->with($this->extensionKey);
130 $cacheManagerMock = $this->getMock(\TYPO3\CMS\Core\Cache\CacheManager::class);
131 $cacheManagerMock->expects($this->once())->method(
'flushCachesInGroup');
132 $this->installMock->_set(
'cacheManager', $cacheManagerMock);
133 $this->installMock->install($this->extensionKey);
141 $cacheManagerMock = $this->getMock(\TYPO3\CMS\Core\Cache\CacheManager::class);
142 $cacheManagerMock->expects($this->once())->method(
'flushCachesInGroup');
143 $this->installMock->_set(
'cacheManager', $cacheManagerMock);
144 $this->installMock->expects($this->once())->method(
'loadExtension');
145 $this->installMock->install($this->extensionKey);
153 $this->extensionData[
'clearcacheonload'] =
true;
154 $cacheManagerMock = $this->getMock(\TYPO3\CMS\Core\Cache\CacheManager::class);
155 $cacheManagerMock->expects($this->once())->method(
'flushCaches');
156 $this->installMock->_set(
'cacheManager', $cacheManagerMock);
157 $this->installMock->install($this->extensionKey);
165 $this->extensionData[
'clearCacheOnLoad'] =
true;
166 $cacheManagerMock = $this->getMock(\TYPO3\CMS\Core\Cache\CacheManager::class);
167 $cacheManagerMock->expects($this->once())->method(
'flushCaches');
168 $this->installMock->_set(
'cacheManager', $cacheManagerMock);
169 $this->installMock->install($this->extensionKey);
177 $cacheManagerMock = $this->getMock(\TYPO3\CMS\Core\Cache\CacheManager::class);
178 $cacheManagerMock->expects($this->once())->method(
'flushCachesInGroup');
179 $this->installMock->_set(
'cacheManager', $cacheManagerMock);
180 $this->installMock->expects($this->once())->method(
'ensureConfiguredDirectoriesExist');
181 $this->installMock->install($this->extensionKey);
189 $cacheManagerMock = $this->getMock(\TYPO3\CMS\Core\Cache\CacheManager::class);
190 $cacheManagerMock->expects($this->once())->method(
'flushCachesInGroup');
191 $this->installMock->_set(
'cacheManager', $cacheManagerMock);
192 $this->installMock->expects($this->once())->method(
'reloadCaches');
193 $this->installMock->install(
'dummy');
201 $cacheManagerMock = $this->getMock(\TYPO3\CMS\Core\Cache\CacheManager::class);
202 $cacheManagerMock->expects($this->once())->method(
'flushCachesInGroup');
203 $this->installMock->_set(
'cacheManager', $cacheManagerMock);
204 $this->installMock->expects($this->once())->method(
'saveDefaultConfiguration')->with(
'dummy');
205 $this->installMock->install(
'dummy');
213 $this->installMock->expects($this->once())->method(
'unloadExtension');
214 $this->installMock->uninstall($this->extensionKey);
223 $extPath = PATH_site .
'typo3temp/' . $extKey .
'/';
224 $extTablesFile = $extPath .
'ext_tables.sql';
225 $fileContent =
'DUMMY TEXT TO COMPARE';
226 file_put_contents($extTablesFile, $fileContent);
228 \TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class,
229 array(
'updateDbWithExtTablesSql',
'importStaticSqlFile',
'importT3DFile'),
234 $dependencyUtility = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::class);
235 $installMock->_set(
'dependencyUtility', $dependencyUtility);
237 $installMock->expects($this->once())->method(
'updateDbWithExtTablesSql')->with($this->stringStartsWith($fileContent));
238 $installMock->processDatabaseUpdates($this->fakedExtensions[$extKey]);
247 $extRelPath =
'typo3temp/' . $extKey .
'/';
249 \TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class,
250 array(
'importStaticSqlFile',
'updateDbWithExtTablesSql',
'importT3DFile'),
255 $dependencyUtility = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::class);
256 $installMock->_set(
'dependencyUtility', $dependencyUtility);
257 $installMock->expects($this->once())->method(
'importStaticSqlFile')->with($extRelPath);
258 $installMock->processDatabaseUpdates($this->fakedExtensions[$extKey]);
284 $absPath = PATH_site . $this->fakedExtensions[$extKey][
'siteRelPath'];
285 \TYPO3\CMS\Core\Utility\GeneralUtility::mkdir($absPath .
'/Initialisation');
286 file_put_contents($absPath .
'/Initialisation/' . $fileName,
'DUMMY');
288 \TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class,
289 array(
'updateDbWithExtTablesSql',
'importStaticSqlFile',
'importT3DFile'),
294 $dependencyUtility = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::class);
295 $installMock->_set(
'dependencyUtility', $dependencyUtility);
296 $installMock->expects($this->once())->method(
'importT3DFile')->with($this->fakedExtensions[$extKey][
'siteRelPath']);
297 $installMock->processDatabaseUpdates($this->fakedExtensions[$extKey]);
306 'Import T3D file when T3D was imported before extension to XML' => array(
311 'Import T3D file when a file was imported after extension to XML' => array(
316 'Import XML file when T3D was imported before extension to XML' => array(
321 'Import XML file when a file was imported after extension to XML' => array(
340 $absPath = PATH_site . $this->fakedExtensions[$extKey][
'siteRelPath'];
341 \TYPO3\CMS\Core\Utility\GeneralUtility::mkdir($absPath .
'Initialisation');
342 file_put_contents($absPath .
'Initialisation/' . $fileName,
'DUMMY');
343 $registryMock = $this->getMock(\TYPO3\CMS\Core\Registry::class, array(
'get',
'set'));
345 ->expects($this->any())
347 ->will($this->returnValueMap(
349 array(
'extensionDataImport', $this->fakedExtensions[$extKey][
'siteRelPath'] .
'Initialisation/' . $registryNameReturnsFalse, null,
false),
350 array(
'extensionDataImport', $this->fakedExtensions[$extKey][
'siteRelPath'] .
'Initialisation/' . $registryNameReturnsTrue, null,
true),
354 \TYPO3\CMS\Extensionmanager\Utility\InstallUtility::class,
355 array(
'getRegistry',
'getImportExportUtility'),
360 $dependencyUtility = $this->getMock(\TYPO3\CMS\Extensionmanager\Utility\DependencyUtility::class);
361 $installMock->_set(
'dependencyUtility', $dependencyUtility);
363 $installMock->expects($this->never())->method(
'getImportExportUtility');
364 $installMock->_call(
'importT3DFile', $this->fakedExtensions[$extKey][
'siteRelPath']);