|
|
|
@ -15,6 +15,8 @@ class FilesPlugin extends \Test\TestCase { |
|
|
|
|
const PERMISSIONS_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::PERMISSIONS_PROPERTYNAME; |
|
|
|
|
const LASTMODIFIED_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::LASTMODIFIED_PROPERTYNAME; |
|
|
|
|
const DOWNLOADURL_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::DOWNLOADURL_PROPERTYNAME; |
|
|
|
|
const OWNER_ID_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::OWNER_ID_PROPERTYNAME; |
|
|
|
|
const OWNER_DISPLAY_NAME_PROPERTYNAME = \OCA\DAV\Connector\Sabre\FilesPlugin::OWNER_DISPLAY_NAME_PROPERTYNAME; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @var \Sabre\DAV\Server |
|
|
|
@ -91,13 +93,29 @@ class FilesPlugin extends \Test\TestCase { |
|
|
|
|
self::SIZE_PROPERTYNAME, |
|
|
|
|
self::PERMISSIONS_PROPERTYNAME, |
|
|
|
|
self::DOWNLOADURL_PROPERTYNAME, |
|
|
|
|
self::OWNER_ID_PROPERTYNAME, |
|
|
|
|
self::OWNER_DISPLAY_NAME_PROPERTYNAME |
|
|
|
|
), |
|
|
|
|
0 |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$user = $this->getMockBuilder('\OC\User\User') |
|
|
|
|
->disableOriginalConstructor()->getMock(); |
|
|
|
|
$user |
|
|
|
|
->expects($this->once()) |
|
|
|
|
->method('getUID') |
|
|
|
|
->will($this->returnValue('foo')); |
|
|
|
|
$user |
|
|
|
|
->expects($this->once()) |
|
|
|
|
->method('getDisplayName') |
|
|
|
|
->will($this->returnValue('M. Foo')); |
|
|
|
|
|
|
|
|
|
$node->expects($this->once()) |
|
|
|
|
->method('getDirectDownload') |
|
|
|
|
->will($this->returnValue(array('url' => 'http://example.com/'))); |
|
|
|
|
$node->expects($this->exactly(2)) |
|
|
|
|
->method('getOwner') |
|
|
|
|
->will($this->returnValue($user)); |
|
|
|
|
$node->expects($this->never()) |
|
|
|
|
->method('getSize'); |
|
|
|
|
|
|
|
|
@ -111,6 +129,8 @@ class FilesPlugin extends \Test\TestCase { |
|
|
|
|
$this->assertEquals(null, $propFind->get(self::SIZE_PROPERTYNAME)); |
|
|
|
|
$this->assertEquals('DWCKMSR', $propFind->get(self::PERMISSIONS_PROPERTYNAME)); |
|
|
|
|
$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(array(self::SIZE_PROPERTYNAME), $propFind->get404Properties()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -207,6 +227,36 @@ class FilesPlugin extends \Test\TestCase { |
|
|
|
|
$this->assertEquals(200, $result[self::GETETAG_PROPERTYNAME]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function testUpdatePropsForbidden() { |
|
|
|
|
$node = $this->createTestNode('\OCA\DAV\Connector\Sabre\File'); |
|
|
|
|
|
|
|
|
|
$propPatch = new \Sabre\DAV\PropPatch(array( |
|
|
|
|
self::OWNER_ID_PROPERTYNAME => 'user2', |
|
|
|
|
self::OWNER_DISPLAY_NAME_PROPERTYNAME => 'User Two', |
|
|
|
|
self::FILEID_PROPERTYNAME => 12345, |
|
|
|
|
self::PERMISSIONS_PROPERTYNAME => 'C', |
|
|
|
|
self::SIZE_PROPERTYNAME => 123, |
|
|
|
|
self::DOWNLOADURL_PROPERTYNAME => 'http://example.com/', |
|
|
|
|
)); |
|
|
|
|
|
|
|
|
|
$this->plugin->handleUpdateProperties( |
|
|
|
|
'/dummypath', |
|
|
|
|
$propPatch |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$propPatch->commit(); |
|
|
|
|
|
|
|
|
|
$this->assertEmpty($propPatch->getRemainingMutations()); |
|
|
|
|
|
|
|
|
|
$result = $propPatch->getResult(); |
|
|
|
|
$this->assertEquals(403, $result[self::OWNER_ID_PROPERTYNAME]); |
|
|
|
|
$this->assertEquals(403, $result[self::OWNER_DISPLAY_NAME_PROPERTYNAME]); |
|
|
|
|
$this->assertEquals(403, $result[self::FILEID_PROPERTYNAME]); |
|
|
|
|
$this->assertEquals(403, $result[self::PERMISSIONS_PROPERTYNAME]); |
|
|
|
|
$this->assertEquals(403, $result[self::SIZE_PROPERTYNAME]); |
|
|
|
|
$this->assertEquals(403, $result[self::DOWNLOADURL_PROPERTYNAME]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Testcase from https://github.com/owncloud/core/issues/5251 |
|
|
|
|
* |
|
|
|
|