Browse Source

Add install logic for enable command

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
Daniel Kesselberg 5 years ago
parent
commit
75b7d6ae4e

+ 0 - 2
build/integration/run.sh

@@ -48,8 +48,6 @@ export TEST_SERVER_FED_URL="http://localhost:$PORT_FED/ocs/"
 if [ "$INSTALLED" == "true" ]; then
 
     #Enable external storage app
-    $OCC app:install --keep-disabled files_external
-    $OCC app:install --keep-disabled user_ldap
     $OCC app:enable files_external user_ldap
 
     mkdir -p work/local_storage

+ 11 - 0
core/Command/App/Enable.php

@@ -26,6 +26,7 @@
 
 namespace OC\Core\Command\App;
 
+use OC\Installer;
 use OCP\App\AppPathNotFoundException;
 use OCP\App\IAppManager;
 use OCP\IGroup;
@@ -97,7 +98,17 @@ class Enable extends Command implements CompletionAwareInterface {
 			return $group->getDisplayName();
 		}, $groupIds);
 
+
 		try {
+			/** @var Installer $installer */
+			$installer = \OC::$server->query(Installer::class);
+
+			if (false === $installer->isDownloaded($appId)) {
+				$installer->downloadApp($appId);
+			}
+
+			$installer->installApp($appId);
+
 			if ($groupIds === []) {
 				$this->appManager->enableApp($appId);
 				$output->writeln($appId . ' enabled');

+ 3 - 3
tests/Core/Command/Apps/AppsEnableTest.php

@@ -74,10 +74,10 @@ class AppsEnableTest extends TestCase {
 		return [
 			[['admin_audit'], null, 0, 'admin_audit enabled'],
 			[['comments'], null, 0, 'comments enabled'],
-			[['invalid_app'], null, 1, 'invalid_app not found'],
+			[['invalid_app'], null, 1, 'Could not download app invalid_app'],
 
 			[['admin_audit', 'comments'], null, 0, "admin_audit enabled\ncomments enabled"],
-			[['admin_audit', 'comments', 'invalid_app'], null, 1, "admin_audit enabled\ncomments enabled\ninvalid_app not found"],
+			[['admin_audit', 'comments', 'invalid_app'], null, 1, "admin_audit enabled\ncomments enabled\nCould not download app invalid_app"],
 
 			[['admin_audit'], ['admin'], 1, "admin_audit can't be enabled for groups"],
 			[['comments'], ['admin'], 1, "comments can't be enabled for groups"],
@@ -87,7 +87,7 @@ class AppsEnableTest extends TestCase {
 
 			[['updatenotification'], ['admin', 'invalid_group'], 0, 'updatenotification enabled for groups: admin'],
 			[['updatenotification', 'logreader'], ['admin', 'invalid_group'], 0, "updatenotification enabled for groups: admin\nlogreader enabled for groups: admin"],
-			[['updatenotification', 'logreader', 'invalid_app'], ['admin', 'invalid_group'], 0, "updatenotification enabled for groups: admin\nlogreader enabled for groups: admin"],
+			[['updatenotification', 'logreader', 'invalid_app'], ['admin', 'invalid_group'], 1, "updatenotification enabled for groups: admin\nlogreader enabled for groups: admin\nCould not download app invalid_app"],
 		];
 	}
 }