diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-02-25 06:41:57 -0800 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-02-25 06:41:57 -0800 |
commit | 14c592fe865748f38dd6ee31634d053f83a8e791 (patch) | |
tree | b0fdf0c981e81e62e9a0fa57bf8366ae16ad94a4 /tests | |
parent | 695f43a1edd757a79281d62a8696fa2cd02e8548 (diff) | |
parent | a848a6b1dd59b124318e1a754a1d51e3189949aa (diff) | |
download | nextcloud-server-14c592fe865748f38dd6ee31634d053f83a8e791.tar.gz nextcloud-server-14c592fe865748f38dd6ee31634d053f83a8e791.zip |
Merge pull request #14500 from owncloud/fileglobalgc-cleanup
Cleanup garbage collection for global file cache
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/cache/fileglobalgc.php | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/lib/cache/fileglobalgc.php b/tests/lib/cache/fileglobalgc.php new file mode 100644 index 00000000000..0b0a4cb002d --- /dev/null +++ b/tests/lib/cache/fileglobalgc.php @@ -0,0 +1,73 @@ +<?php +/** + * ownCloud + * + * @author Robin Appelman + * @copyright 2012 Robin Appelman icewind@owncloud.com + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Cache; + +use Test\TestCase; + +class FileGlobalGC extends TestCase { + /** + * @var string + */ + private $cacheDir; + + /** + * @var \OC\Cache\FileGlobalGC + */ + private $gc; + + public function setUp() { + $this->cacheDir = \OC::$server->getTempManager()->getTemporaryFolder(); + $this->gc = new \OC\Cache\FileGlobalGC(); + } + + private function addCacheFile($name, $expire) { + file_put_contents($this->cacheDir . $name, 'foo'); + touch($this->cacheDir . $name, $expire); + } + + public function testGetExpiredEmpty() { + $this->assertEquals([], $this->gc->getExpiredPaths($this->cacheDir, time())); + } + + public function testGetExpiredNone() { + $time = time(); + $this->addCacheFile('foo', $time + 10); + $this->assertEquals([], $this->gc->getExpiredPaths($this->cacheDir, $time)); + } + + public function testGetExpired() { + $time = time(); + $this->addCacheFile('foo', $time + 10); + $this->addCacheFile('bar', $time); + $this->addCacheFile('bar2', $time - 10); + $this->addCacheFile('asd', $time - 100); + $this->assertEquals([$this->cacheDir . 'asd', $this->cacheDir . 'bar2'], $this->gc->getExpiredPaths($this->cacheDir, $time)); + } + + public function testGetExpiredDirectory() { + $time = time(); + $this->addCacheFile('foo', $time - 10); + mkdir($this->cacheDir . 'asd'); + $this->assertEquals([$this->cacheDir . 'foo'], $this->gc->getExpiredPaths($this->cacheDir, $time)); + } +} |