aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorChristopher Ng <chrng8@gmail.com>2024-08-21 10:31:21 -0700
committerChristopher Ng <chrng8@gmail.com>2024-08-27 14:33:39 -0700
commit71e653c0bc0f365d4dbd863e797308334b307532 (patch)
treedce81062fa5eb3219c4d27461b89c777e683a11a /apps
parenta740e60afc4bc9d77ccb1c68095e3468ffc5db30 (diff)
downloadnextcloud-server-71e653c0bc0f365d4dbd863e797308334b307532.tar.gz
nextcloud-server-71e653c0bc0f365d4dbd863e797308334b307532.zip
perf(files): Do not block files page load with server-side favorites retrieval
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de> Signed-off-by: Christopher Ng <chrng8@gmail.com>
Diffstat (limited to 'apps')
-rw-r--r--apps/files/lib/Controller/ViewController.php15
-rw-r--r--apps/files/tests/Controller/ViewControllerTest.php64
2 files changed, 16 insertions, 63 deletions
diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php
index aa9aa81a814..e3d4c0a6aa0 100644
--- a/apps/files/lib/Controller/ViewController.php
+++ b/apps/files/lib/Controller/ViewController.php
@@ -8,7 +8,6 @@
namespace OCA\Files\Controller;
use OC\Files\FilenameValidator;
-use OCA\Files\Activity\Helper;
use OCA\Files\AppInfo\Application;
use OCA\Files\Event\LoadAdditionalScriptsEvent;
use OCA\Files\Event\LoadSearchPlugins;
@@ -54,7 +53,6 @@ class ViewController extends Controller {
private IUserSession $userSession,
private IAppManager $appManager,
private IRootFolder $rootFolder,
- private Helper $activityHelper,
private IInitialState $initialState,
private ITemplateManager $templateManager,
private UserConfig $userConfig,
@@ -146,18 +144,6 @@ class ViewController extends Controller {
$userId = $this->userSession->getUser()->getUID();
- // Get all the user favorites to create a submenu
- try {
- $userFolder = $this->rootFolder->getUserFolder($userId);
- $favElements = $this->activityHelper->getFavoriteNodes($userId, true);
- $favElements = array_map(fn (Folder $node) => [
- 'fileid' => $node->getId(),
- 'path' => $userFolder->getRelativePath($node->getPath()),
- ], $favElements);
- } catch (\RuntimeException $e) {
- $favElements = [];
- }
-
// If the file doesn't exists in the folder and
// exists in only one occurrence, redirect to that file
// in the correct folder
@@ -187,7 +173,6 @@ class ViewController extends Controller {
$this->initialState->provideInitialState('storageStats', $storageInfo);
$this->initialState->provideInitialState('config', $this->userConfig->getConfigs());
$this->initialState->provideInitialState('viewConfigs', $this->viewConfig->getConfigs());
- $this->initialState->provideInitialState('favoriteFolders', $favElements);
// File sorting user config
$filesSortingConfig = json_decode($this->config->getUserValue($userId, 'files', 'files_sorting_configs', '{}'), true);
diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php
index e3ac7737d00..c1bc27d42b5 100644
--- a/apps/files/tests/Controller/ViewControllerTest.php
+++ b/apps/files/tests/Controller/ViewControllerTest.php
@@ -8,7 +8,6 @@
namespace OCA\Files\Tests\Controller;
use OC\Files\FilenameValidator;
-use OCA\Files\Activity\Helper;
use OCA\Files\Controller\ViewController;
use OCA\Files\Service\UserConfig;
use OCA\Files\Service\ViewConfig;
@@ -26,7 +25,7 @@ use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserSession;
-use OCP\Share\IManager;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
/**
@@ -35,38 +34,21 @@ use Test\TestCase;
* @package OCA\Files\Tests\Controller
*/
class ViewControllerTest extends TestCase {
- /** @var IRequest|\PHPUnit\Framework\MockObject\MockObject */
- private $request;
- /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */
- private $urlGenerator;
- /** @var IL10N */
- private $l10n;
- /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $config;
- /** @var IEventDispatcher */
- private $eventDispatcher;
- /** @var ViewController|\PHPUnit\Framework\MockObject\MockObject */
- private $viewController;
- /** @var IUser|\PHPUnit\Framework\MockObject\MockObject */
- private $user;
- /** @var IUserSession|\PHPUnit\Framework\MockObject\MockObject */
- private $userSession;
- /** @var IAppManager|\PHPUnit\Framework\MockObject\MockObject */
- private $appManager;
- /** @var IRootFolder|\PHPUnit\Framework\MockObject\MockObject */
- private $rootFolder;
- /** @var Helper|\PHPUnit\Framework\MockObject\MockObject */
- private $activityHelper;
- /** @var IInitialState|\PHPUnit\Framework\MockObject\MockObject */
- private $initialState;
- /** @var ITemplateManager|\PHPUnit\Framework\MockObject\MockObject */
- private $templateManager;
- /** @var IManager|\PHPUnit\Framework\MockObject\MockObject */
- private $shareManager;
- /** @var UserConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $userConfig;
- /** @var ViewConfig|\PHPUnit\Framework\MockObject\MockObject */
- private $viewConfig;
+ private IRequest&MockObject $request;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IL10N&MockObject $l10n;
+ private IConfig&MockObject $config;
+ private IEventDispatcher $eventDispatcher;
+ private IUser&MockObject $user;
+ private IUserSession&MockObject $userSession;
+ private IAppManager&MockObject $appManager;
+ private IRootFolder&MockObject $rootFolder;
+ private IInitialState&MockObject $initialState;
+ private ITemplateManager&MockObject $templateManager;
+ private UserConfig&MockObject $userConfig;
+ private ViewConfig&MockObject $viewConfig;
+
+ private ViewController&MockObject $viewController;
protected function setUp(): void {
parent::setUp();
@@ -85,7 +67,6 @@ class ViewControllerTest extends TestCase {
->method('getUser')
->willReturn($this->user);
$this->rootFolder = $this->getMockBuilder('\OCP\Files\IRootFolder')->getMock();
- $this->activityHelper = $this->createMock(Helper::class);
$this->initialState = $this->createMock(IInitialState::class);
$this->templateManager = $this->createMock(ITemplateManager::class);
$this->userConfig = $this->createMock(UserConfig::class);
@@ -104,7 +85,6 @@ class ViewControllerTest extends TestCase {
$this->userSession,
$this->appManager,
$this->rootFolder,
- $this->activityHelper,
$this->initialState,
$this->templateManager,
$this->userConfig,
@@ -162,18 +142,6 @@ class ViewControllerTest extends TestCase {
$policy->addAllowedFrameDomain('\'self\'');
$expected->setContentSecurityPolicy($policy);
- $this->activityHelper->method('getFavoriteFilePaths')
- ->with($this->user->getUID())
- ->willReturn([
- 'item' => [],
- 'folders' => [
- '/test1',
- '/test2/',
- '/test3/sub4',
- '/test5/sub6/',
- ],
- ]);
-
$this->assertEquals($expected, $this->viewController->index('MyDir', 'MyView'));
}