|
|
<?php |
|
|
|
|
|
use Kanboard\Middleware\ProjectAuthorizationMiddleware; |
|
|
|
|
|
require_once __DIR__.'/../Base.php'; |
|
|
|
|
|
class ProjectAuthorizationMiddlewareMiddlewareTest extends Base |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
private $middleware; |
|
|
private $nextMiddleware; |
|
|
|
|
|
protected function setUp(): void |
|
|
{ |
|
|
parent::setUp(); |
|
|
|
|
|
$this->container['helper'] = new stdClass(); |
|
|
|
|
|
$this->container['helper']->user = $this |
|
|
->getMockBuilder('Kanboard\Helper\UserHelper') |
|
|
->setConstructorArgs(array($this->container)) |
|
|
->setMethods(array('hasProjectAccess')) |
|
|
->getMock(); |
|
|
|
|
|
$this->container['request'] = $this |
|
|
->getMockBuilder('Kanboard\Core\Http\Request') |
|
|
->setConstructorArgs(array($this->container)) |
|
|
->setMethods(array('getIntegerParam')) |
|
|
->getMock(); |
|
|
|
|
|
$this->nextMiddleware = $this |
|
|
->getMockBuilder('Kanboard\Middleware\ProjectAuthorizationMiddleware') |
|
|
->setConstructorArgs(array($this->container)) |
|
|
->setMethods(array('execute')) |
|
|
->getMock(); |
|
|
|
|
|
$this->middleware = new ProjectAuthorizationMiddleware($this->container); |
|
|
$this->middleware->setNextMiddleware($this->nextMiddleware); |
|
|
} |
|
|
|
|
|
public function testWithAccessDenied() |
|
|
{ |
|
|
$this->container['request'] |
|
|
->expects($this->any()) |
|
|
->method('getIntegerParam') |
|
|
->will($this->returnValue(123)); |
|
|
|
|
|
$this->container['helper']->user |
|
|
->expects($this->once()) |
|
|
->method('hasProjectAccess') |
|
|
->will($this->returnValue(false)); |
|
|
|
|
|
$this->nextMiddleware |
|
|
->expects($this->never()) |
|
|
->method('execute'); |
|
|
|
|
|
$this->expectException('Kanboard\Core\Controller\AccessForbiddenException'); |
|
|
$this->middleware->execute(); |
|
|
} |
|
|
|
|
|
public function testWithAccessGranted() |
|
|
{ |
|
|
$this->container['request'] |
|
|
->expects($this->any()) |
|
|
->method('getIntegerParam') |
|
|
->will($this->returnValue(123)); |
|
|
|
|
|
$this->container['helper']->user |
|
|
->expects($this->once()) |
|
|
->method('hasProjectAccess') |
|
|
->will($this->returnValue(true)); |
|
|
|
|
|
$this->nextMiddleware |
|
|
->expects($this->once()) |
|
|
->method('execute'); |
|
|
|
|
|
$this->middleware->execute(); |
|
|
} |
|
|
} |
|
|
|