summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/ajax/update.php15
-rw-r--r--lib/private/api.php18
-rw-r--r--lib/private/appframework/dependencyinjection/dicontainer.php4
-rw-r--r--lib/private/ocs/result.php4
-rw-r--r--settings/controller/checksetupcontroller.php4
-rw-r--r--tests/lib/api.php62
6 files changed, 62 insertions, 45 deletions
diff --git a/core/ajax/update.php b/core/ajax/update.php
index 11d159f15d1..2af110deaa4 100644
--- a/core/ajax/update.php
+++ b/core/ajax/update.php
@@ -112,15 +112,18 @@ if (OC::checkUpgrade(false)) {
exit();
}
- if (!empty($incompatibleApps)) {
- $eventSource->send('notice',
- (string)$l->t('Following incompatible apps have been disabled: %s', implode(', ', $incompatibleApps)));
+ $disabledApps = [];
+ foreach ($disabledThirdPartyApps as $app) {
+ $disabledApps[$app] = (string) $l->t('%s (3rdparty)', [$app]);
}
- if (!empty($disabledThirdPartyApps)) {
- $eventSource->send('notice',
- (string)$l->t('Following apps have been disabled: %s', implode(', ', $disabledThirdPartyApps)));
+ foreach ($incompatibleApps as $app) {
+ $disabledApps[$app] = (string) $l->t('%s (incompatible)', [$app]);
}
+ if (!empty($disabledApps)) {
+ $eventSource->send('notice',
+ (string)$l->t('Following apps have been disabled: %s', implode(', ', $disabledApps)));
+ }
} else {
$eventSource->send('notice', (string)$l->t('Already up to date'));
}
diff --git a/lib/private/api.php b/lib/private/api.php
index 10d58f2d9e6..6d7354c7193 100644
--- a/lib/private/api.php
+++ b/lib/private/api.php
@@ -231,7 +231,8 @@ class OC_API {
$picked = reset($shipped['failed']);
$code = $picked['response']->getStatusCode();
$meta = $picked['response']->getMeta();
- $response = new OC_OCS_Result($data, $code, $meta['message']);
+ $headers = $picked['response']->getHeaders();
+ $response = new OC_OCS_Result($data, $code, $meta['message'], $headers);
return $response;
} elseif(!empty($shipped['succeeded'])) {
$responses = array_merge($shipped['succeeded'], $thirdparty['succeeded']);
@@ -244,13 +245,16 @@ class OC_API {
$picked = reset($thirdparty['failed']);
$code = $picked['response']->getStatusCode();
$meta = $picked['response']->getMeta();
- $response = new OC_OCS_Result($data, $code, $meta['message']);
+ $headers = $picked['response']->getHeaders();
+ $response = new OC_OCS_Result($data, $code, $meta['message'], $headers);
return $response;
} else {
$responses = $thirdparty['succeeded'];
}
// Merge the successful responses
- $data = array();
+ $data = [];
+ $codes = [];
+ $header = [];
foreach($responses as $response) {
if($response['shipped']) {
@@ -258,8 +262,9 @@ class OC_API {
} else {
$data = array_merge_recursive($data, $response['response']->getData());
}
- $codes[] = array('code' => $response['response']->getStatusCode(),
- 'meta' => $response['response']->getMeta());
+ $header = array_merge_recursive($header, $response['response']->getHeaders());
+ $codes[] = ['code' => $response['response']->getStatusCode(),
+ 'meta' => $response['response']->getMeta()];
}
// Use any non 100 status codes
@@ -273,8 +278,7 @@ class OC_API {
}
}
- $result = new OC_OCS_Result($data, $statusCode, $statusMessage);
- return $result;
+ return new OC_OCS_Result($data, $statusCode, $statusMessage, $header);
}
/**
diff --git a/lib/private/appframework/dependencyinjection/dicontainer.php b/lib/private/appframework/dependencyinjection/dicontainer.php
index 651b268a35e..de8672bc4cd 100644
--- a/lib/private/appframework/dependencyinjection/dicontainer.php
+++ b/lib/private/appframework/dependencyinjection/dicontainer.php
@@ -226,6 +226,10 @@ class DIContainer extends SimpleContainer implements IAppContainer {
return $this->getServer();
});
+ $this->registerService('OCP\\AppFramework\\IAppContainer', function ($c) {
+ return $c;
+ });
+
// commonly used attributes
$this->registerService('UserId', function ($c) {
return $c->query('OCP\\IUserSession')->getSession()->get('user_id');
diff --git a/lib/private/ocs/result.php b/lib/private/ocs/result.php
index 916e25e45ae..2c3f676510c 100644
--- a/lib/private/ocs/result.php
+++ b/lib/private/ocs/result.php
@@ -51,8 +51,9 @@ class OC_OCS_Result{
* @param mixed $data the data to return
* @param int $code
* @param null|string $message
+ * @param array $headers
*/
- public function __construct($data=null, $code=100, $message=null) {
+ public function __construct($data = null, $code = 100, $message = null, $headers = []) {
if ($data === null) {
$this->data = array();
} elseif (!is_array($data)) {
@@ -62,6 +63,7 @@ class OC_OCS_Result{
}
$this->statusCode = $code;
$this->message = $message;
+ $this->headers = $headers;
}
/**
diff --git a/settings/controller/checksetupcontroller.php b/settings/controller/checksetupcontroller.php
index 2ff55fc72c9..bd0737aacc4 100644
--- a/settings/controller/checksetupcontroller.php
+++ b/settings/controller/checksetupcontroller.php
@@ -195,7 +195,7 @@ class CheckSetupController extends Controller {
return '';
}
-
+
/**
* Whether the php version is still supported (at time of release)
* according to: https://secure.php.net/supported-versions.php
@@ -244,7 +244,7 @@ class CheckSetupController extends Controller {
// there are two different memcached modules for PHP
// we only support memcached and not memcache
// https://code.google.com/p/memcached/wiki/PHPClientComparison
- return !extension_loaded('memcached') && extension_loaded('memcache');
+ return !(!extension_loaded('memcached') && extension_loaded('memcache'));
}
/**
diff --git a/tests/lib/api.php b/tests/lib/api.php
index f8f03965711..1d1f97c4942 100644
--- a/tests/lib/api.php
+++ b/tests/lib/api.php
@@ -14,11 +14,13 @@ class Test_API extends \Test\TestCase {
* @param string $message
*/
function buildResponse($shipped, $data, $code, $message=null) {
- return array(
+ $resp = new OC_OCS_Result($data, $code, $message);
+ $resp->addHeader('KEY', 'VALUE');
+ return [
'shipped' => $shipped,
- 'response' => new OC_OCS_Result($data, $code, $message),
+ 'response' => $resp,
'app' => $this->getUniqueID('testapp_'),
- );
+ ];
}
// Validate details of the result
@@ -79,11 +81,11 @@ class Test_API extends \Test\TestCase {
}
function dataProviderTestOneResult() {
- return array(
- array(100, true),
- array(101, false),
- array(997, false),
- );
+ return [
+ [100, true],
+ [101, false],
+ [997, false],
+ ];
}
/**
@@ -94,47 +96,47 @@ class Test_API extends \Test\TestCase {
*/
public function testOneResult($statusCode, $succeeded) {
// Setup some data arrays
- $data1 = array(
- 'users' => array(
- 'tom' => array(
+ $data1 = [
+ 'users' => [
+ 'tom' => [
'key' => 'value',
- ),
- 'frank' => array(
+ ],
+ 'frank' => [
'key' => 'value',
- ),
- ));
+ ],
+ ]];
// Test merging one success result
$response = $this->buildResponse(true, $data1, $statusCode);
- $result = OC_API::mergeResponses(array($response));
+ $result = OC_API::mergeResponses([$response]);
$this->assertEquals($response['response'], $result);
$this->checkResult($result, $succeeded);
}
function dataProviderTestMergeResponses() {
- return array(
+ return [
// Two shipped success results
- array(true, 100, true, 100, true),
+ [true, 100, true, 100, true],
// Two shipped results, one success and one failure
- array(true, 100, true, 998, false),
+ [true, 100, true, 998, false],
// Two shipped results, both failure
- array(true, 997, true, 998, false),
+ [true, 997, true, 998, false],
// Two third party success results
- array(false, 100, false, 100, true),
+ [false, 100, false, 100, true],
// Two third party results, one success and one failure
- array(false, 100, false, 998, false),
+ [false, 100, false, 998, false],
// Two third party results, both failure
- array(false, 997, false, 998, false),
+ [false, 997, false, 998, false],
// One of each, both success
- array(false, 100, true, 100, true),
- array(true, 100, false, 100, true),
+ [false, 100, true, 100, true],
+ [true, 100, false, 100, true],
// One of each, both failure
- array(false, 997, true, 998, false),
+ [false, 997, true, 998, false],
// One of each, shipped success
- array(false, 997, true, 100, true),
+ [false, 997, true, 100, true],
// One of each, third party success
- array(false, 100, true, 998, false),
- );
+ [false, 100, true, 998, false],
+ ];
}
/**
* @dataProvider dataProviderTestMergeResponses
@@ -175,9 +177,11 @@ class Test_API extends \Test\TestCase {
$this->checkResult($result, $succeeded);
$resultData = $result->getData();
$resultMeta = $result->getMeta();
+ $resultHeaders = $result->getHeaders();
$resultStatusCode = $result->getStatusCode();
$this->assertArrayHasKey('jan', $resultData['users']);
+ $this->assertArrayHasKey('KEY', $resultHeaders);
// check if the returned status message matches the selected status code
if ($resultStatusCode === 997) {