diff options
author | Robin Appelman <icewind@owncloud.com> | 2015-02-25 14:13:58 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2015-02-25 14:13:58 +0100 |
commit | a848a6b1dd59b124318e1a754a1d51e3189949aa (patch) | |
tree | f0e8d0d2ca06f8da22182c4f7e05d48ea627e127 /tests/lib | |
parent | f5b62267325415b307cf2d47b69d11d4337536e4 (diff) | |
download | nextcloud-server-a848a6b1dd59b124318e1a754a1d51e3189949aa.tar.gz nextcloud-server-a848a6b1dd59b124318e1a754a1d51e3189949aa.zip |
Cleanup garbage collection for global file cache
Diffstat (limited to 'tests/lib')
-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)); + } +} |