]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix: cominbation of small fixes
authorArthur Schiwon <blizzz@arthur-schiwon.de>
Wed, 21 Jun 2023 16:01:49 +0000 (18:01 +0200)
committerArthur Schiwon <blizzz@arthur-schiwon.de>
Wed, 21 Jun 2023 18:28:01 +0000 (20:28 +0200)
- possible null return
- parameter name mismatch in implementation
- incomplete unit test

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
apps/dav/lib/Connector/Sabre/FilesReportPlugin.php
apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
lib/private/Files/Node/Folder.php

index 4fabe9fdd1c0a674fd4bb9072587b15661119be6..450fe1347725dce8d54362c2f22e849de9cf53f4 100644 (file)
@@ -284,9 +284,9 @@ class FilesReportPlugin extends ServerPlugin {
         * @param array $filterRules
         * @return array array of unique file id results
         */
-       protected function processFilterRulesForFileIDs($filterRules) {
+       protected function processFilterRulesForFileIDs(array $filterRules): array {
                $ns = '{' . $this::NS_OWNCLOUD . '}';
-               $resultFileIds = null;
+               $resultFileIds = [];
                $circlesIds = [];
                $favoriteFilter = null;
                foreach ($filterRules as $filterRule) {
@@ -407,7 +407,7 @@ class FilesReportPlugin extends ServerPlugin {
         * @param array $fileIds file ids
         * @return Node[] array of Sabre nodes
         */
-       public function findNodesByFileIds($rootNode, $fileIds): array {
+       public function findNodesByFileIds(Node $rootNode, array $fileIds): array {
                if (empty($fileIds)) {
                        return [];
                }
index 7cb2d85fe1ff604fd0c881f854add0c0f26c046c..f1f1cc8b27f5e128a45b5c7b18153b252c477212 100644 (file)
@@ -889,13 +889,26 @@ class FilesReportPluginTest extends \Test\TestCase {
                        ->willReturn([$tag1, $tag2]);
 
                $filesNode1 = $this->createMock(File::class);
+               $filesNode1->expects($this->any())
+                       ->method('getId')
+                       ->willReturn(111);
                $filesNode1->expects($this->any())
                        ->method('getSize')
                        ->willReturn(12);
                $filesNode2 = $this->createMock(Folder::class);
+               $filesNode2->expects($this->any())
+                       ->method('getId')
+                       ->willReturn(222);
                $filesNode2->expects($this->any())
                        ->method('getSize')
                        ->willReturn(10);
+               $filesNode3 = $this->createMock(Folder::class);
+               $filesNode3->expects($this->any())
+                       ->method('getId')
+                       ->willReturn(333);
+               $filesNode3->expects($this->any())
+                       ->method('getSize')
+                       ->willReturn(33);
 
                $this->tagManager->expects($this->once())
                        ->method('getTagsByIds')
@@ -903,16 +916,20 @@ class FilesReportPluginTest extends \Test\TestCase {
                        ->willReturn([$tag1, $tag2]);
 
                // main assertion: only user visible tags are being passed through.
-               $this->userFolder->expects($this->exactly(1))
+               $this->userFolder->expects($this->exactly(2))
                        ->method('searchBySystemTag')
-                       ->with('FourFiveSix', $this->anything(), $this->anything(), $this->anything());
+                       ->withConsecutive(['OneTwoThree'], ['FourFiveSix'])
+                       ->willReturnOnConsecutiveCalls(
+                               [$filesNode1, $filesNode2],
+                               [$filesNode2, $filesNode3],
+                       );
 
                $rules = [
                        ['name' => '{http://owncloud.org/ns}systemtag', 'value' => '123'],
                        ['name' => '{http://owncloud.org/ns}systemtag', 'value' => '456'],
                ];
 
-               $this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null]);
+               $this->assertEquals([$filesNode2], array_values($this->invokePrivate($this->plugin, 'processFilterRulesForFileNodes', [$rules, null, null])));
        }
 
        public function testProcessFavoriteFilter(): void {
index 618257e1e574ef62cffc6a866f41aa3e70b083f7..224f7c2b573fd8e69578e4074e8e0d378bd59505 100644 (file)
@@ -304,8 +304,8 @@ class Folder extends Node implements \OCP\Files\Folder {
                return $this->search($query);
        }
 
-       public function searchBySystemTag(string $tag, string $userId, int $limit = 0, int $offset = 0): array {
-               $query = $this->queryFromOperator(new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'systemtag', $tag), $userId, $limit, $offset);
+       public function searchBySystemTag(string $tagName, string $userId, int $limit = 0, int $offset = 0): array {
+               $query = $this->queryFromOperator(new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'systemtag', $tagName), $userId, $limit, $offset);
                return $this->search($query);
        }