summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/AppFramework/Http/Dispatcher.php3
-rw-r--r--lib/private/AppFramework/Middleware/MiddlewareDispatcher.php2
-rw-r--r--tests/lib/AppFramework/Http/DispatcherTest.php28
-rw-r--r--tests/lib/AppFramework/Middleware/MiddlewareDispatcherTest.php2
4 files changed, 19 insertions, 16 deletions
diff --git a/lib/private/AppFramework/Http/Dispatcher.php b/lib/private/AppFramework/Http/Dispatcher.php
index 6219ba47a41..7b9ad015de6 100644
--- a/lib/private/AppFramework/Http/Dispatcher.php
+++ b/lib/private/AppFramework/Http/Dispatcher.php
@@ -105,9 +105,6 @@ class Dispatcher {
} catch(\Exception $exception){
$response = $this->middlewareDispatcher->afterException(
$controller, $methodName, $exception);
- if ($response === null) {
- throw $exception;
- }
}
$response = $this->middlewareDispatcher->afterController(
diff --git a/lib/private/AppFramework/Middleware/MiddlewareDispatcher.php b/lib/private/AppFramework/Middleware/MiddlewareDispatcher.php
index 30efe815888..e1262b6c712 100644
--- a/lib/private/AppFramework/Middleware/MiddlewareDispatcher.php
+++ b/lib/private/AppFramework/Middleware/MiddlewareDispatcher.php
@@ -85,7 +85,7 @@ class MiddlewareDispatcher {
* @param string $methodName the name of the method that will be called on
* the controller
*/
- public function beforeController(Controller $controller, $methodName){
+ public function beforeController(Controller $controller, string $methodName){
// we need to count so that we know which middlewares we have to ask in
// case there is an exception
$middlewareCount = \count($this->middlewares);
diff --git a/tests/lib/AppFramework/Http/DispatcherTest.php b/tests/lib/AppFramework/Http/DispatcherTest.php
index 95fa3c2a047..221e27e3b68 100644
--- a/tests/lib/AppFramework/Http/DispatcherTest.php
+++ b/tests/lib/AppFramework/Http/DispatcherTest.php
@@ -26,10 +26,12 @@ namespace Test\AppFramework\Http;
use OC\AppFramework\Http\Dispatcher;
use OC\AppFramework\Http\Request;
+use OC\AppFramework\Middleware\MiddlewareDispatcher;
use OC\AppFramework\Utility\ControllerMethodReflector;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\DataResponse;
+use OCP\AppFramework\Http\Response;
use OCP\AppFramework\Controller;
use OCP\IConfig;
@@ -75,7 +77,9 @@ class TestController extends Controller {
class DispatcherTest extends \Test\TestCase {
+ /** @var MiddlewareDispatcher */
private $middlewareDispatcher;
+ /** @var Dispatcher */
private $dispatcher;
private $controllerMethod;
private $response;
@@ -120,14 +124,13 @@ class DispatcherTest extends \Test\TestCase {
$this->reflector = new ControllerMethodReflector();
$this->dispatcher = new Dispatcher(
- $this->http, $this->middlewareDispatcher, $this->reflector,
+ $this->http,
+ $this->middlewareDispatcher,
+ $this->reflector,
$this->request
);
- $this->response = $this->getMockBuilder(
- '\OCP\AppFramework\Http\Response')
- ->disableOriginalConstructor()
- ->getMock();
+ $this->response = $this->createMock(Response::class);
$this->lastModified = new \DateTime(null, new \DateTimeZone('GMT'));
$this->etag = 'hi';
@@ -162,7 +165,7 @@ class DispatcherTest extends \Test\TestCase {
->with($this->equalTo($this->controller),
$this->equalTo($this->controllerMethod),
$this->equalTo($exception))
- ->will($this->returnValue(null));
+ ->willThrowException($exception);
return;
}
} else {
@@ -221,10 +224,9 @@ class DispatcherTest extends \Test\TestCase {
public function testDispatcherReturnsArrayWith2Entries() {
- $this->setMiddlewareExpectations();
+ $this->setMiddlewareExpectations('');
- $response = $this->dispatcher->dispatch($this->controller,
- $this->controllerMethod);
+ $response = $this->dispatcher->dispatch($this->controller, $this->controllerMethod);
$this->assertNull($response[0]);
$this->assertEquals(array(), $response[1]);
$this->assertNull($response[2]);
@@ -264,12 +266,14 @@ class DispatcherTest extends \Test\TestCase {
public function testExceptionThrowsIfCanNotBeHandledByAfterException() {
$out = 'yo';
$httpHeaders = 'Http';
- $responseHeaders = array('hell' => 'yeah');
+ $responseHeaders = ['hell' => 'yeah'];
$this->setMiddlewareExpectations($out, $httpHeaders, $responseHeaders, true, false);
$this->expectException(\Exception::class);
- $response = $this->dispatcher->dispatch($this->controller,
- $this->controllerMethod);
+ $this->dispatcher->dispatch(
+ $this->controller,
+ $this->controllerMethod
+ );
}
diff --git a/tests/lib/AppFramework/Middleware/MiddlewareDispatcherTest.php b/tests/lib/AppFramework/Middleware/MiddlewareDispatcherTest.php
index b2f78c17fe6..e6c2c1b4f53 100644
--- a/tests/lib/AppFramework/Middleware/MiddlewareDispatcherTest.php
+++ b/tests/lib/AppFramework/Middleware/MiddlewareDispatcherTest.php
@@ -283,6 +283,8 @@ class MiddlewareDispatcherTest extends \Test\TestCase {
->method('beforeController');
$m3->expects($this->never())
->method('afterController');
+ $m3->method('beforeOutput')
+ ->will($this->returnArgument(2));
$this->dispatcher->registerMiddleware($m3);