aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2014-08-07 13:40:17 +0200
committerRobin Appelman <icewind@owncloud.com>2014-08-07 13:40:17 +0200
commitf1091280de5bca203e3233206e75c0c7421065c1 (patch)
treea9b4165a405bff7d57de84607e996bddcb534a9b /tests/lib
parent9e6b65fabe959706cca4342d650dc1a028d06ac3 (diff)
parenteb8683e6eeb0baa81395118f261cbfe6f002f411 (diff)
downloadnextcloud-server-f1091280de5bca203e3233206e75c0c7421065c1.tar.gz
nextcloud-server-f1091280de5bca203e3233206e75c0c7421065c1.zip
Merge pull request #10184 from owncloud/getbyid-node
Fix Folder::getById
Diffstat (limited to 'tests/lib')
-rw-r--r--tests/lib/files/node/folder.php127
1 files changed, 127 insertions, 0 deletions
diff --git a/tests/lib/files/node/folder.php b/tests/lib/files/node/folder.php
index 08200f35f57..436161aba72 100644
--- a/tests/lib/files/node/folder.php
+++ b/tests/lib/files/node/folder.php
@@ -9,6 +9,7 @@
namespace Test\Files\Node;
use OC\Files\Cache\Cache;
+use OC\Files\Mount\Mount;
use OC\Files\Node\Node;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
@@ -468,4 +469,130 @@ class Folder extends \PHPUnit_Framework_TestCase {
$file = new Node(null, null, '/foobar');
$this->assertFalse($folder->isSubNode($file));
}
+
+ public function testGetById() {
+ $manager = $this->getMock('\OC\Files\Mount\Manager');
+ /**
+ * @var \OC\Files\View | \PHPUnit_Framework_MockObject_MockObject $view
+ */
+ $view = $this->getMock('\OC\Files\View');
+ $root = $this->getMock('\OC\Files\Node\Root', array('getUser', 'getMountsIn', 'getMount'), array($manager, $view, $this->user));
+ $root->expects($this->any())
+ ->method('getUser')
+ ->will($this->returnValue($this->user));
+ $storage = $this->getMock('\OC\Files\Storage\Storage');
+ $mount = new Mount($storage, '/bar');
+ $cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
+
+ $view->expects($this->once())
+ ->method('file_exists')
+ ->will($this->returnValue(true));
+
+ $storage->expects($this->once())
+ ->method('getCache')
+ ->will($this->returnValue($cache));
+
+ $cache->expects($this->once())
+ ->method('getPathById')
+ ->with('1')
+ ->will($this->returnValue('foo/qwerty'));
+
+ $root->expects($this->once())
+ ->method('getMountsIn')
+ ->with('/bar/foo')
+ ->will($this->returnValue(array()));
+
+ $root->expects($this->once())
+ ->method('getMount')
+ ->with('/bar/foo')
+ ->will($this->returnValue($mount));
+
+ $node = new \OC\Files\Node\Folder($root, $view, '/bar/foo');
+ $result = $node->getById(1);
+ $this->assertEquals(1, count($result));
+ $this->assertEquals('/bar/foo/qwerty', $result[0]->getPath());
+ }
+
+ public function testGetByIdOutsideFolder() {
+ $manager = $this->getMock('\OC\Files\Mount\Manager');
+ /**
+ * @var \OC\Files\View | \PHPUnit_Framework_MockObject_MockObject $view
+ */
+ $view = $this->getMock('\OC\Files\View');
+ $root = $this->getMock('\OC\Files\Node\Root', array('getUser', 'getMountsIn', 'getMount'), array($manager, $view, $this->user));
+ $root->expects($this->any())
+ ->method('getUser')
+ ->will($this->returnValue($this->user));
+ $storage = $this->getMock('\OC\Files\Storage\Storage');
+ $mount = new Mount($storage, '/bar');
+ $cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
+
+ $storage->expects($this->once())
+ ->method('getCache')
+ ->will($this->returnValue($cache));
+
+ $cache->expects($this->once())
+ ->method('getPathById')
+ ->with('1')
+ ->will($this->returnValue('foobar'));
+
+ $root->expects($this->once())
+ ->method('getMountsIn')
+ ->with('/bar/foo')
+ ->will($this->returnValue(array()));
+
+ $root->expects($this->once())
+ ->method('getMount')
+ ->with('/bar/foo')
+ ->will($this->returnValue($mount));
+
+ $node = new \OC\Files\Node\Folder($root, $view, '/bar/foo');
+ $result = $node->getById(1);
+ $this->assertCount(0, $result);
+ }
+
+ public function testGetByIdMultipleStorages() {
+ $manager = $this->getMock('\OC\Files\Mount\Manager');
+ /**
+ * @var \OC\Files\View | \PHPUnit_Framework_MockObject_MockObject $view
+ */
+ $view = $this->getMock('\OC\Files\View');
+ $root = $this->getMock('\OC\Files\Node\Root', array('getUser', 'getMountsIn', 'getMount'), array($manager, $view, $this->user));
+ $root->expects($this->any())
+ ->method('getUser')
+ ->will($this->returnValue($this->user));
+ $storage = $this->getMock('\OC\Files\Storage\Storage');
+ $mount1 = new Mount($storage, '/bar');
+ $mount2 = new Mount($storage, '/bar/foo/asd');
+ $cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
+
+ $view->expects($this->any())
+ ->method('file_exists')
+ ->will($this->returnValue(true));
+
+ $storage->expects($this->any())
+ ->method('getCache')
+ ->will($this->returnValue($cache));
+
+ $cache->expects($this->any())
+ ->method('getPathById')
+ ->with('1')
+ ->will($this->returnValue('foo/qwerty'));
+
+ $root->expects($this->any())
+ ->method('getMountsIn')
+ ->with('/bar/foo')
+ ->will($this->returnValue(array($mount2)));
+
+ $root->expects($this->once())
+ ->method('getMount')
+ ->with('/bar/foo')
+ ->will($this->returnValue($mount1));
+
+ $node = new \OC\Files\Node\Folder($root, $view, '/bar/foo');
+ $result = $node->getById(1);
+ $this->assertEquals(2, count($result));
+ $this->assertEquals('/bar/foo/qwerty', $result[0]->getPath());
+ $this->assertEquals('/bar/foo/asd/foo/qwerty', $result[1]->getPath());
+ }
}