[Pkg-owncloud-commits] [owncloud] 08/58: emit hooks from a view as long as the path is inside the default root

David Prévot taffit at moszumanska.debian.org
Tue Aug 11 15:58:03 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to annotated tag v8.0.6
in repository owncloud.

commit 4e85a426a4af6f64292abf315aad8fc7a12b0cee
Author: Robin Appelman <icewind at owncloud.com>
Date:   Mon Jun 1 14:08:14 2015 +0200

    emit hooks from a view as long as the path is inside the default root
---
 lib/private/files/view.php |  3 ++-
 tests/lib/files/view.php   | 29 +++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index b07225c..ae1cb89 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -898,7 +898,8 @@ class View {
 		if ($this->fakeRoot === $defaultRoot) {
 			return true;
 		}
-		return (strlen($this->fakeRoot) > strlen($defaultRoot)) && (substr($this->fakeRoot, 0, strlen($defaultRoot) + 1) === $defaultRoot . '/');
+		$fullPath = $this->getAbsolutePath($path);
+		return (strlen($fullPath) > strlen($defaultRoot)) && (substr($fullPath, 0, strlen($defaultRoot) + 1) === $defaultRoot . '/');
 	}
 
 	/**
diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php
index f064eaa..c595afb 100644
--- a/tests/lib/files/view.php
+++ b/tests/lib/files/view.php
@@ -1050,4 +1050,33 @@ class View extends \Test\TestCase {
 	public function testNullAsRoot() {
 		new \OC\Files\View(null);
 	}
+
+	public function hookPathProvider() {
+		return [
+			['/foo/files', '/foo', true],
+			['/foo/files/bar', '/foo', true],
+			['/foo', '/foo', false],
+			['/foo', '/files/foo', true],
+			['/foo', 'filesfoo', false]
+		];
+	}
+
+	/**
+	 * @dataProvider hookPathProvider
+	 * @param $root
+	 * @param $path
+	 * @param $shouldEmit
+	 */
+	public function testHookPaths($root, $path, $shouldEmit) {
+		$filesystemReflection = new \ReflectionClass('\OC\Files\Filesystem');
+		$defaultRootValue = $filesystemReflection->getProperty('defaultInstance');
+		$defaultRootValue->setAccessible(true);
+		$oldRoot = $defaultRootValue->getValue();
+		$defaultView = new \OC\Files\View('/foo/files');
+		$defaultRootValue->setValue($defaultView);
+		$view = new \OC\Files\View($root);
+		$result = \Test_Helper::invokePrivate($view, 'shouldEmitHooks', [$path]);
+		$defaultRootValue->setValue($oldRoot);
+		$this->assertEquals($shouldEmit, $result);
+	}
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list