fe7d9a7ca0
First step of a somewhat testable user management. - I know, the JSON returns are in an ugly format but the JS expects it that way. So let's keep it that way until we have time to fix the JS in the future.
91 lines
No EOL
2.8 KiB
PHP
91 lines
No EOL
2.8 KiB
PHP
<?php
|
|
/**
|
|
* @author Lukas Reschke
|
|
* @copyright 2014 Lukas Reschke lukas@owncloud.com
|
|
*
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later.
|
|
* See the COPYING-README file.
|
|
*/
|
|
|
|
namespace OC\Settings\Middleware;
|
|
|
|
use OC\AppFramework\Utility\ControllerMethodReflector;
|
|
use OCP\AppFramework\Controller;
|
|
use OCP\AppFramework\Http\TemplateResponse;
|
|
|
|
/**
|
|
* Verifies whether an user has at least subadmin rights.
|
|
* To bypass use the `@NoSubadminRequired` annotation
|
|
*
|
|
* @package OC\Settings\Middleware
|
|
*/
|
|
class SubadminMiddlewareTest extends \Test\TestCase {
|
|
/** @var SubadminMiddleware */
|
|
private $subadminMiddlewareAsSubAdmin;
|
|
/** @var SubadminMiddleware */
|
|
private $subadminMiddleware;
|
|
/** @var ControllerMethodReflector */
|
|
private $reflector;
|
|
/** @var Controller */
|
|
private $controller;
|
|
|
|
protected function setUp() {
|
|
$this->reflector = $this->getMockBuilder('\OC\AppFramework\Utility\ControllerMethodReflector')
|
|
->disableOriginalConstructor()->getMock();
|
|
$this->controller = $this->getMockBuilder('\OCP\AppFramework\Controller')
|
|
->disableOriginalConstructor()->getMock();
|
|
|
|
$this->subadminMiddlewareAsSubAdmin = new SubadminMiddleware($this->reflector, true);
|
|
$this->subadminMiddleware = new SubadminMiddleware($this->reflector, false);
|
|
}
|
|
|
|
/**
|
|
* @expectedException \Exception
|
|
* @expectedExceptionMessage Logged in user must be a subadmin
|
|
*/
|
|
public function testBeforeControllerAsUserWithExemption() {
|
|
$this->reflector
|
|
->expects($this->once())
|
|
->method('hasAnnotation')
|
|
->with('NoSubadminRequired')
|
|
->will($this->returnValue(false));
|
|
$this->subadminMiddleware->beforeController($this->controller, 'foo');
|
|
}
|
|
|
|
|
|
public function testBeforeControllerAsUserWithoutExemption() {
|
|
$this->reflector
|
|
->expects($this->once())
|
|
->method('hasAnnotation')
|
|
->with('NoSubadminRequired')
|
|
->will($this->returnValue(true));
|
|
$this->subadminMiddleware->beforeController($this->controller, 'foo');
|
|
}
|
|
|
|
public function testBeforeControllerAsSubAdminWithoutExemption() {
|
|
$this->reflector
|
|
->expects($this->once())
|
|
->method('hasAnnotation')
|
|
->with('NoSubadminRequired')
|
|
->will($this->returnValue(false));
|
|
$this->subadminMiddlewareAsSubAdmin->beforeController($this->controller, 'foo');
|
|
}
|
|
|
|
public function testBeforeControllerAsSubAdminWithExemption() {
|
|
$this->reflector
|
|
->expects($this->once())
|
|
->method('hasAnnotation')
|
|
->with('NoSubadminRequired')
|
|
->will($this->returnValue(true));
|
|
$this->subadminMiddlewareAsSubAdmin->beforeController($this->controller, 'foo');
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testAfterException() {
|
|
$expectedResponse = new TemplateResponse('core', '403', array(), 'guest');
|
|
$this->assertEquals($expectedResponse, $this->subadminMiddleware->afterException($this->controller, 'foo', new \Exception()));
|
|
}
|
|
} |