diff options
author | Frank Karlitschek <karlitschek@gmx.de> | 2015-09-12 22:04:41 +0200 |
---|---|---|
committer | Frank Karlitschek <karlitschek@gmx.de> | 2015-09-12 22:04:41 +0200 |
commit | 7562e4959b4726939d78720d26fdbe713c8f5c53 (patch) | |
tree | 999024c93f28183409283d51018a3a79b43efa43 /tests | |
parent | 9860a79441b8e3595450e53b6209f314c7537775 (diff) | |
parent | c3a327dc385c617bc2daf0b5a51aacfaea2abde1 (diff) | |
download | nextcloud-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.php | 36 |
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()); + } } |