From 3e70d563a6774567ec77e9d9adf6b9ccb1e9619d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 10 Feb 2013 12:27:35 +0100 Subject: Cache: bookkeeping of storage_mtime --- tests/lib/files/cache/cache.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tests/lib/files/cache/cache.php') diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php index c466fbb63e7..794664c8893 100644 --- a/tests/lib/files/cache/cache.php +++ b/tests/lib/files/cache/cache.php @@ -204,6 +204,23 @@ class Cache extends \PHPUnit_Framework_TestCase { $this->assertEquals(array($storageId, 'foo'), \OC\Files\Cache\Cache::getById($id)); } + function testStorageMTime() { + $data = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file'); + $this->cache->put('foo', $data); + $cachedData = $this->cache->get('foo'); + $this->assertEquals($data['mtime'], $cachedData['storage_mtime']);//if no storage_mtime is saved, mtime should be used + + $this->cache->put('foo', array('storage_mtime' => 30));//when setting storage_mtime, mtime is also set + $cachedData = $this->cache->get('foo'); + $this->assertEquals(30, $cachedData['storage_mtime']); + $this->assertEquals(30, $cachedData['mtime']); + + $this->cache->put('foo', array('mtime' => 25));//setting mtime does not change storage_mtime + $cachedData = $this->cache->get('foo'); + $this->assertEquals(30, $cachedData['storage_mtime']); + $this->assertEquals(25, $cachedData['mtime']); + } + public function tearDown() { $this->cache->clear(); } @@ -213,3 +230,4 @@ class Cache extends \PHPUnit_Framework_TestCase { $this->cache = new \OC\Files\Cache\Cache($this->storage); } } + -- cgit v1.2.3 From 5c112657b23e546b0ef31ebff11f48a0e2e2c6fc Mon Sep 17 00:00:00 2001 From: Roland Hager Date: Thu, 16 May 2013 17:47:41 +0200 Subject: New tests to assure that a move will not affect another users cache entries Added a second storage and cache Object to simulate a second user. --- tests/lib/files/cache/cache.php | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'tests/lib/files/cache/cache.php') diff --git a/tests/lib/files/cache/cache.php b/tests/lib/files/cache/cache.php index 1612a673838..d8b6541bd0c 100644 --- a/tests/lib/files/cache/cache.php +++ b/tests/lib/files/cache/cache.php @@ -19,11 +19,19 @@ class Cache extends \PHPUnit_Framework_TestCase { * @var \OC\Files\Storage\Temporary $storage; */ private $storage; + /** + * @var \OC\Files\Storage\Temporary $storage2; + */ + private $storage2; /** * @var \OC\Files\Cache\Cache $cache */ private $cache; + /** + * @var \OC\Files\Cache\Cache $cache2 + */ + private $cache2; public function testSimple() { $file1 = 'foo'; @@ -170,6 +178,13 @@ class Cache extends \PHPUnit_Framework_TestCase { $this->cache->put($file4, $data); $this->cache->put($file5, $data); + /* simulate a second user with a different storage id but the same folder structure */ + $this->cache2->put($file1, $folderData); + $this->cache2->put($file2, $folderData); + $this->cache2->put($file3, $folderData); + $this->cache2->put($file4, $data); + $this->cache2->put($file5, $data); + $this->cache->move('folder/foo', 'folder/foobar'); $this->assertFalse($this->cache->inCache('folder/foo')); @@ -180,6 +195,16 @@ class Cache extends \PHPUnit_Framework_TestCase { $this->assertTrue($this->cache->inCache('folder/foobar')); $this->assertTrue($this->cache->inCache('folder/foobar/1')); $this->assertTrue($this->cache->inCache('folder/foobar/2')); + + /* the folder structure of the second user must not change! */ + $this->assertTrue($this->cache2->inCache('folder/bar')); + $this->assertTrue($this->cache2->inCache('folder/foo')); + $this->assertTrue($this->cache2->inCache('folder/foo/1')); + $this->assertTrue($this->cache2->inCache('folder/foo/2')); + + $this->assertFalse($this->cache2->inCache('folder/foobar')); + $this->assertFalse($this->cache2->inCache('folder/foobar/1')); + $this->assertFalse($this->cache2->inCache('folder/foobar/2')); } function testGetIncomplete() { @@ -243,6 +268,8 @@ class Cache extends \PHPUnit_Framework_TestCase { public function setUp() { $this->storage = new \OC\Files\Storage\Temporary(array()); + $this->storage2 = new \OC\Files\Storage\Temporary(array()); $this->cache = new \OC\Files\Cache\Cache($this->storage); + $this->cache2 = new \OC\Files\Cache\Cache($this->storage2); } } -- cgit v1.2.3