summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2016-08-05 13:32:26 +0200
committerRobin Appelman <icewind@owncloud.com>2016-08-05 14:06:05 +0200
commitf1cd68d71337d3419ea7fced7304bc2a763d29d4 (patch)
treec2f2aa5d7b2fd755e7333b6daa6ebc4461677e27
parentd252d79059fd80e74754ef0fbbbba04fc3db2c91 (diff)
downloadnextcloud-server-f1cd68d71337d3419ea7fced7304bc2a763d29d4.tar.gz
nextcloud-server-f1cd68d71337d3419ea7fced7304bc2a763d29d4.zip
Adding test case for getPathById including a jailed cache where root is just empty
-rw-r--r--lib/private/Files/Cache/Wrapper/CacheJail.php4
-rw-r--r--tests/lib/Files/Cache/Wrapper/CacheJailTest.php13
2 files changed, 14 insertions, 3 deletions
diff --git a/lib/private/Files/Cache/Wrapper/CacheJail.php b/lib/private/Files/Cache/Wrapper/CacheJail.php
index 90226e56144..1196c6b0760 100644
--- a/lib/private/Files/Cache/Wrapper/CacheJail.php
+++ b/lib/private/Files/Cache/Wrapper/CacheJail.php
@@ -59,6 +59,9 @@ class CacheJail extends CacheWrapper {
* @return null|string the jailed path or null if the path is outside the jail
*/
protected function getJailedPath($path) {
+ if ($this->root === '') {
+ return $path;
+ }
$rootLength = strlen($this->root) + 1;
if ($path === $this->root) {
return '';
@@ -290,7 +293,6 @@ class CacheJail extends CacheWrapper {
*/
public function getPathById($id) {
$path = $this->cache->getPathById($id);
- $path = $this->getSourcePath($path);
return $this->getJailedPath($path);
}
diff --git a/tests/lib/Files/Cache/Wrapper/CacheJailTest.php b/tests/lib/Files/Cache/Wrapper/CacheJailTest.php
index 6ef6716f721..e3043c50d57 100644
--- a/tests/lib/Files/Cache/Wrapper/CacheJailTest.php
+++ b/tests/lib/Files/Cache/Wrapper/CacheJailTest.php
@@ -63,8 +63,17 @@ class CacheJailTest extends CacheTest {
}
function testGetById() {
- //not supported
- $this->assertTrue(true);
+ $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'httpd/unix-directory');
+ $id = $this->sourceCache->put('foo/bar', $data1);
+
+ // path from jailed foo of foo/bar is bar
+ $path = $this->cache->getPathById($id);
+ $this->assertEquals('bar', $path);
+
+ // path from jailed '' of foo/bar is foo/bar
+ $this->cache = new \OC\Files\Cache\Wrapper\CacheJail($this->sourceCache, '');
+ $path = $this->cache->getPathById($id);
+ $this->assertEquals('foo/bar', $path);
}
function testGetIncomplete() {