aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorFrank Karlitschek <karlitschek@gmx.de>2015-09-12 22:04:41 +0200
committerFrank Karlitschek <karlitschek@gmx.de>2015-09-12 22:04:41 +0200
commit7562e4959b4726939d78720d26fdbe713c8f5c53 (patch)
tree999024c93f28183409283d51018a3a79b43efa43 /tests
parent9860a79441b8e3595450e53b6209f314c7537775 (diff)
parentc3a327dc385c617bc2daf0b5a51aacfaea2abde1 (diff)
downloadnextcloud-server-7562e4959b4726939d78720d26fdbe713c8f5c53.tar.gz
nextcloud-server-7562e4959b4726939d78720d26fdbe713c8f5c53.zip
Merge pull request #18658 from owncloud/configurable-temp
Configurable temporary directory
Diffstat (limited to 'tests')
-rw-r--r--tests/lib/tempmanager.php36
1 files changed, 32 insertions, 4 deletions
diff --git a/tests/lib/tempmanager.php b/tests/lib/tempmanager.php
index 0fa025d44c8..8faf804a203 100644
--- a/tests/lib/tempmanager.php
+++ b/tests/lib/tempmanager.php
@@ -22,12 +22,13 @@ class NullLogger extends Log {
}
class TempManager extends \Test\TestCase {
- protected $baseDir;
+
+ protected $baseDir = null;
protected function setUp() {
parent::setUp();
- $this->baseDir = get_temp_dir() . $this->getUniqueID('/oc_tmp_test');
+ $this->baseDir = $this->getManager()->getTempBaseDir() . $this->getUniqueID('/oc_tmp_test');
if (!is_dir($this->baseDir)) {
mkdir($this->baseDir);
}
@@ -35,18 +36,30 @@ class TempManager extends \Test\TestCase {
protected function tearDown() {
\OC_Helper::rmdirr($this->baseDir);
+ $this->baseDir = null;
parent::tearDown();
}
/**
* @param \OCP\ILogger $logger
+ * @param \OCP\IConfig $config
* @return \OC\TempManager
*/
- protected function getManager($logger = null) {
+ protected function getManager($logger = null, $config = null) {
if (!$logger) {
$logger = new NullLogger();
}
- return new \OC\TempManager($this->baseDir, $logger);
+ if (!$config) {
+ $config = $this->getMock('\OCP\IConfig');
+ $config->method('getSystemValue')
+ ->with('tempdirectory', null)
+ ->willReturn('/tmp');
+ }
+ $manager = new \OC\TempManager($logger, $config);
+ if ($this->baseDir) {
+ $manager->overrideTempBaseDir($this->baseDir);
+ }
+ return $manager;
}
public function testGetFile() {
@@ -185,4 +198,19 @@ class TempManager extends \Test\TestCase {
$this->assertStringEndsNotWith('./Traversal\\../FileName', $tmpManager);
$this->assertStringEndsWith('.Traversal..FileName', $tmpManager);
}
+
+ public function testGetTempBaseDirFromConfig() {
+ $dir = $this->getManager()->getTemporaryFolder();
+
+ $config = $this->getMock('\OCP\IConfig');
+ $config->expects($this->once())
+ ->method('getSystemValue')
+ ->with('tempdirectory', null)
+ ->willReturn($dir);
+
+ $this->baseDir = null; // prevent override
+ $tmpManager = $this->getManager(null, $config);
+
+ $this->assertEquals($dir, $tmpManager->getTempBaseDir());
+ }
}