Add tests for public capabilties

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl 2017-06-30 11:21:15 +02:00
parent 42d9be4529
commit 01093604d3
No known key found for this signature in database
GPG Key ID: 4C614C6ED2CDE6DF
2 changed files with 63 additions and 0 deletions

View File

@ -85,6 +85,9 @@ class OCSControllerTest extends TestCase {
}
public function testGetCapabilities() {
$this->userSession->expects($this->once())
->method('isLoggedIn')
->willReturn(true);
list($major, $minor, $micro) = \OCP\Util::getVersion();
$result = [];
@ -112,6 +115,38 @@ class OCSControllerTest extends TestCase {
$this->assertEquals($expected, $this->controller->getCapabilities());
}
public function testGetCapabilitiesPublic() {
$this->userSession->expects($this->once())
->method('isLoggedIn')
->willReturn(false);
list($major, $minor, $micro) = \OCP\Util::getVersion();
$result = [];
$result['version'] = array(
'major' => $major,
'minor' => $minor,
'micro' => $micro,
'string' => \OC_Util::getVersionString(),
'edition' => '',
);
$capabilities = [
'foo' => 'bar',
'a' => [
'b' => true,
'c' => 11,
]
];
$this->capabilitiesManager->method('getCapabilities')
->with(true)
->willReturn($capabilities);
$result['capabilities'] = $capabilities;
$expected = new DataResponse($result);
$this->assertEquals($expected, $this->controller->getCapabilities());
}
public function testPersonCheckValid() {
$this->userManager->method('checkPassword')
->with(

View File

@ -24,6 +24,7 @@ namespace Test;
use OC\CapabilitiesManager;
use OCP\AppFramework\QueryException;
use OCP\Capabilities\ICapability;
use OCP\Capabilities\IPublicCapability;
use OCP\ILogger;
class CapabilitiesManagerTest extends TestCase {
@ -35,6 +36,7 @@ class CapabilitiesManagerTest extends TestCase {
private $logger;
public function setUp() {
parent::setUp();
$this->logger = $this->getMockBuilder('OCP\ILogger')->getMock();
$this->manager = new CapabilitiesManager($this->logger);
}
@ -59,6 +61,24 @@ class CapabilitiesManagerTest extends TestCase {
$this->assertEquals(['foo' => 1], $res);
}
/**
* Test a public capabilitie
*/
public function testPublicCapability() {
$this->manager->registerCapability(function() {
return new PublicSimpleCapability1();
});
$this->manager->registerCapability(function() {
return new SimpleCapability2();
});
$this->manager->registerCapability(function() {
return new SimpleCapability3();
});
$res = $this->manager->getCapabilities(true);
$this->assertEquals(['foo' => 1], $res);
}
/**
* Test that we need something that implents ICapability
* @expectedException \InvalidArgumentException
@ -160,6 +180,14 @@ class SimpleCapability3 implements ICapability {
}
}
class PublicSimpleCapability1 implements IPublicCapability {
public function getCapabilities() {
return [
'foo' => 1
];
}
}
class NoCapability {
public function getCapabilities() {
return [