aboutsummaryrefslogtreecommitdiffstats
path: root/tests/data/app
diff options
context:
space:
mode:
Diffstat (limited to 'tests/data/app')
-rw-r--r--tests/data/app/code-checker/test-const.php10
-rw-r--r--tests/data/app/code-checker/test-deprecated-constant-alias.php8
-rw-r--r--tests/data/app/code-checker/test-deprecated-constant-sub-alias.php8
-rw-r--r--tests/data/app/code-checker/test-deprecated-constant-sub.php8
-rw-r--r--tests/data/app/code-checker/test-deprecated-constant.php6
-rw-r--r--tests/data/app/code-checker/test-deprecated-function-alias.php6
-rw-r--r--tests/data/app/code-checker/test-deprecated-function-sub-alias.php6
-rw-r--r--tests/data/app/code-checker/test-deprecated-function-sub.php6
-rw-r--r--tests/data/app/code-checker/test-deprecated-function.php4
-rw-r--r--tests/data/app/code-checker/test-deprecated-method.php5
-rw-r--r--tests/data/app/code-checker/test-deprecated-use-alias.php9
-rw-r--r--tests/data/app/code-checker/test-deprecated-use-sub-alias.php9
-rw-r--r--tests/data/app/code-checker/test-deprecated-use-sub.php9
-rw-r--r--tests/data/app/code-checker/test-deprecated-use.php9
-rw-r--r--tests/data/app/code-checker/test-equal.php11
-rw-r--r--tests/data/app/code-checker/test-extends.php8
-rw-r--r--tests/data/app/code-checker/test-identical-operator.php13
-rw-r--r--tests/data/app/code-checker/test-implements.php9
-rw-r--r--tests/data/app/code-checker/test-new.php10
-rw-r--r--tests/data/app/code-checker/test-not-equal.php11
-rw-r--r--tests/data/app/code-checker/test-static-call.php10
-rw-r--r--tests/data/app/code-checker/test-use.php12
-rw-r--r--tests/data/app/description-multi-lang.xml12
-rw-r--r--tests/data/app/description-single-lang.xml11
-rw-r--r--tests/data/app/expected-info.json35
-rw-r--r--tests/data/app/expected-info.json.license3
-rw-r--r--tests/data/app/invalid-info.xml6
-rw-r--r--tests/data/app/navigation-one-item.json86
-rw-r--r--tests/data/app/navigation-one-item.json.license2
-rw-r--r--tests/data/app/navigation-one-item.xml78
-rw-r--r--tests/data/app/navigation-two-items.json92
-rw-r--r--tests/data/app/navigation-two-items.json.license2
-rw-r--r--tests/data/app/navigation-two-items.xml84
-rw-r--r--tests/data/app/valid-info.xml7
-rw-r--r--tests/data/app/various-single-item.json50
-rw-r--r--tests/data/app/various-single-item.json.license2
-rw-r--r--tests/data/app/various-single-item.xml22
37 files changed, 485 insertions, 194 deletions
diff --git a/tests/data/app/code-checker/test-const.php b/tests/data/app/code-checker/test-const.php
deleted file mode 100644
index 7ea3bd6c870..00000000000
--- a/tests/data/app/code-checker/test-const.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * Class BadClass - accessing consts on blacklisted classes is not allowed
- */
-class BadClass {
- public function foo() {
- $bar = \OC_API::ADMIN_AUTH;
- }
-}
diff --git a/tests/data/app/code-checker/test-deprecated-constant-alias.php b/tests/data/app/code-checker/test-deprecated-constant-alias.php
deleted file mode 100644
index b5a5bfdb762..00000000000
--- a/tests/data/app/code-checker/test-deprecated-constant-alias.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-use OCP\NamespaceName\ClassName as Alias;
-
-/**
- * Class BadClass - creating an instance of a blacklisted class is not allowed
- */
-Alias::CONSTANT_NAME;
diff --git a/tests/data/app/code-checker/test-deprecated-constant-sub-alias.php b/tests/data/app/code-checker/test-deprecated-constant-sub-alias.php
deleted file mode 100644
index 9b1757aa683..00000000000
--- a/tests/data/app/code-checker/test-deprecated-constant-sub-alias.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-use OCP\NamespaceName as SubAlias;
-
-/**
- * Class BadClass - creating an instance of a blacklisted class is not allowed
- */
-SubAlias\ClassName::CONSTANT_NAME;
diff --git a/tests/data/app/code-checker/test-deprecated-constant-sub.php b/tests/data/app/code-checker/test-deprecated-constant-sub.php
deleted file mode 100644
index 86e0ff52efe..00000000000
--- a/tests/data/app/code-checker/test-deprecated-constant-sub.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-use OCP\NamespaceName;
-
-/**
- * Class BadClass - creating an instance of a blacklisted class is not allowed
- */
-NamespaceName\ClassName::CONSTANT_NAME;
diff --git a/tests/data/app/code-checker/test-deprecated-constant.php b/tests/data/app/code-checker/test-deprecated-constant.php
deleted file mode 100644
index 170b1d9e5ad..00000000000
--- a/tests/data/app/code-checker/test-deprecated-constant.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-/**
- * Class BadClass - creating an instance of a blacklisted class is not allowed
- */
-\OCP\NamespaceName\ClassName::CONSTANT_NAME;
diff --git a/tests/data/app/code-checker/test-deprecated-function-alias.php b/tests/data/app/code-checker/test-deprecated-function-alias.php
deleted file mode 100644
index 28ed5051191..00000000000
--- a/tests/data/app/code-checker/test-deprecated-function-alias.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-use OCP\NamespaceName\ClassName as Alias;
-
-Alias::functionName();
-Alias::methodName();
diff --git a/tests/data/app/code-checker/test-deprecated-function-sub-alias.php b/tests/data/app/code-checker/test-deprecated-function-sub-alias.php
deleted file mode 100644
index 73dd5814531..00000000000
--- a/tests/data/app/code-checker/test-deprecated-function-sub-alias.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-use OCP\NamespaceName as SubAlias;
-
-SubAlias\ClassName::functionName();
-SubAlias\ClassName::methodName();
diff --git a/tests/data/app/code-checker/test-deprecated-function-sub.php b/tests/data/app/code-checker/test-deprecated-function-sub.php
deleted file mode 100644
index c08d3bad8c0..00000000000
--- a/tests/data/app/code-checker/test-deprecated-function-sub.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-
-use OCP\NamespaceName;
-
-NamespaceName\ClassName::functionName();
-NamespaceName\ClassName::methodName();
diff --git a/tests/data/app/code-checker/test-deprecated-function.php b/tests/data/app/code-checker/test-deprecated-function.php
deleted file mode 100644
index 12a144a7118..00000000000
--- a/tests/data/app/code-checker/test-deprecated-function.php
+++ /dev/null
@@ -1,4 +0,0 @@
-<?php
-
-\OCP\NamespaceName\ClassName::functionName();
-\OCP\NamespaceName\ClassName::methodName();
diff --git a/tests/data/app/code-checker/test-deprecated-method.php b/tests/data/app/code-checker/test-deprecated-method.php
deleted file mode 100644
index ee2fdb642d4..00000000000
--- a/tests/data/app/code-checker/test-deprecated-method.php
+++ /dev/null
@@ -1,5 +0,0 @@
-<?php
-
-$class = new \OCP\NamespaceName\ClassName();
-$class->methodName();
-$class::methodName();
diff --git a/tests/data/app/code-checker/test-deprecated-use-alias.php b/tests/data/app/code-checker/test-deprecated-use-alias.php
deleted file mode 100644
index a92187fa880..00000000000
--- a/tests/data/app/code-checker/test-deprecated-use-alias.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-use OCP\AppFramework\IApi as OAFIA;
-
-/**
- * Class BadClass - creating an instance of a blacklisted class is not allowed
- */
-class BadClass implements OAFIA {
-}
diff --git a/tests/data/app/code-checker/test-deprecated-use-sub-alias.php b/tests/data/app/code-checker/test-deprecated-use-sub-alias.php
deleted file mode 100644
index 9da4b75d216..00000000000
--- a/tests/data/app/code-checker/test-deprecated-use-sub-alias.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-use OCP\AppFramework as OAF;
-
-/**
- * Class BadClass - creating an instance of a blacklisted class is not allowed
- */
-class BadClass implements OAF\IApi {
-}
diff --git a/tests/data/app/code-checker/test-deprecated-use-sub.php b/tests/data/app/code-checker/test-deprecated-use-sub.php
deleted file mode 100644
index a53e9a7229e..00000000000
--- a/tests/data/app/code-checker/test-deprecated-use-sub.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-use OCP\AppFramework;
-
-/**
- * Class BadClass - creating an instance of a blacklisted class is not allowed
- */
-class BadClass implements AppFramework\IApi {
-}
diff --git a/tests/data/app/code-checker/test-deprecated-use.php b/tests/data/app/code-checker/test-deprecated-use.php
deleted file mode 100644
index ebf2c90bc5a..00000000000
--- a/tests/data/app/code-checker/test-deprecated-use.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-use OCP\AppFramework\IApi;
-
-/**
- * Class BadClass - creating an instance of a blacklisted class is not allowed
- */
-class BadClass implements IApi {
-}
diff --git a/tests/data/app/code-checker/test-equal.php b/tests/data/app/code-checker/test-equal.php
deleted file mode 100644
index 90543ba7258..00000000000
--- a/tests/data/app/code-checker/test-equal.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * Class BadClass - uses equal instead of identical operator
- */
-class BadClass {
- public function foo() {
- if (true == false) {
- }
- }
-}
diff --git a/tests/data/app/code-checker/test-extends.php b/tests/data/app/code-checker/test-extends.php
deleted file mode 100644
index 39d29da92dc..00000000000
--- a/tests/data/app/code-checker/test-extends.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-/**
- * Class BadClass - sub class a forbidden class is not allowed
- */
-class BadClass extends OC_Hook {
-
-}
diff --git a/tests/data/app/code-checker/test-identical-operator.php b/tests/data/app/code-checker/test-identical-operator.php
deleted file mode 100644
index 4c7641ede89..00000000000
--- a/tests/data/app/code-checker/test-identical-operator.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-/**
- * Class GoodClass - uses identical operator
- */
-class GoodClass {
- public function foo() {
- if (true === false) {
- }
- if (true !== false) {
- }
- }
-}
diff --git a/tests/data/app/code-checker/test-implements.php b/tests/data/app/code-checker/test-implements.php
deleted file mode 100644
index 3bf2f959b52..00000000000
--- a/tests/data/app/code-checker/test-implements.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-/**
- * Class BadClass - sub class a forbidden class is not allowed
- * NOTE: lowercase typo is intended
- */
-class BadClass implements oC_Avatar {
-
-}
diff --git a/tests/data/app/code-checker/test-new.php b/tests/data/app/code-checker/test-new.php
deleted file mode 100644
index 0522d473d96..00000000000
--- a/tests/data/app/code-checker/test-new.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * Class BadClass - creating an instance of a blacklisted class is not allowed
- */
-class BadClass {
- public function foo() {
- $bar = new OC_AppConfig();
- }
-}
diff --git a/tests/data/app/code-checker/test-not-equal.php b/tests/data/app/code-checker/test-not-equal.php
deleted file mode 100644
index d9a8d1c25c6..00000000000
--- a/tests/data/app/code-checker/test-not-equal.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-/**
- * Class BadClass - uses equal instead of identical operator
- */
-class BadClass {
- public function foo() {
- if (true != false) {
- }
- }
-}
diff --git a/tests/data/app/code-checker/test-static-call.php b/tests/data/app/code-checker/test-static-call.php
deleted file mode 100644
index 4afe0b1174d..00000000000
--- a/tests/data/app/code-checker/test-static-call.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-/**
- * Class BadClass - calling static methods on blacklisted classes is not allowed
- */
-class BadClass {
- public function foo() {
- OC_App::isEnabled('bar');
- }
-}
diff --git a/tests/data/app/code-checker/test-use.php b/tests/data/app/code-checker/test-use.php
deleted file mode 100644
index 9c4824f9767..00000000000
--- a/tests/data/app/code-checker/test-use.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-use OC_AppConfig as UseConfig;
-
-/**
- * Class BadClass - creating an instance of a blacklisted class is not allowed
- */
-class BadClass {
- public function foo() {
- $bar = new UseConfig();
- }
-}
diff --git a/tests/data/app/description-multi-lang.xml b/tests/data/app/description-multi-lang.xml
new file mode 100644
index 00000000000..be1dd616a99
--- /dev/null
+++ b/tests/data/app/description-multi-lang.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!--
+ - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<info>
+ <id>files_encryption</id>
+ <name>Server-side Encryption</name>
+ <description lang="en">English</description>
+ <description lang="de">German</description>
+ <licence>AGPL</licence>
+</info>
diff --git a/tests/data/app/description-single-lang.xml b/tests/data/app/description-single-lang.xml
new file mode 100644
index 00000000000..36fb2aacbe2
--- /dev/null
+++ b/tests/data/app/description-single-lang.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<!--
+ - SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<info>
+ <id>files_encryption</id>
+ <name>Server-side Encryption</name>
+ <description lang="en">English</description>
+ <licence>AGPL</licence>
+</info>
diff --git a/tests/data/app/expected-info.json b/tests/data/app/expected-info.json
index d86ffed482b..40ba6104104 100644
--- a/tests/data/app/expected-info.json
+++ b/tests/data/app/expected-info.json
@@ -6,14 +6,15 @@
"name": "Server-side Encryption",
"description": "\n\tThis application encrypts all files accessed by ownCloud at rest, wherever they are stored. As an example, with this application enabled, external cloud based Amazon S3 storage will be encrypted, protecting this data on storage outside of the control of the Admin. When this application is enabled for the first time, all files are encrypted as users log in and are prompted for their password. The recommended recovery key option enables recovery of files in case the key is lost. \n\tNote that this app encrypts all files that are touched by ownCloud, so external storage providers and applications such as SharePoint will see new files encrypted when they are accessed. Encryption is based on AES 128 or 256 bit keys. More information is available in the Encryption documentation \n\t",
"licence": "AGPL",
- "author": "Sam Tuke, Bjoern Schiessle, Florin Peter",
+ "author": [
+ "Sam Tuke, Bjoern Schiessle, Florin Peter"
+ ],
"requiremin": "4",
"shipped": "true",
"documentation": {
- "user": "https://docs.example.com/server/go.php?to=user-encryption",
- "admin": "https://docs.example.com/server/go.php?to=admin-encryption"
+ "user": "user-encryption",
+ "admin": "admin-encryption"
},
- "rememberlogin": "false",
"types": ["filesystem"],
"ocsid": "166047",
"dependencies": {
@@ -66,6 +67,30 @@
"min-version": "7.0.1",
"max-version": "8"
}
- }
+ },
+ "backend": [
+ "caldav"
+ ]
+ },
+ "repair-steps": {
+ "install": [],
+ "pre-migration": [],
+ "post-migration": [],
+ "live-migration": [],
+ "uninstall": []
+ },
+ "background-jobs": [],
+ "two-factor-providers": [],
+ "commands": [],
+ "activity": {
+ "filters": [],
+ "settings": [],
+ "providers": []
+ },
+ "settings": {
+ "admin": [],
+ "admin-section": [],
+ "personal": [],
+ "personal-section": []
}
}
diff --git a/tests/data/app/expected-info.json.license b/tests/data/app/expected-info.json.license
new file mode 100644
index 00000000000..328cbf7b249
--- /dev/null
+++ b/tests/data/app/expected-info.json.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+SPDX-License-Identifier: AGPL-3.0-only
diff --git a/tests/data/app/invalid-info.xml b/tests/data/app/invalid-info.xml
index 3947f5420c2..1c39ae2d625 100644
--- a/tests/data/app/invalid-info.xml
+++ b/tests/data/app/invalid-info.xml
@@ -1,4 +1,9 @@
<?xml version="1.0"?>
+<!--
+ - SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-FileCopyrightText: 2014 ownCloud, Inc.
+ - SPDX-License-Identifier: AGPL-3.0-only
+-->
<info
<id>files_encryption</id>
<name>Server-side Encryption</name>
@@ -14,7 +19,6 @@
<user>user-encryption</user>
<admin>admin-encryption</admin>
</documentation>
- <rememberlogin>false</rememberlogin>
<types>
<filesystem/>
</types>
diff --git a/tests/data/app/navigation-one-item.json b/tests/data/app/navigation-one-item.json
new file mode 100644
index 00000000000..2bd81461586
--- /dev/null
+++ b/tests/data/app/navigation-one-item.json
@@ -0,0 +1,86 @@
+{
+ "id": "activity",
+ "name": "Activity",
+ "summary": "This application enables users to view actions related to their files in Nextcloud.",
+ "description": "\n\t\tThis application enables users to view actions related to their files in Nextcloud.\n\t\tOnce enabled, users will see a new icon \u201cActivity\u201d in their apps menu.\n\t\tWhen clicked, a new page appears for users to track the activity related to files \u2013 from new files, to deleted files, move, rename, updates and shared activity.\n\t\tThe user can configure their individual activity settings in their personal menu.\n\t\tThis sets the type of activity to record, as well as whether to the user sees their own activities,\n\t\twhether these are only available online, and whether they get an email digest on a regular basis.\n\t\tMore information is available in the Activity documentation.\n\t",
+ "version": "2.9.0",
+ "licence": "agpl",
+ "author": [
+ "Frank Karlitschek",
+ "Joas Schilling"
+ ],
+ "default_enable": "",
+ "types": [
+ "filesystem"
+ ],
+ "documentation": {
+ "admin": "https:\/\/docs.nextcloud.org\/server\/14\/admin_manual\/configuration_server\/activity_configuration.html"
+ },
+ "category": [
+ "monitoring",
+ "social"
+ ],
+ "website": "https:\/\/github.com\/nextcloud\/activity\/",
+ "bugs": "https:\/\/github.com\/nextcloud\/activity\/issues",
+ "repository": "https:\/\/github.com\/nextcloud\/activity.git",
+ "dependencies": {
+ "nextcloud": {
+ "@attributes": {
+ "min-version": "16",
+ "max-version": "16"
+ }
+ },
+ "backend": []
+ },
+ "background-jobs": [
+ "OCA\\Activity\\BackgroundJob\\EmailNotification",
+ "OCA\\Activity\\BackgroundJob\\ExpireActivities"
+ ],
+ "commands": {
+ "command": "OCA\\Activity\\Command\\SendEmails"
+ },
+ "settings": {
+ "admin": [
+ "OCA\\Activity\\Settings\\Admin"
+ ],
+ "admin-section": [
+ "OCA\\Activity\\Settings\\AdminSection"
+ ],
+ "personal": [
+ "OCA\\Activity\\Settings\\Personal"
+ ],
+ "personal-section": [
+ "OCA\\Activity\\Settings\\PersonalSection"
+ ]
+ },
+ "activity": {
+ "filters": [
+ "OCA\\Activity\\Filter\\AllFilter",
+ "OCA\\Activity\\Filter\\SelfFilter",
+ "OCA\\Activity\\Filter\\ByFilter"
+ ],
+ "settings": [],
+ "providers": []
+ },
+ "navigations": {
+ "navigation": [
+ {
+ "name": "Activity",
+ "route": "activity.Activities.showList",
+ "icon": "activity.svg",
+ "order": "1"
+ }
+ ]
+ },
+ "info": [],
+ "remote": [],
+ "public": [],
+ "repair-steps": {
+ "install": [],
+ "pre-migration": [],
+ "post-migration": [],
+ "live-migration": [],
+ "uninstall": []
+ },
+ "two-factor-providers": []
+}
diff --git a/tests/data/app/navigation-one-item.json.license b/tests/data/app/navigation-one-item.json.license
new file mode 100644
index 00000000000..cbd71b0f672
--- /dev/null
+++ b/tests/data/app/navigation-one-item.json.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/tests/data/app/navigation-one-item.xml b/tests/data/app/navigation-one-item.xml
new file mode 100644
index 00000000000..cb0bd5f2929
--- /dev/null
+++ b/tests/data/app/navigation-one-item.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0"?>
+<!--
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
+ <id>activity</id>
+ <name>Activity</name>
+ <summary>This application enables users to view actions related to their files in Nextcloud.</summary>
+ <description>
+ This application enables users to view actions related to their files in Nextcloud.
+ Once enabled, users will see a new icon “Activity” in their apps menu.
+ When clicked, a new page appears for users to track the activity related to files – from new files, to deleted files, move, rename, updates and shared activity.
+ The user can configure their individual activity settings in their personal menu.
+ This sets the type of activity to record, as well as whether to the user sees their own activities,
+ whether these are only available online, and whether they get an email digest on a regular basis.
+ More information is available in the Activity documentation.
+ </description>
+
+ <version>2.9.0</version>
+ <licence>agpl</licence>
+ <author>Frank Karlitschek</author>
+ <author>Joas Schilling</author>
+
+ <default_enable/>
+ <types>
+ <filesystem/>
+ </types>
+
+ <documentation>
+ <admin>https://docs.nextcloud.org/server/14/admin_manual/configuration_server/activity_configuration.html</admin>
+ </documentation>
+
+ <category>monitoring</category>
+ <category>social</category>
+
+ <website>https://github.com/nextcloud/activity/</website>
+ <bugs>https://github.com/nextcloud/activity/issues</bugs>
+ <repository>https://github.com/nextcloud/activity.git</repository>
+
+ <dependencies>
+ <nextcloud min-version="16" max-version="16"/>
+ </dependencies>
+
+ <background-jobs>
+ <job>OCA\Activity\BackgroundJob\EmailNotification</job>
+ <job>OCA\Activity\BackgroundJob\ExpireActivities</job>
+ </background-jobs>
+
+ <commands>
+ <command>OCA\Activity\Command\SendEmails</command>
+ </commands>
+
+ <settings>
+ <admin>OCA\Activity\Settings\Admin</admin>
+ <admin-section>OCA\Activity\Settings\AdminSection</admin-section>
+ <personal>OCA\Activity\Settings\Personal</personal>
+ <personal-section>OCA\Activity\Settings\PersonalSection</personal-section>
+ </settings>
+
+ <activity>
+ <filters>
+ <filter>OCA\Activity\Filter\AllFilter</filter>
+ <filter>OCA\Activity\Filter\SelfFilter</filter>
+ <filter>OCA\Activity\Filter\ByFilter</filter>
+ </filters>
+ </activity>
+
+ <navigations>
+ <navigation>
+ <name>Activity</name>
+ <route>activity.Activities.showList</route>
+ <icon>activity.svg</icon>
+ <order>1</order>
+ </navigation>
+ </navigations>
+</info>
diff --git a/tests/data/app/navigation-two-items.json b/tests/data/app/navigation-two-items.json
new file mode 100644
index 00000000000..4b081d3bbd9
--- /dev/null
+++ b/tests/data/app/navigation-two-items.json
@@ -0,0 +1,92 @@
+{
+ "id": "activity",
+ "name": "Activity",
+ "summary": "This application enables users to view actions related to their files in Nextcloud.",
+ "description": "\n\t\tThis application enables users to view actions related to their files in Nextcloud.\n\t\tOnce enabled, users will see a new icon \u201cActivity\u201d in their apps menu.\n\t\tWhen clicked, a new page appears for users to track the activity related to files \u2013 from new files, to deleted files, move, rename, updates and shared activity.\n\t\tThe user can configure their individual activity settings in their personal menu.\n\t\tThis sets the type of activity to record, as well as whether to the user sees their own activities,\n\t\twhether these are only available online, and whether they get an email digest on a regular basis.\n\t\tMore information is available in the Activity documentation.\n\t",
+ "version": "2.9.0",
+ "licence": "agpl",
+ "author": [
+ "Frank Karlitschek",
+ "Joas Schilling"
+ ],
+ "default_enable": "",
+ "types": [
+ "filesystem"
+ ],
+ "documentation": {
+ "admin": "https:\/\/docs.nextcloud.org\/server\/14\/admin_manual\/configuration_server\/activity_configuration.html"
+ },
+ "category": [
+ "monitoring",
+ "social"
+ ],
+ "website": "https:\/\/github.com\/nextcloud\/activity\/",
+ "bugs": "https:\/\/github.com\/nextcloud\/activity\/issues",
+ "repository": "https:\/\/github.com\/nextcloud\/activity.git",
+ "dependencies": {
+ "nextcloud": {
+ "@attributes": {
+ "min-version": "16",
+ "max-version": "16"
+ }
+ },
+ "backend": []
+ },
+ "background-jobs": [
+ "OCA\\Activity\\BackgroundJob\\EmailNotification",
+ "OCA\\Activity\\BackgroundJob\\ExpireActivities"
+ ],
+ "commands": {
+ "command": "OCA\\Activity\\Command\\SendEmails"
+ },
+ "settings": {
+ "admin": [
+ "OCA\\Activity\\Settings\\Admin"
+ ],
+ "admin-section": [
+ "OCA\\Activity\\Settings\\AdminSection"
+ ],
+ "personal": [
+ "OCA\\Activity\\Settings\\Personal"
+ ],
+ "personal-section": [
+ "OCA\\Activity\\Settings\\PersonalSection"
+ ]
+ },
+ "activity": {
+ "filters": [
+ "OCA\\Activity\\Filter\\AllFilter",
+ "OCA\\Activity\\Filter\\SelfFilter",
+ "OCA\\Activity\\Filter\\ByFilter"
+ ],
+ "settings": [],
+ "providers": []
+ },
+ "navigations": {
+ "navigation": [
+ {
+ "name": "Activity",
+ "route": "activity.Activities.showList",
+ "icon": "activity.svg",
+ "order": "1"
+ },
+ {
+ "name": "Activity-Test",
+ "route": "activity.Activities.showList",
+ "icon": "activity.svg",
+ "order": "2"
+ }
+ ]
+ },
+ "info": [],
+ "remote": [],
+ "public": [],
+ "repair-steps": {
+ "install": [],
+ "pre-migration": [],
+ "post-migration": [],
+ "live-migration": [],
+ "uninstall": []
+ },
+ "two-factor-providers": []
+}
diff --git a/tests/data/app/navigation-two-items.json.license b/tests/data/app/navigation-two-items.json.license
new file mode 100644
index 00000000000..cbd71b0f672
--- /dev/null
+++ b/tests/data/app/navigation-two-items.json.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/tests/data/app/navigation-two-items.xml b/tests/data/app/navigation-two-items.xml
new file mode 100644
index 00000000000..153e12e6511
--- /dev/null
+++ b/tests/data/app/navigation-two-items.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0"?>
+<!--
+ - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
+ <id>activity</id>
+ <name>Activity</name>
+ <summary>This application enables users to view actions related to their files in Nextcloud.</summary>
+ <description>
+ This application enables users to view actions related to their files in Nextcloud.
+ Once enabled, users will see a new icon “Activity” in their apps menu.
+ When clicked, a new page appears for users to track the activity related to files – from new files, to deleted files, move, rename, updates and shared activity.
+ The user can configure their individual activity settings in their personal menu.
+ This sets the type of activity to record, as well as whether to the user sees their own activities,
+ whether these are only available online, and whether they get an email digest on a regular basis.
+ More information is available in the Activity documentation.
+ </description>
+
+ <version>2.9.0</version>
+ <licence>agpl</licence>
+ <author>Frank Karlitschek</author>
+ <author>Joas Schilling</author>
+
+ <default_enable/>
+ <types>
+ <filesystem/>
+ </types>
+
+ <documentation>
+ <admin>https://docs.nextcloud.org/server/14/admin_manual/configuration_server/activity_configuration.html</admin>
+ </documentation>
+
+ <category>monitoring</category>
+ <category>social</category>
+
+ <website>https://github.com/nextcloud/activity/</website>
+ <bugs>https://github.com/nextcloud/activity/issues</bugs>
+ <repository>https://github.com/nextcloud/activity.git</repository>
+
+ <dependencies>
+ <nextcloud min-version="16" max-version="16"/>
+ </dependencies>
+
+ <background-jobs>
+ <job>OCA\Activity\BackgroundJob\EmailNotification</job>
+ <job>OCA\Activity\BackgroundJob\ExpireActivities</job>
+ </background-jobs>
+
+ <commands>
+ <command>OCA\Activity\Command\SendEmails</command>
+ </commands>
+
+ <settings>
+ <admin>OCA\Activity\Settings\Admin</admin>
+ <admin-section>OCA\Activity\Settings\AdminSection</admin-section>
+ <personal>OCA\Activity\Settings\Personal</personal>
+ <personal-section>OCA\Activity\Settings\PersonalSection</personal-section>
+ </settings>
+
+ <activity>
+ <filters>
+ <filter>OCA\Activity\Filter\AllFilter</filter>
+ <filter>OCA\Activity\Filter\SelfFilter</filter>
+ <filter>OCA\Activity\Filter\ByFilter</filter>
+ </filters>
+ </activity>
+
+ <navigations>
+ <navigation>
+ <name>Activity</name>
+ <route>activity.Activities.showList</route>
+ <icon>activity.svg</icon>
+ <order>1</order>
+ </navigation>
+ <navigation>
+ <name>Activity-Test</name>
+ <route>activity.Activities.showList</route>
+ <icon>activity.svg</icon>
+ <order>2</order>
+ </navigation>
+ </navigations>
+</info>
diff --git a/tests/data/app/valid-info.xml b/tests/data/app/valid-info.xml
index 4b22d55d7bc..d2569788399 100644
--- a/tests/data/app/valid-info.xml
+++ b/tests/data/app/valid-info.xml
@@ -1,4 +1,9 @@
<?xml version="1.0"?>
+<!--
+ - SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-FileCopyrightText: 2014 ownCloud, Inc.
+ - SPDX-License-Identifier: AGPL-3.0-only
+-->
<info>
<id>files_encryption</id>
<name>Server-side Encryption</name>
@@ -14,7 +19,6 @@
<user>user-encryption</user>
<admin>admin-encryption</admin>
</documentation>
- <rememberlogin>false</rememberlogin>
<types>
<filesystem/>
</types>
@@ -30,5 +34,6 @@
<lib>curl</lib>
<os>Linux</os>
<owncloud min-version="7.0.1" max-version="8" />
+ <backend>caldav</backend>
</dependencies>
</info>
diff --git a/tests/data/app/various-single-item.json b/tests/data/app/various-single-item.json
new file mode 100644
index 00000000000..ae5e751ab49
--- /dev/null
+++ b/tests/data/app/various-single-item.json
@@ -0,0 +1,50 @@
+{
+ "id": "notifications",
+ "name": "Notifications",
+ "description": "A single screenshot should be an array",
+ "version": "1.0.0",
+ "licence": "agpl",
+ "author": [
+ "Joas Schilling"
+ ],
+ "dependencies": {
+ "nextcloud": {
+ "@attributes": {
+ "min-version": "16",
+ "max-version": "16"
+ }
+ },
+ "backend": []
+ },
+ "screenshot": [
+ "https://raw.githubusercontent.com/nextcloud/notifications/refs/heads/master/docs/screenshot.png"
+ ],
+ "category": [
+ "monitoring"
+ ],
+ "info": [],
+ "background-jobs": [],
+ "activity": {
+ "filters": [],
+ "settings": [],
+ "providers": []
+ },
+ "commands": [],
+ "remote": [],
+ "public": [],
+ "repair-steps": {
+ "install": [],
+ "pre-migration": [],
+ "post-migration": [],
+ "live-migration": [],
+ "uninstall": []
+ },
+ "settings": {
+ "admin": [],
+ "admin-section": [],
+ "personal": [],
+ "personal-section": []
+ },
+ "two-factor-providers": [],
+ "types": []
+}
diff --git a/tests/data/app/various-single-item.json.license b/tests/data/app/various-single-item.json.license
new file mode 100644
index 00000000000..84f7e70446e
--- /dev/null
+++ b/tests/data/app/various-single-item.json.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/tests/data/app/various-single-item.xml b/tests/data/app/various-single-item.xml
new file mode 100644
index 00000000000..cb9595516e1
--- /dev/null
+++ b/tests/data/app/various-single-item.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!--
+ - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ - SPDX-License-Identifier: AGPL-3.0-or-later
+-->
+<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
+ <id>notifications</id>
+ <name>Notifications</name>
+ <description>A single screenshot should be an array</description>
+ <version>1.0.0</version>
+ <licence>agpl</licence>
+ <author>Joas Schilling</author>
+
+ <category>monitoring</category>
+
+ <screenshot>https://raw.githubusercontent.com/nextcloud/notifications/refs/heads/master/docs/screenshot.png</screenshot>
+
+ <dependencies>
+ <nextcloud min-version="16" max-version="16"/>
+ </dependencies>
+</info>