diff options
-rw-r--r-- | core/ajax/update.php | 15 | ||||
-rw-r--r-- | lib/private/api.php | 18 | ||||
-rw-r--r-- | lib/private/appframework/dependencyinjection/dicontainer.php | 4 | ||||
-rw-r--r-- | lib/private/ocs/result.php | 4 | ||||
-rw-r--r-- | settings/controller/checksetupcontroller.php | 4 | ||||
-rw-r--r-- | tests/lib/api.php | 62 |
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) { |