| | <?php |
| |
|
| | use Kanboard\Middleware\AuthenticationMiddleware; |
| |
|
| | require_once __DIR__.'/../Base.php'; |
| |
|
| | class AuthenticationMiddlewareTest extends Base |
| | { |
| | |
| | |
| | |
| | private $middleware; |
| | private $nextMiddleware; |
| |
|
| | protected function setUp(): void |
| | { |
| | parent::setUp(); |
| |
|
| | $this->container['authenticationManager'] = $this |
| | ->getMockBuilder('Kanboard\Core\Security\AuthenticationManager') |
| | ->setConstructorArgs(array($this->container)) |
| | ->setMethods(array('checkCurrentSession')) |
| | ->getMock(); |
| |
|
| | $this->container['applicationAuthorization'] = $this |
| | ->getMockBuilder('Kanboard\Core\Security\AccessMap') |
| | ->setMethods(array('isAllowed')) |
| | ->getMock(); |
| |
|
| | $this->container['response'] = $this |
| | ->getMockBuilder('Kanboard\Core\Http\Response') |
| | ->setConstructorArgs(array($this->container)) |
| | ->setMethods(array('redirect')) |
| | ->getMock(); |
| |
|
| | $this->container['userSession'] = $this |
| | ->getMockBuilder('Kanboard\Core\User\UserSession') |
| | ->setConstructorArgs(array($this->container)) |
| | ->setMethods(array('isLogged')) |
| | ->getMock(); |
| |
|
| | $this->nextMiddleware = $this |
| | ->getMockBuilder('Kanboard\Middleware\AuthenticationMiddleware') |
| | ->setConstructorArgs(array($this->container)) |
| | ->setMethods(array('execute')) |
| | ->getMock(); |
| |
|
| | $this->middleware = new AuthenticationMiddleware($this->container); |
| | $this->middleware->setNextMiddleware($this->nextMiddleware); |
| | } |
| |
|
| | public function testWithBadSession() |
| | { |
| | $this->container['authenticationManager'] |
| | ->expects($this->once()) |
| | ->method('checkCurrentSession') |
| | ->will($this->returnValue(false)); |
| |
|
| | $this->nextMiddleware |
| | ->expects($this->never()) |
| | ->method('execute'); |
| |
|
| | $this->middleware->execute(); |
| | } |
| |
|
| | public function testWithPublicAction() |
| | { |
| | $this->container['authenticationManager'] |
| | ->expects($this->once()) |
| | ->method('checkCurrentSession') |
| | ->will($this->returnValue(true)); |
| |
|
| | $this->container['applicationAuthorization'] |
| | ->expects($this->once()) |
| | ->method('isAllowed') |
| | ->will($this->returnValue(true)); |
| |
|
| | $this->nextMiddleware |
| | ->expects($this->never()) |
| | ->method('execute'); |
| |
|
| | $this->middleware->execute(); |
| | } |
| |
|
| | public function testWithNotAuthenticatedUser() |
| | { |
| | $this->container['authenticationManager'] |
| | ->expects($this->once()) |
| | ->method('checkCurrentSession') |
| | ->will($this->returnValue(true)); |
| |
|
| | $this->container['applicationAuthorization'] |
| | ->expects($this->once()) |
| | ->method('isAllowed') |
| | ->will($this->returnValue(false)); |
| |
|
| | $this->container['userSession'] |
| | ->expects($this->once()) |
| | ->method('isLogged') |
| | ->will($this->returnValue(false)); |
| |
|
| | $this->container['response'] |
| | ->expects($this->once()) |
| | ->method('redirect'); |
| |
|
| | $this->nextMiddleware |
| | ->expects($this->never()) |
| | ->method('execute'); |
| |
|
| | $this->middleware->execute(); |
| | } |
| |
|
| | public function testWithAuthenticatedUser() |
| | { |
| | $this->container['authenticationManager'] |
| | ->expects($this->once()) |
| | ->method('checkCurrentSession') |
| | ->will($this->returnValue(true)); |
| |
|
| | $this->container['applicationAuthorization'] |
| | ->expects($this->once()) |
| | ->method('isAllowed') |
| | ->will($this->returnValue(false)); |
| |
|
| | $this->container['userSession'] |
| | ->expects($this->once()) |
| | ->method('isLogged') |
| | ->will($this->returnValue(true)); |
| |
|
| | $this->container['response'] |
| | ->expects($this->never()) |
| | ->method('redirect'); |
| |
|
| | $this->nextMiddleware |
| | ->expects($this->once()) |
| | ->method('execute'); |
| |
|
| | $this->middleware->execute(); |
| | } |
| | } |
| |
|