Skip to content

Commit

Permalink
feat: return both properties and status in propFindUnfiltered
Browse files Browse the repository at this point in the history
  • Loading branch information
phil-davis committed Dec 11, 2023
1 parent ebfe0d4 commit a93bd80
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 15 deletions.
8 changes: 3 additions & 5 deletions lib/DAV/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -243,16 +243,14 @@ public function propFindUnfiltered($url, array $properties, $depth = 0)
reset($result);
$resourceStatusList = current($result);
reset($resourceStatusList);
// $resourceStatus = key($resourceStatusList);
return current($resourceStatusList);

return ['properties' => current($resourceStatusList), 'status' => key($resourceStatusList)];
}

$newResult = [];
foreach ($result as $href => $statusList) {
reset($statusList);
// $resourceStatus = key($statusList);
$resourceProperties = current($statusList);
$newResult[$href] = $resourceProperties;
$newResult[$href] = ['properties' => current($statusList), 'status' => key($statusList)];
}

return $newResult;
Expand Down
35 changes: 25 additions & 10 deletions tests/Sabre/DAV/ClientTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -304,8 +304,11 @@ public function testPropFindUnfilteredDepth0()
$result = $client->propFindUnfiltered('folder1', ['{DAV:}resourcetype', '{DAV:}displayname', '{urn:zim}gir']);

self::assertEquals([
'{DAV:}resourcetype' => new Xml\Property\ResourceType('{DAV:}collection'),
'{DAV:}displayname' => 'Folder1',
'properties' => [
'{DAV:}resourcetype' => new Xml\Property\ResourceType('{DAV:}collection'),
'{DAV:}displayname' => 'Folder1',
],
'status' => 200,
], $result);

$request = $client->request;
Expand Down Expand Up @@ -382,20 +385,32 @@ public function testPropFindUnfiltered()

self::assertEquals([
'/folder1' => [
'{DAV:}resourcetype' => new Xml\Property\ResourceType('{DAV:}collection'),
'{DAV:}displayname' => 'Folder1',
'properties' => [
'{DAV:}resourcetype' => new Xml\Property\ResourceType('{DAV:}collection'),
'{DAV:}displayname' => 'Folder1',
],
'status' => 200,
],
'/folder1/file1.txt' => [
'{DAV:}resourcetype' => null,
'{DAV:}displayname' => 'File1',
'properties' => [
'{DAV:}resourcetype' => null,
'{DAV:}displayname' => 'File1',
],
'status' => 200,
],
'/folder1/file2.txt' => [
'{DAV:}resourcetype' => null,
'{DAV:}displayname' => 'File2',
'properties' => [
'{DAV:}resourcetype' => null,
'{DAV:}displayname' => 'File2',
],
'status' => 403,
],
'/folder1/file3.txt' => [
'{DAV:}resourcetype' => null,
'{DAV:}displayname' => 'File3',
'properties' => [
'{DAV:}resourcetype' => null,
'{DAV:}displayname' => 'File3',
],
'status' => 425,
],
], $result);

Expand Down

0 comments on commit a93bd80

Please sign in to comment.