|
|
|
|
@ -18,6 +18,7 @@ use OCP\IRequest; |
|
|
|
|
use OCP\IRequestId; |
|
|
|
|
use OCP\Security\Bruteforce\IThrottler; |
|
|
|
|
use PHPUnit\Framework\MockObject\MockObject; |
|
|
|
|
use Psr\Log\LoggerInterface; |
|
|
|
|
use Test\AppFramework\Middleware\Security\Mock\CORSMiddlewareController; |
|
|
|
|
|
|
|
|
|
class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
@ -29,12 +30,14 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
private $throttler; |
|
|
|
|
/** @var CORSMiddlewareController */ |
|
|
|
|
private $controller; |
|
|
|
|
private LoggerInterface $logger; |
|
|
|
|
|
|
|
|
|
protected function setUp(): void { |
|
|
|
|
parent::setUp(); |
|
|
|
|
$this->reflector = new ControllerMethodReflector(); |
|
|
|
|
$this->session = $this->createMock(Session::class); |
|
|
|
|
$this->throttler = $this->createMock(IThrottler::class); |
|
|
|
|
$this->logger = $this->createMock(LoggerInterface::class); |
|
|
|
|
$this->controller = new CORSMiddlewareController( |
|
|
|
|
'test', |
|
|
|
|
$this->createMock(IRequest::class) |
|
|
|
|
@ -62,7 +65,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
$this->createMock(IConfig::class) |
|
|
|
|
); |
|
|
|
|
$this->reflector->reflect($this->controller, $method); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
|
|
|
|
|
$response = $middleware->afterController($this->controller, $method, new Response()); |
|
|
|
|
$headers = $response->getHeaders(); |
|
|
|
|
@ -79,7 +82,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
$this->createMock(IRequestId::class), |
|
|
|
|
$this->createMock(IConfig::class) |
|
|
|
|
); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
|
|
|
|
|
$response = $middleware->afterController($this->controller, __FUNCTION__, new Response()); |
|
|
|
|
$headers = $response->getHeaders(); |
|
|
|
|
@ -103,7 +106,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
$this->createMock(IConfig::class) |
|
|
|
|
); |
|
|
|
|
$this->reflector->reflect($this->controller, $method); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
|
|
|
|
|
$response = $middleware->afterController($this->controller, $method, new Response()); |
|
|
|
|
$headers = $response->getHeaders(); |
|
|
|
|
@ -133,7 +136,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
$this->createMock(IConfig::class) |
|
|
|
|
); |
|
|
|
|
$this->reflector->reflect($this->controller, $method); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
|
|
|
|
|
$response = new Response(); |
|
|
|
|
$response->addHeader('AcCess-control-Allow-Credentials ', 'TRUE'); |
|
|
|
|
@ -159,7 +162,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
$this->createMock(IConfig::class) |
|
|
|
|
); |
|
|
|
|
$this->reflector->reflect($this->controller, $method); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
$this->session->expects($this->once()) |
|
|
|
|
->method('isLoggedIn') |
|
|
|
|
->willReturn(false); |
|
|
|
|
@ -193,7 +196,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
$this->createMock(IConfig::class) |
|
|
|
|
); |
|
|
|
|
$this->reflector->reflect($this->controller, $method); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
$this->session->expects($this->once()) |
|
|
|
|
->method('isLoggedIn') |
|
|
|
|
->willReturn(true); |
|
|
|
|
@ -234,7 +237,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
->with($this->equalTo('user'), $this->equalTo('pass')) |
|
|
|
|
->willReturn(true); |
|
|
|
|
$this->reflector->reflect($this->controller, $method); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
|
|
|
|
|
$middleware->beforeController($this->controller, $method); |
|
|
|
|
} |
|
|
|
|
@ -267,7 +270,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
->with($this->equalTo('user'), $this->equalTo('pass')) |
|
|
|
|
->will($this->throwException(new \OC\Authentication\Exceptions\PasswordLoginForbiddenException)); |
|
|
|
|
$this->reflector->reflect($this->controller, $method); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
|
|
|
|
|
$middleware->beforeController($this->controller, $method); |
|
|
|
|
} |
|
|
|
|
@ -300,7 +303,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
->with($this->equalTo('user'), $this->equalTo('pass')) |
|
|
|
|
->willReturn(false); |
|
|
|
|
$this->reflector->reflect($this->controller, $method); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
|
|
|
|
|
$middleware->beforeController($this->controller, $method); |
|
|
|
|
} |
|
|
|
|
@ -314,7 +317,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
$this->createMock(IRequestId::class), |
|
|
|
|
$this->createMock(IConfig::class) |
|
|
|
|
); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
$response = $middleware->afterException($this->controller, __FUNCTION__, new SecurityException('A security exception')); |
|
|
|
|
|
|
|
|
|
$expected = new JSONResponse(['message' => 'A security exception'], 500); |
|
|
|
|
@ -330,7 +333,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
$this->createMock(IRequestId::class), |
|
|
|
|
$this->createMock(IConfig::class) |
|
|
|
|
); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
$response = $middleware->afterException($this->controller, __FUNCTION__, new SecurityException('A security exception', 501)); |
|
|
|
|
|
|
|
|
|
$expected = new JSONResponse(['message' => 'A security exception'], 501); |
|
|
|
|
@ -349,7 +352,7 @@ class CORSMiddlewareTest extends \Test\TestCase { |
|
|
|
|
$this->createMock(IRequestId::class), |
|
|
|
|
$this->createMock(IConfig::class) |
|
|
|
|
); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler); |
|
|
|
|
$middleware = new CORSMiddleware($request, $this->reflector, $this->session, $this->throttler, $this->logger); |
|
|
|
|
$middleware->afterException($this->controller, __FUNCTION__, new \Exception('A regular exception')); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|