summaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
authorFerdinand Thiessen <opensource@fthiessen.de>2025-01-24 12:52:33 +0100
committerFerdinand Thiessen <opensource@fthiessen.de>2025-01-29 10:14:51 +0100
commit092f1b7f34148ce39abce61e8ff89d1726b2de43 (patch)
treec34f60ae697838bfc3e3bdc1aa964ea4a5bc349c /tests/lib
parent7a8285b281a4bff5a4162177bcd175300fd841b9 (diff)
downloadnextcloud-server-092f1b7f34148ce39abce61e8ff89d1726b2de43.tar.gz
nextcloud-server-092f1b7f34148ce39abce61e8ff89d1726b2de43.zip
fix: Correctly return app id and app version for `core` styles and images
fix(TemplateLayout): `core` is not an app but the server itself Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Diffstat (limited to 'tests/lib')
-rw-r--r--tests/lib/App/AppManagerTest.php98
-rw-r--r--tests/lib/AppTest.php48
2 files changed, 125 insertions, 21 deletions
diff --git a/tests/lib/App/AppManagerTest.php b/tests/lib/App/AppManagerTest.php
index dfbaedff957..2d1a14b1ff9 100644
--- a/tests/lib/App/AppManagerTest.php
+++ b/tests/lib/App/AppManagerTest.php
@@ -116,6 +116,10 @@ class AppManagerTest extends TestCase {
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
$this->logger = $this->createMock(LoggerInterface::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
+
+ $this->overwriteService(AppConfig::class, $this->appConfig);
+ $this->overwriteService(IURLGenerator::class, $this->urlGenerator);
+
$this->cacheFactory->expects($this->any())
->method('createDistributed')
->with('settings')
@@ -132,6 +136,14 @@ class AppManagerTest extends TestCase {
);
}
+ protected function tearDown(): void {
+ parent::tearDown();
+
+ // Reset static OC_Util
+ $util = new \OC_Util();
+ self::invokePrivate($util, 'versionCache', [null]);
+ }
+
/**
* @dataProvider dataGetAppIcon
*/
@@ -888,4 +900,90 @@ class AppManagerTest extends TestCase {
$this->assertEquals($expectedApp, $this->manager->getDefaultAppForUser(null, $withFallbacks));
}
+
+ public function testGetAppVersion() {
+ $manager = $this->getMockBuilder(AppManager::class)
+ ->setConstructorArgs([
+ $this->userSession,
+ $this->config,
+ $this->appConfig,
+ $this->groupManager,
+ $this->cacheFactory,
+ $this->eventDispatcher,
+ $this->logger,
+ $this->urlGenerator,
+ ])
+ ->onlyMethods([
+ 'getAppInfo',
+ ])
+ ->getMock();
+
+ $manager->expects(self::once())
+ ->method('getAppInfo')
+ ->with('myapp')
+ ->willReturn(['version' => '99.99.99-rc.99']);
+
+ $this->assertEquals(
+ '99.99.99-rc.99',
+ $manager->getAppVersion('myapp'),
+ );
+ }
+
+ public function testGetAppVersionCore() {
+ $manager = $this->getMockBuilder(AppManager::class)
+ ->setConstructorArgs([
+ $this->userSession,
+ $this->config,
+ $this->appConfig,
+ $this->groupManager,
+ $this->cacheFactory,
+ $this->eventDispatcher,
+ $this->logger,
+ $this->urlGenerator,
+ ])
+ ->onlyMethods([
+ 'getAppInfo',
+ ])
+ ->getMock();
+
+ $manager->expects(self::never())
+ ->method('getAppInfo');
+
+ $util = new \OC_Util();
+ self::invokePrivate($util, 'versionCache', [['OC_VersionString' => '1.2.3-beta.4']]);
+
+ $this->assertEquals(
+ '1.2.3-beta.4',
+ $manager->getAppVersion('core'),
+ );
+ }
+
+ public function testGetAppVersionUnknown() {
+ $manager = $this->getMockBuilder(AppManager::class)
+ ->setConstructorArgs([
+ $this->userSession,
+ $this->config,
+ $this->appConfig,
+ $this->groupManager,
+ $this->cacheFactory,
+ $this->eventDispatcher,
+ $this->logger,
+ $this->urlGenerator,
+ ])
+ ->onlyMethods([
+ 'getAppInfo',
+ ])
+ ->getMock();
+
+ $manager->expects(self::once())
+ ->method('getAppInfo')
+ ->with('unknown')
+ ->willReturn(null);
+
+ $this->assertEquals(
+ '0',
+ $manager->getAppVersion('unknown'),
+ );
+ }
+
}
diff --git a/tests/lib/AppTest.php b/tests/lib/AppTest.php
index 4e723e5d2f1..be1770afc0e 100644
--- a/tests/lib/AppTest.php
+++ b/tests/lib/AppTest.php
@@ -14,7 +14,13 @@ use OC\App\InfoParser;
use OC\AppConfig;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IAppConfig;
+use OCP\ICacheFactory;
+use OCP\IConfig;
+use OCP\IDBConnection;
+use OCP\IGroupManager;
use OCP\IURLGenerator;
+use OCP\IUserManager;
+use OCP\IUserSession;
use PHPUnit\Framework\MockObject\MockObject;
use Psr\Log\LoggerInterface;
@@ -459,12 +465,12 @@ class AppTest extends \Test\TestCase {
*
* @dataProvider appConfigValuesProvider
*/
- public function testEnabledApps($user, $expectedApps, $forceAll) {
- $userManager = \OC::$server->getUserManager();
- $groupManager = \OC::$server->getGroupManager();
- $user1 = $userManager->createUser(self::TEST_USER1, self::TEST_USER1);
- $user2 = $userManager->createUser(self::TEST_USER2, self::TEST_USER2);
- $user3 = $userManager->createUser(self::TEST_USER3, self::TEST_USER3);
+ public function testEnabledApps($user, $expectedApps, $forceAll): void {
+ $userManager = \OCP\Server::get(IUserManager::class);
+ $groupManager = \OCP\Server::get(IGroupManager::class);
+ $user1 = $userManager->createUser(self::TEST_USER1, 'NotAnEasyPassword123456+');
+ $user2 = $userManager->createUser(self::TEST_USER2, 'NotAnEasyPassword123456_');
+ $user3 = $userManager->createUser(self::TEST_USER3, 'NotAnEasyPassword123456?');
$group1 = $groupManager->createGroup(self::TEST_GROUP1);
$group1->addUser($user1);
@@ -508,9 +514,9 @@ class AppTest extends \Test\TestCase {
* Test isEnabledApps() with cache, not re-reading the list of
* enabled apps more than once when a user is set.
*/
- public function testEnabledAppsCache() {
- $userManager = \OC::$server->getUserManager();
- $user1 = $userManager->createUser(self::TEST_USER1, self::TEST_USER1);
+ public function testEnabledAppsCache(): void {
+ $userManager = \OCP\Server::get(IUserManager::class);
+ $user1 = $userManager->createUser(self::TEST_USER1, 'NotAnEasyPassword123456+');
\OC_User::setUserId(self::TEST_USER1);
@@ -541,8 +547,8 @@ class AppTest extends \Test\TestCase {
private function setupAppConfigMock() {
/** @var AppConfig|MockObject */
$appConfig = $this->getMockBuilder(AppConfig::class)
- ->setMethods(['getValues'])
- ->setConstructorArgs([\OC::$server->getDatabaseConnection()])
+ ->onlyMethods(['getValues'])
+ ->setConstructorArgs([\OCP\Server::get(IDBConnection::class)])
->disableOriginalConstructor()
->getMock();
@@ -558,14 +564,14 @@ class AppTest extends \Test\TestCase {
private function registerAppConfig(AppConfig $appConfig) {
$this->overwriteService(AppConfig::class, $appConfig);
$this->overwriteService(AppManager::class, new AppManager(
- \OC::$server->getUserSession(),
- \OC::$server->getConfig(),
- $appConfig,
- \OC::$server->getGroupManager(),
- \OC::$server->getMemCacheFactory(),
- \OC::$server->get(IEventDispatcher::class),
- \OC::$server->get(LoggerInterface::class),
- \OC::$server->get(IURLGenerator::class),
+ \OCP\Server::get(IUserSession::class),
+ \OCP\Server::get(IConfig::class),
+ \OCP\Server::get(IAppConfig::class),
+ \OCP\Server::get(IGroupManager::class),
+ \OCP\Server::get(ICacheFactory::class),
+ \OCP\Server::get(IEventDispatcher::class),
+ \OCP\Server::get(LoggerInterface::class),
+ \OCP\Server::get(IURLGenerator::class),
));
}
@@ -624,14 +630,14 @@ class AppTest extends \Test\TestCase {
public function testParseAppInfoL10N() {
$parser = new InfoParser();
- $data = $parser->parse(\OC::$SERVERROOT. "/tests/data/app/description-multi-lang.xml");
+ $data = $parser->parse(\OC::$SERVERROOT . '/tests/data/app/description-multi-lang.xml');
$this->assertEquals('English', \OC_App::parseAppInfo($data, 'en')['description']);
$this->assertEquals('German', \OC_App::parseAppInfo($data, 'de')['description']);
}
public function testParseAppInfoL10NSingleLanguage() {
$parser = new InfoParser();
- $data = $parser->parse(\OC::$SERVERROOT. "/tests/data/app/description-single-lang.xml");
+ $data = $parser->parse(\OC::$SERVERROOT . '/tests/data/app/description-single-lang.xml');
$this->assertEquals('English', \OC_App::parseAppInfo($data, 'en')['description']);
}
}