From 4685ca9154e6f7ca857512c1ba3130d89b93ecbe Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Sat, 13 Aug 2016 17:03:54 +0200 Subject: [PATCH] [master] DAV: Return data-fingerprint always when asked (#25482) For owncloud/client#5056 Users can configure arbitrary subfolders for syncing, therefore we should always return it when asked for. The sync client makes sure to not always ask for it to save bandwidth. --- apps/dav/lib/Connector/Sabre/FilesPlugin.php | 9 ++------- apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php | 6 ++++-- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/apps/dav/lib/Connector/Sabre/FilesPlugin.php b/apps/dav/lib/Connector/Sabre/FilesPlugin.php index c472f75b6bfe1..dd5f958ed4c37 100644 --- a/apps/dav/lib/Connector/Sabre/FilesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/FilesPlugin.php @@ -324,18 +324,13 @@ public function handleGetProperties(PropFind $propFind, \Sabre\DAV\INode $node) return $displayName; }); - $propFind->handle(self::DATA_FINGERPRINT_PROPERTYNAME, function() use ($node) { - if ($node->getPath() === '/') { - return $this->config->getSystemValue('data-fingerprint', ''); - } - }); - $propFind->handle(self::HAS_PREVIEW_PROPERTYNAME, function () use ($node) { return json_encode($this->previewManager->isAvailable($node->getFileInfo())); }); } - if ($node instanceof \OCA\DAV\Files\FilesHome) { + if ($node instanceof \OCA\DAV\Connector\Sabre\Node + || $node instanceof \OCA\DAV\Files\FilesHome) { $propFind->handle(self::DATA_FINGERPRINT_PROPERTYNAME, function() use ($node) { return $this->config->getSystemValue('data-fingerprint', ''); }); diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php index 6630c02754124..e2d63868af054 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php @@ -213,7 +213,8 @@ public function testGetPropertiesForFile() { $this->assertEquals('http://example.com/', $propFind->get(self::DOWNLOADURL_PROPERTYNAME)); $this->assertEquals('foo', $propFind->get(self::OWNER_ID_PROPERTYNAME)); $this->assertEquals('M. Foo', $propFind->get(self::OWNER_DISPLAY_NAME_PROPERTYNAME)); - $this->assertEquals([self::SIZE_PROPERTYNAME, self::DATA_FINGERPRINT_PROPERTYNAME], $propFind->get404Properties()); + $this->assertEquals('my_fingerprint', $propFind->get(self::DATA_FINGERPRINT_PROPERTYNAME)); + $this->assertEquals([self::SIZE_PROPERTYNAME], $propFind->get404Properties()); } public function testGetPropertiesForFileHome() { @@ -357,7 +358,8 @@ public function testGetPropertiesForDirectory() { $this->assertEquals(1025, $propFind->get(self::SIZE_PROPERTYNAME)); $this->assertEquals('DWCKMSR', $propFind->get(self::PERMISSIONS_PROPERTYNAME)); $this->assertEquals(null, $propFind->get(self::DOWNLOADURL_PROPERTYNAME)); - $this->assertEquals([self::DOWNLOADURL_PROPERTYNAME, self::DATA_FINGERPRINT_PROPERTYNAME], $propFind->get404Properties()); + $this->assertEquals('my_fingerprint', $propFind->get(self::DATA_FINGERPRINT_PROPERTYNAME)); + $this->assertEquals([self::DOWNLOADURL_PROPERTYNAME], $propFind->get404Properties()); } public function testGetPropertiesForRootDirectory() {