Merge pull request #21473 from owncloud/fix-unit-tests-because-appstore
Inject OCSClient - Fixes master unit tests
This commit is contained in:
commit
12b0e9e3bd
|
@ -62,7 +62,8 @@ API::register('get', '/cloud/groups/{groupid}/subadmins', [$groups, 'getSubAdmin
|
||||||
|
|
||||||
// Apps
|
// Apps
|
||||||
$apps = new \OCA\Provisioning_API\Apps(
|
$apps = new \OCA\Provisioning_API\Apps(
|
||||||
\OC::$server->getAppManager()
|
\OC::$server->getAppManager(),
|
||||||
|
\OC::$server->getOcsClient()
|
||||||
);
|
);
|
||||||
API::register('get', '/cloud/apps', [$apps, 'getApps'], 'provisioning_api', API::ADMIN_AUTH);
|
API::register('get', '/cloud/apps', [$apps, 'getApps'], 'provisioning_api', API::ADMIN_AUTH);
|
||||||
API::register('get', '/cloud/apps/{appid}', [$apps, 'getAppInfo'], 'provisioning_api', API::ADMIN_AUTH);
|
API::register('get', '/cloud/apps/{appid}', [$apps, 'getAppInfo'], 'provisioning_api', API::ADMIN_AUTH);
|
||||||
|
|
|
@ -25,19 +25,23 @@
|
||||||
|
|
||||||
namespace OCA\Provisioning_API;
|
namespace OCA\Provisioning_API;
|
||||||
|
|
||||||
|
use OC\OCSClient;
|
||||||
use \OC_OCS_Result;
|
use \OC_OCS_Result;
|
||||||
use \OC_App;
|
use \OC_App;
|
||||||
|
|
||||||
class Apps {
|
class Apps {
|
||||||
|
|
||||||
/** @var \OCP\App\IAppManager */
|
/** @var \OCP\App\IAppManager */
|
||||||
private $appManager;
|
private $appManager;
|
||||||
|
/** @var OCSClient */
|
||||||
|
private $ocsClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \OCP\App\IAppManager $appManager
|
* @param \OCP\App\IAppManager $appManager
|
||||||
*/
|
*/
|
||||||
public function __construct(\OCP\App\IAppManager $appManager) {
|
public function __construct(\OCP\App\IAppManager $appManager,
|
||||||
|
OCSClient $ocsClient) {
|
||||||
$this->appManager = $appManager;
|
$this->appManager = $appManager;
|
||||||
|
$this->ocsClient = $ocsClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -45,7 +49,7 @@ class Apps {
|
||||||
* @return OC_OCS_Result
|
* @return OC_OCS_Result
|
||||||
*/
|
*/
|
||||||
public function getApps($parameters) {
|
public function getApps($parameters) {
|
||||||
$apps = OC_App::listAllApps();
|
$apps = OC_App::listAllApps(false, true, $this->ocsClient);
|
||||||
$list = [];
|
$list = [];
|
||||||
foreach($apps as $app) {
|
foreach($apps as $app) {
|
||||||
$list[] = $app['id'];
|
$list[] = $app['id'];
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace OCA\Provisioning_API\Tests;
|
namespace OCA\Provisioning_API\Tests;
|
||||||
|
use OC\OCSClient;
|
||||||
use OCA\Provisioning_API\Apps;
|
use OCA\Provisioning_API\Apps;
|
||||||
use OCP\API;
|
use OCP\API;
|
||||||
use OCP\App\IAppManager;
|
use OCP\App\IAppManager;
|
||||||
|
@ -36,42 +37,43 @@ use OCP\IUserSession;
|
||||||
* @package OCA\Provisioning_API\Tests
|
* @package OCA\Provisioning_API\Tests
|
||||||
*/
|
*/
|
||||||
class AppsTest extends TestCase {
|
class AppsTest extends TestCase {
|
||||||
|
|
||||||
/** @var IAppManager */
|
/** @var IAppManager */
|
||||||
private $appManager;
|
private $appManager;
|
||||||
|
|
||||||
/** @var Apps */
|
/** @var Apps */
|
||||||
private $api;
|
private $api;
|
||||||
|
|
||||||
/** @var IUserSession */
|
/** @var IUserSession */
|
||||||
private $userSession;
|
private $userSession;
|
||||||
|
/** @var OCSClient */
|
||||||
|
private $ocsClient;
|
||||||
|
|
||||||
public function setup() {
|
public function setup() {
|
||||||
parent::setup();
|
parent::setup();
|
||||||
$this->appManager = \OC::$server->getAppManager();
|
$this->appManager = \OC::$server->getAppManager();
|
||||||
$this->groupManager = \OC::$server->getGroupManager();
|
$this->groupManager = \OC::$server->getGroupManager();
|
||||||
$this->userSession = \OC::$server->getUserSession();
|
$this->userSession = \OC::$server->getUserSession();
|
||||||
$this->api = new Apps($this->appManager);
|
$this->ocsClient = $this->getMockBuilder('\OC\OCSClient')
|
||||||
|
->disableOriginalConstructor()->getMock();
|
||||||
|
$this->api = new Apps($this->appManager, $this->ocsClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetAppInfo() {
|
public function testGetAppInfo() {
|
||||||
$result = $this->api->getAppInfo(['appid' => 'provisioning_api']);
|
$result = $this->api->getAppInfo(['appid' => 'provisioning_api']);
|
||||||
$this->assertInstanceOf('OC_OCS_Result', $result);
|
$this->assertInstanceOf('OC_OCS_Result', $result);
|
||||||
$this->assertTrue($result->succeeded());
|
$this->assertTrue($result->succeeded());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetAppInfoOnBadAppID() {
|
public function testGetAppInfoOnBadAppID() {
|
||||||
|
|
||||||
$result = $this->api->getAppInfo(['appid' => 'not_provisioning_api']);
|
$result = $this->api->getAppInfo(['appid' => 'not_provisioning_api']);
|
||||||
$this->assertInstanceOf('OC_OCS_Result', $result);
|
$this->assertInstanceOf('OC_OCS_Result', $result);
|
||||||
$this->assertFalse($result->succeeded());
|
$this->assertFalse($result->succeeded());
|
||||||
$this->assertEquals(API::RESPOND_NOT_FOUND, $result->getStatusCode());
|
$this->assertEquals(API::RESPOND_NOT_FOUND, $result->getStatusCode());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetApps() {
|
public function testGetApps() {
|
||||||
|
$this->ocsClient
|
||||||
|
->expects($this->any())
|
||||||
|
->method($this->anything())
|
||||||
|
->will($this->returnValue(null));
|
||||||
$user = $this->generateUsers();
|
$user = $this->generateUsers();
|
||||||
$this->groupManager->get('admin')->addUser($user);
|
$this->groupManager->get('admin')->addUser($user);
|
||||||
$this->userSession->setUser($user);
|
$this->userSession->setUser($user);
|
||||||
|
@ -80,27 +82,27 @@ class AppsTest extends TestCase {
|
||||||
|
|
||||||
$this->assertTrue($result->succeeded());
|
$this->assertTrue($result->succeeded());
|
||||||
$data = $result->getData();
|
$data = $result->getData();
|
||||||
$this->assertEquals(count(\OC_App::listAllApps()), count($data['apps']));
|
$this->assertEquals(count(\OC_App::listAllApps(false, true, $this->ocsClient)), count($data['apps']));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetAppsEnabled() {
|
public function testGetAppsEnabled() {
|
||||||
|
|
||||||
$_GET['filter'] = 'enabled';
|
$_GET['filter'] = 'enabled';
|
||||||
$result = $this->api->getApps(['filter' => 'enabled']);
|
$result = $this->api->getApps(['filter' => 'enabled']);
|
||||||
$this->assertTrue($result->succeeded());
|
$this->assertTrue($result->succeeded());
|
||||||
$data = $result->getData();
|
$data = $result->getData();
|
||||||
$this->assertEquals(count(\OC_App::getEnabledApps()), count($data['apps']));
|
$this->assertEquals(count(\OC_App::getEnabledApps()), count($data['apps']));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetAppsDisabled() {
|
public function testGetAppsDisabled() {
|
||||||
|
$this->ocsClient
|
||||||
|
->expects($this->any())
|
||||||
|
->method($this->anything())
|
||||||
|
->will($this->returnValue(null));
|
||||||
$_GET['filter'] = 'disabled';
|
$_GET['filter'] = 'disabled';
|
||||||
$result = $this->api->getApps(['filter' => 'disabled']);
|
$result = $this->api->getApps(['filter' => 'disabled']);
|
||||||
$this->assertTrue($result->succeeded());
|
$this->assertTrue($result->succeeded());
|
||||||
$data = $result->getData();
|
$data = $result->getData();
|
||||||
$apps = \OC_App::listAllApps();
|
$apps = \OC_App::listAllApps(false, true, $this->ocsClient);
|
||||||
$list = array();
|
$list = array();
|
||||||
foreach($apps as $app) {
|
foreach($apps as $app) {
|
||||||
$list[] = $app['id'];
|
$list[] = $app['id'];
|
||||||
|
|
|
@ -760,9 +760,12 @@ class OC_App {
|
||||||
* @param bool $onlyLocal
|
* @param bool $onlyLocal
|
||||||
* @param bool $includeUpdateInfo Should we check whether there is an update
|
* @param bool $includeUpdateInfo Should we check whether there is an update
|
||||||
* in the app store?
|
* in the app store?
|
||||||
|
* @param OCSClient $ocsClient
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public static function listAllApps($onlyLocal = false, $includeUpdateInfo = true) {
|
public static function listAllApps($onlyLocal = false,
|
||||||
|
$includeUpdateInfo = true,
|
||||||
|
OCSClient $ocsClient) {
|
||||||
$installedApps = OC_App::getAllApps();
|
$installedApps = OC_App::getAllApps();
|
||||||
|
|
||||||
//TODO which apps do we want to blacklist and how do we integrate
|
//TODO which apps do we want to blacklist and how do we integrate
|
||||||
|
@ -825,7 +828,7 @@ class OC_App {
|
||||||
if ($onlyLocal) {
|
if ($onlyLocal) {
|
||||||
$remoteApps = [];
|
$remoteApps = [];
|
||||||
} else {
|
} else {
|
||||||
$remoteApps = OC_App::getAppstoreApps();
|
$remoteApps = OC_App::getAppstoreApps('approved', null, $ocsClient);
|
||||||
}
|
}
|
||||||
if ($remoteApps) {
|
if ($remoteApps) {
|
||||||
// Remove duplicates
|
// Remove duplicates
|
||||||
|
@ -865,20 +868,16 @@ class OC_App {
|
||||||
/**
|
/**
|
||||||
* Get a list of all apps on the appstore
|
* Get a list of all apps on the appstore
|
||||||
* @param string $filter
|
* @param string $filter
|
||||||
* @param string $category
|
* @param string|null $category
|
||||||
|
* @param OCSClient $ocsClient
|
||||||
* @return array|bool multi-dimensional array of apps.
|
* @return array|bool multi-dimensional array of apps.
|
||||||
* Keys: id, name, type, typename, personid, license, detailpage, preview, changed, description
|
* Keys: id, name, type, typename, personid, license, detailpage, preview, changed, description
|
||||||
*/
|
*/
|
||||||
public static function getAppstoreApps($filter = 'approved', $category = null) {
|
public static function getAppstoreApps($filter = 'approved',
|
||||||
|
$category = null,
|
||||||
|
OCSClient $ocsClient) {
|
||||||
$categories = [$category];
|
$categories = [$category];
|
||||||
|
|
||||||
$ocsClient = new OCSClient(
|
|
||||||
\OC::$server->getHTTPClientService(),
|
|
||||||
\OC::$server->getConfig(),
|
|
||||||
\OC::$server->getLogger()
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
if (is_null($category)) {
|
if (is_null($category)) {
|
||||||
$categoryNames = $ocsClient->getCategories(\OCP\Util::getVersion());
|
$categoryNames = $ocsClient->getCategories(\OCP\Util::getVersion());
|
||||||
if (is_array($categoryNames)) {
|
if (is_array($categoryNames)) {
|
||||||
|
|
|
@ -218,7 +218,7 @@ class AppSettingsController extends Controller {
|
||||||
break;
|
break;
|
||||||
// not-installed apps
|
// not-installed apps
|
||||||
case 1:
|
case 1:
|
||||||
$apps = \OC_App::listAllApps(true, $includeUpdateInfo);
|
$apps = \OC_App::listAllApps(true, $includeUpdateInfo, $this->ocsClient);
|
||||||
$apps = array_filter($apps, function ($app) {
|
$apps = array_filter($apps, function ($app) {
|
||||||
return !$app['active'];
|
return !$app['active'];
|
||||||
});
|
});
|
||||||
|
@ -244,7 +244,7 @@ class AppSettingsController extends Controller {
|
||||||
default:
|
default:
|
||||||
$filter = $this->config->getSystemValue('appstore.experimental.enabled', false) ? 'all' : 'approved';
|
$filter = $this->config->getSystemValue('appstore.experimental.enabled', false) ? 'all' : 'approved';
|
||||||
|
|
||||||
$apps = \OC_App::getAppstoreApps($filter, $category);
|
$apps = \OC_App::getAppstoreApps($filter, $category, $this->ocsClient);
|
||||||
if (!$apps) {
|
if (!$apps) {
|
||||||
$apps = array();
|
$apps = array();
|
||||||
} else {
|
} else {
|
||||||
|
@ -310,7 +310,7 @@ class AppSettingsController extends Controller {
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
private function getInstalledApps($includeUpdateInfo = true) {
|
private function getInstalledApps($includeUpdateInfo = true) {
|
||||||
$apps = \OC_App::listAllApps(true, $includeUpdateInfo);
|
$apps = \OC_App::listAllApps(true, $includeUpdateInfo, $this->ocsClient);
|
||||||
$apps = array_filter($apps, function ($app) {
|
$apps = array_filter($apps, function ($app) {
|
||||||
return $app['active'];
|
return $app['active'];
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue