38 'getDefaultConfigurationFileLocation',
39 'getLocalConfigurationFileLocation',
48 foreach ($this->testFilesToDelete as $absoluteFileName) {
58 $this->fixture = $this->getMock(
59 'TYPO3\\CMS\\Core\\Configuration\\ConfigurationManager',
69 $defaultConfigurationFile = PATH_site .
'typo3temp/' . $this->
getUniqueId(
'defaultConfiguration');
71 $defaultConfigurationFile,
72 '<?php throw new \RuntimeException(\'foo\', 1310203814); ?>' 74 $this->testFilesToDelete[] = $defaultConfigurationFile;
77 ->expects($this->once())
78 ->method(
'getDefaultConfigurationFileLocation')
79 ->will($this->returnValue($defaultConfigurationFile));
80 $this->fixture->getDefaultConfiguration();
88 $configurationFile = PATH_site .
'typo3temp/' . $this->
getUniqueId(
'localConfiguration');
91 '<?php throw new \RuntimeException(\'foo\', 1310203815); ?>' 93 $this->testFilesToDelete[] = $configurationFile;
96 ->expects($this->once())
97 ->method(
'getLocalConfigurationFileLocation')
98 ->will($this->returnValue($configurationFile));
99 $this->fixture->getLocalConfiguration();
106 $currentLocalConfiguration = array(
108 'changed' =>
'unChanged',
110 $overrideConfiguration = array(
111 'changed' =>
'changed',
114 $expectedConfiguration = array(
116 'changed' =>
'changed',
122 'getLocalConfiguration',
123 'writeLocalConfiguration',
126 $this->fixture->expects($this->once())
127 ->method(
'getLocalConfiguration')
128 ->will($this->returnValue($currentLocalConfiguration));
129 $this->fixture->expects($this->once())
130 ->method(
'writeLocalConfiguration')
131 ->with($expectedConfiguration);
133 $this->fixture->updateLocalConfiguration($overrideConfiguration);
142 'getDefaultConfiguration',
145 $this->fixture->expects($this->once())
146 ->method(
'getDefaultConfiguration')
147 ->will($this->returnValue(array(
152 $this->assertSame(
'value', $this->fixture->getDefaultConfigurationValueByPath(
'path'));
161 'getLocalConfiguration',
164 $this->fixture->expects($this->once())
165 ->method(
'getLocalConfiguration')
166 ->will($this->returnValue(array(
171 $this->assertSame(
'value', $this->fixture->getLocalConfigurationValueByPath(
'path'));
180 'getDefaultConfiguration',
181 'getLocalConfiguration',
184 $this->fixture->expects($this->once())
185 ->method(
'getDefaultConfiguration')
186 ->will($this->returnValue(array(
190 $this->fixture->expects($this->once())
191 ->method(
'getLocalConfiguration')
192 ->will($this->returnValue(array(
193 'path' =>
'valueOverride',
197 $this->assertSame(
'valueOverride', $this->fixture->getConfigurationValueByPath(
'path'));
205 'isValidLocalConfigurationPath',
207 $this->fixture->expects($this->once())
208 ->method(
'isValidLocalConfigurationPath')
209 ->will($this->returnValue(FALSE));
211 $this->assertFalse($this->fixture->setLocalConfigurationValueByPath(
'path',
'value'));
218 $currentLocalConfiguration = array(
220 'toUpdate' =>
'notUpdated',
222 $expectedConfiguration = array(
224 'toUpdate' =>
'updated',
229 'isValidLocalConfigurationPath',
230 'getLocalConfiguration',
231 'writeLocalConfiguration',
234 $this->fixture->expects($this->once())
235 ->method(
'isValidLocalConfigurationPath')
236 ->will($this->returnValue(TRUE));
237 $this->fixture->expects($this->once())
238 ->method(
'getLocalConfiguration')
239 ->will($this->returnValue($currentLocalConfiguration));
240 $this->fixture->expects($this->once())
241 ->method(
'writeLocalConfiguration')
242 ->with($expectedConfiguration);
244 $this->fixture->setLocalConfigurationValueByPath(
'toUpdate',
'updated');
251 $currentLocalConfiguration = array(
253 'toUpdate' =>
'notUpdated',
255 $expectedConfiguration = array(
257 'toUpdate' =>
'updated',
263 'isValidLocalConfigurationPath',
264 'getLocalConfiguration',
265 'writeLocalConfiguration',
268 $this->fixture->expects($this->any())
269 ->method(
'isValidLocalConfigurationPath')
270 ->will($this->returnValue(TRUE));
271 $this->fixture->expects($this->once())
272 ->method(
'getLocalConfiguration')
273 ->will($this->returnValue($currentLocalConfiguration));
274 $this->fixture->expects($this->once())
275 ->method(
'writeLocalConfiguration')
276 ->with($expectedConfiguration);
279 'toUpdate' =>
'updated',
282 $this->fixture->setLocalConfigurationValuesByPathValuePairs(
$pairs);
289 $currentLocalConfiguration = array(
290 'toRemove1' =>
'foo',
292 'toRemove2' =>
'bar',
294 $expectedConfiguration = array(
300 'getLocalConfiguration',
301 'writeLocalConfiguration',
304 $this->fixture->expects($this->once())
305 ->method(
'getLocalConfiguration')
306 ->will($this->returnValue($currentLocalConfiguration));
307 $this->fixture->expects($this->once())
308 ->method(
'writeLocalConfiguration')
309 ->with($expectedConfiguration);
311 $removePaths = array(
315 $this->assertTrue($this->fixture->removeLocalConfigurationKeysByPath($removePaths));
322 $currentLocalConfiguration = array(
327 'getLocalConfiguration',
328 'writeLocalConfiguration',
331 $this->fixture->expects($this->once())
332 ->method(
'getLocalConfiguration')
333 ->will($this->returnValue($currentLocalConfiguration));
334 $this->fixture->expects($this->never())
335 ->method(
'writeLocalConfiguration');
337 $removeNothing = array();
338 $this->assertFalse($this->fixture->removeLocalConfigurationKeysByPath($removeNothing));
345 $currentLocalConfiguration = array(
350 'getLocalConfiguration',
351 'writeLocalConfiguration',
354 $this->fixture->expects($this->once())
355 ->method(
'getLocalConfiguration')
356 ->will($this->returnValue($currentLocalConfiguration));
357 $this->fixture->expects($this->never())
358 ->method(
'writeLocalConfiguration');
360 $removeNonExisting = array(
'notPresent');
361 $this->assertFalse($this->fixture->removeLocalConfigurationKeysByPath($removeNonExisting));
367 public function canWriteConfigurationReturnsFalseIfDirectoryIsNotWritable() {
368 if (function_exists(
'posix_getegid') && posix_getegid() === 0) {
369 $this->markTestSkipped(
'Test skipped if run on linux as root');
370 } elseif (TYPO3_OS ==
'WIN') {
371 $this->markTestSkipped(
'Not available on Windows');
376 $directory =
'typo3temp/' . $this->
getUniqueId(
'test_');
377 $absoluteDirectory = PATH_site . $directory;
378 mkdir($absoluteDirectory);
379 chmod($absoluteDirectory, 0544);
382 $fixture->_set(
'pathTypo3Conf', $directory);
386 chmod($absoluteDirectory, 0755);
387 rmdir($absoluteDirectory);
395 public function canWriteConfigurationReturnsFalseIfLocalConfigurationFileIsNotWritable() {
396 if (function_exists(
'posix_getegid') && posix_getegid() === 0) {
397 $this->markTestSkipped(
'Test skipped if run on linux as root');
398 } elseif (TYPO3_OS ==
'WIN') {
399 $this->markTestSkipped(
'Not available on Windows');
404 $file =
'typo3temp/' . $this->
getUniqueId(
'test_');
405 $absoluteFile = PATH_site . $file;
406 touch($absoluteFile);
407 $this->testFilesToDelete[] = $absoluteFile;
408 chmod($absoluteFile, 0444);
411 $fixture->_set(
'localConfigurationFile', $file);
415 chmod($absoluteFile, 0644);
423 public function canWriteConfigurationReturnsTrueIfDirectoryAndFilesAreWritable() {
427 $directory =
'typo3temp/' . $this->
getUniqueId(
'test_');
428 $absoluteDirectory = PATH_site . $directory;
429 mkdir($absoluteDirectory);
430 $fixture->_set(
'pathTypo3Conf', $absoluteDirectory);
432 $file1 =
'typo3temp/' . $this->
getUniqueId(
'test_');
433 $absoluteFile1 = PATH_site . $file1;
434 touch($absoluteFile1);
435 $this->testFilesToDelete[] = $absoluteFile1;
436 $fixture->_set(
'localConfigurationFile', $absoluteFile1);
438 $file2 =
'typo3temp/' . $this->
getUniqueId(
'test_');
439 $absoluteFile2 = PATH_site . $file2;
440 touch($absoluteFile2);
441 $this->testFilesToDelete[] = $absoluteFile2;
442 $fixture->_set(
'localconfFile', $absoluteFile2);
455 $configurationFile = PATH_site .
'typo3temp/' . $this->
getUniqueId(
'localConfiguration');
456 if (!is_file($configurationFile)) {
457 if (!$fh = fopen($configurationFile,
'wb')) {
458 $this->markTestSkipped(
'Can not create file ' . $configurationFile .
'. Please check your write permissions.');
463 if (!@is_file($configurationFile)) {
464 throw new \RuntimeException(
'File ' . $configurationFile .
' could not be found. Please check your write permissions', 1346364362);
466 $this->testFilesToDelete[] = $configurationFile;
469 ->expects($this->any())
470 ->method(
'getLocalConfigurationFileLocation')
471 ->will($this->returnValue($configurationFile));
479 'return array(' . LF .
480 TAB .
'\'bar\
' => 23,' . LF .
481 TAB .
'\'foo\
' => 42,' . LF .
485 $this->fixture->writeLocalConfiguration(
$pairs);
486 $this->assertSame($expectedContent, file_get_contents($configurationFile));
493 public function createLocalConfigurationFromFactoryConfigurationThrowsExceptionIfFileExists() {
497 $file =
'typo3temp/' . $this->
getUniqueId(
'test_');
498 $absoluteFile = PATH_site . $file;
499 touch($absoluteFile);
500 $this->testFilesToDelete[] = $absoluteFile;
501 $fixture->_set(
'localConfigurationFile', $file);
503 $fixture->createLocalConfigurationFromFactoryConfiguration();
509 public function createLocalConfigurationFromFactoryConfigurationWritesContentFromFactoryFile() {
511 $fixture = $this->
getAccessibleMock(
'TYPO3\\CMS\\Core\\Configuration\\ConfigurationManager', array(
'writeLocalConfiguration'));
514 $factoryConfigurationFile =
'typo3temp/' . $this->
getUniqueId(
'test_') .
'.php';
515 $factoryConfigurationAbsoluteFile = PATH_site . $factoryConfigurationFile;
516 $uniqueContentString = $this->
getUniqueId(
'string_');
517 $validFactoryConfigurationFileContent =
519 'return array(' . LF .
520 $uniqueContentString .
' => foo,' . LF .
524 $factoryConfigurationAbsoluteFile,
525 $validFactoryConfigurationFileContent
527 $this->testFilesToDelete[] = $factoryConfigurationAbsoluteFile;
529 $fixture->_set(
'factoryConfigurationFile', $factoryConfigurationFile);
532 ->expects($this->once())
533 ->method(
'writeLocalConfiguration')
534 ->with($this->arrayHasKey($uniqueContentString));
535 $fixture->createLocalConfigurationFromFactoryConfiguration();
541 public function createLocalConfigurationFromFactoryConfigurationMergesConfigurationWithAdditionalFactoryFile() {
543 $fixture = $this->
getAccessibleMock(
'TYPO3\\CMS\\Core\\Configuration\\ConfigurationManager', array(
'writeLocalConfiguration'));
546 $factoryConfigurationFile =
'typo3temp/' . $this->
getUniqueId(
'test_') .
'.php';
547 $factoryConfigurationAbsoluteFile = PATH_site . $factoryConfigurationFile;
548 $validFactoryConfigurationFileContent =
550 'return array();' . LF .
553 $factoryConfigurationAbsoluteFile,
554 $validFactoryConfigurationFileContent
556 $this->testFilesToDelete[] = $factoryConfigurationAbsoluteFile;
557 $fixture->_set(
'factoryConfigurationFile', $factoryConfigurationFile);
559 $additionalFactoryConfigurationFile =
'typo3temp/' . $this->
getUniqueId(
'test_') .
'.php';
560 $additionalFactoryConfigurationAbsoluteFile = PATH_site . $additionalFactoryConfigurationFile;
561 $uniqueContentString = $this->
getUniqueId(
'string_');
562 $validAdditionalFactoryConfigurationFileContent =
564 'return array(' . LF .
565 $uniqueContentString .
' => foo,' . LF .
569 $additionalFactoryConfigurationAbsoluteFile,
570 $validAdditionalFactoryConfigurationFileContent
572 $this->testFilesToDelete[] = $additionalFactoryConfigurationAbsoluteFile;
573 $fixture->_set(
'additionalFactoryConfigurationFile', $additionalFactoryConfigurationFile);
576 ->expects($this->once())
577 ->method(
'writeLocalConfiguration')
578 ->with($this->arrayHasKey($uniqueContentString));
579 $fixture->createLocalConfigurationFromFactoryConfiguration();
585 public function isValidLocalConfigurationPathAcceptsWhitelistedPath() {
588 $fixture->_set(
'whiteListedLocalConfigurationPaths', array(
'foo/bar'));
589 $this->assertTrue(
$fixture->_call(
'isValidLocalConfigurationPath',
'foo/bar/baz'));
595 public function isValidLocalConfigurationPathDeniesNotWhitelistedPath() {
598 $fixture->_set(
'whiteListedLocalConfigurationPaths', array(
'foo/bar'));
599 $this->assertFalse(
$fixture->_call(
'isValidLocalConfigurationPath',
'bar/baz'));
static unlink_tempfile($uploadedTempFileName)
setLocalConfigurationValueByPathReturnFalseIfPathIsNotValid()
if(preg_match($regexp, $sql)) $pairs
Remove pairs of single-quotes.
removeLocalConfigurationKeysByPathReturnsFalseIfNothingIsRemoved()
removeLocalConfigurationKeysByPathRemovesGivenPathsFromConfigurationAndReturnsTrue()
setLocalConfigurationValueByPathUpdatesValueDefinedByPath()
getAccessibleMock( $originalClassName, array $methods=array(), array $arguments=array(), $mockClassName='', $callOriginalConstructor=TRUE, $callOriginalClone=TRUE, $callAutoload=TRUE)
if($list_of_literals) if(!empty($literals)) if(!empty($literals)) $result
Analyse literals to prepend the N char to them if their contents aren't numeric.
setLocalConfigurationValuesByPathValuePairsSetsPathValuePairs()
getLocalConfigurationValueByPathReturnsCorrectValue()
removeLocalConfigurationKeysByPathReturnsFalseIfSomethingInexistentIsRemoved()
createFixtureWithMockedMethods(array $methods)
getDefaultConfigurationValueByPathReturnsCorrectValue()
getConfigurationValueByPathReturnsCorrectValue()
writeLocalConfigurationWritesSortedContentToConfigurationFile()
updateLocalConfigurationWritesNewMergedLocalConfigurationArray()
getDefaultConfigurationExecutesDefinedDefaultConfigurationFile()
getLocalConfigurationExecutesDefinedConfigurationFile()