summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJörn Friedrich Dreyer <jfd@butonic.de>2015-03-31 15:33:44 +0200
committerJörn Friedrich Dreyer <jfd@butonic.de>2015-04-10 09:12:37 +0200
commit077ab272818036129affc288a2bd51b2c2105fc0 (patch)
tree75de0966b640d1a0cfb137ff3659ccd1fa980b99 /apps
parent8964c5068cec5d56ef5107c4cbcb10e55e4ef4a5 (diff)
downloadnextcloud-server-077ab272818036129affc288a2bd51b2c2105fc0.tar.gz
nextcloud-server-077ab272818036129affc288a2bd51b2c2105fc0.zip
fix_tests
Conflicts: apps/user_ldap/tests/user_ldap.php
Diffstat (limited to 'apps')
-rw-r--r--apps/user_ldap/lib/user/manager.php9
-rw-r--r--apps/user_ldap/tests/user/manager.php4
-rw-r--r--apps/user_ldap/tests/user_ldap.php237
3 files changed, 201 insertions, 49 deletions
diff --git a/apps/user_ldap/lib/user/manager.php b/apps/user_ldap/lib/user/manager.php
index b99c9715e58..b5d402f1fac 100644
--- a/apps/user_ldap/lib/user/manager.php
+++ b/apps/user_ldap/lib/user/manager.php
@@ -149,6 +149,11 @@ class Manager {
$this->access->getUserMapper());
}
+ /**
+ * @brief returns a User object by it's ownCloud username
+ * @param string the DN or username of the user
+ * @return \OCA\user_ldap\lib\user\User|\OCA\user_ldap\lib\user\OfflineUser|null
+ */
protected function createInstancyByUserName($id) {
//most likely a uid. Check whether it is a deleted user
if($this->isDeletedUser($id)) {
@@ -158,12 +163,12 @@ class Manager {
if($dn !== false) {
return $this->createAndCache($dn, $id);
}
- throw new \Exception('Could not create User instance');
+ return null;
}
/**
* @brief returns a User object by it's DN or ownCloud username
- * @param string the DN or username of the user
+ * @param string the username of the user
* @return \OCA\user_ldap\lib\user\User|\OCA\user_ldap\lib\user\OfflineUser|null
* @throws \Exception when connection could not be established
*/
diff --git a/apps/user_ldap/tests/user/manager.php b/apps/user_ldap/tests/user/manager.php
index e86db6b9f81..e1e98b57f80 100644
--- a/apps/user_ldap/tests/user/manager.php
+++ b/apps/user_ldap/tests/user/manager.php
@@ -145,8 +145,6 @@ class Test_User_Manager extends \Test\TestCase {
$manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
$manager->setLdapAccess($access);
$user = $manager->get($inputDN);
-
- $this->assertNull($user);
}
public function testGetByUidExisting() {
@@ -194,8 +192,6 @@ class Test_User_Manager extends \Test\TestCase {
$manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc);
$manager->setLdapAccess($access);
$user = $manager->get($uid);
-
- $this->assertNull($user);
}
}
diff --git a/apps/user_ldap/tests/user_ldap.php b/apps/user_ldap/tests/user_ldap.php
index b9beed1d35a..9b4da00a3a7 100644
--- a/apps/user_ldap/tests/user_ldap.php
+++ b/apps/user_ldap/tests/user_ldap.php
@@ -417,21 +417,53 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
$this->prepareMockForUserExists($access);
$access->expects($this->any())
- ->method('readAttribute')
- ->will($this->returnCallback(function($dn) {
- if($dn === 'dnOfRoland,dc=test') {
- return array();
- }
- return false;
- }));
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn) {
+ if($dn === 'dnOfRoland,dc=test') {
+ return array();
+ }
+ return false;
+ }));
//test for existing user
$result = $backend->userExists('gunslinger');
$this->assertTrue($result);
+ }
+
+ /**
+ * @expectedException \Exception
+ */
+ public function testUserExistsForDeleted() {
+ $access = $this->getAccessMock();
+ $backend = new UserLDAP($access);
+ $this->prepareMockForUserExists($access);
+
+ $access->expects($this->any())
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn) {
+ if($dn === 'dnOfRoland,dc=test') {
+ return array();
+ }
+ return false;
+ }));
//test for deleted user
$result = $backend->userExists('formerUser');
- $this->assertFalse($result);
+ }
+
+ public function testUserExistsForNeverExisting() {
+ $access = $this->getAccessMock();
+ $backend = new UserLDAP($access);
+ $this->prepareMockForUserExists($access);
+
+ $access->expects($this->any())
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn) {
+ if($dn === 'dnOfRoland,dc=test') {
+ return array();
+ }
+ return false;
+ }));
//test for never-existing user
$result = $backend->userExists('mallory');
@@ -445,21 +477,55 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
\OC_User::useBackend($backend);
$access->expects($this->any())
- ->method('readAttribute')
- ->will($this->returnCallback(function($dn) {
- if($dn === 'dnOfRoland,dc=test') {
- return array();
- }
- return false;
- }));
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn) {
+ if($dn === 'dnOfRoland,dc=test') {
+ return array();
+ }
+ return false;
+ }));
//test for existing user
$result = \OCP\User::userExists('gunslinger');
$this->assertTrue($result);
+ }
+
+ /**
+ * @expectedException \Exception
+ */
+ public function testUserExistsPublicAPIForDeleted() {
+ $access = $this->getAccessMock();
+ $backend = new UserLDAP($access);
+ $this->prepareMockForUserExists($access);
+ \OC_User::useBackend($backend);
+
+ $access->expects($this->any())
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn) {
+ if($dn === 'dnOfRoland,dc=test') {
+ return array();
+ }
+ return false;
+ }));
//test for deleted user
$result = \OCP\User::userExists('formerUser');
- $this->assertFalse($result);
+ }
+
+ public function testUserExistsPublicAPIForNeverExisting() {
+ $access = $this->getAccessMock();
+ $backend = new UserLDAP($access);
+ $this->prepareMockForUserExists($access);
+ \OC_User::useBackend($backend);
+
+ $access->expects($this->any())
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn) {
+ if($dn === 'dnOfRoland,dc=test') {
+ return array();
+ }
+ return false;
+ }));
//test for never-existing user
$result = \OCP\User::userExists('mallory');
@@ -475,41 +541,35 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
$this->assertFalse($result);
}
- public function testGetHome() {
+ public function testGetHomeAbsolutePath() {
$access = $this->getAccessMock();
$config = $this->getMock('\OCP\IConfig');
$backend = new UserLDAP($access, $config);
$this->prepareMockForUserExists($access);
$access->connection->expects($this->any())
- ->method('__get')
- ->will($this->returnCallback(function($name) {
- if($name === 'homeFolderNamingRule') {
- return 'attr:testAttribute';
- }
- return null;
- }));
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+ if($name === 'homeFolderNamingRule') {
+ return 'attr:testAttribute';
+ }
+ return null;
+ }));
$access->expects($this->any())
- ->method('readAttribute')
- ->will($this->returnCallback(function($dn, $attr) {
- switch ($dn) {
- case 'dnOfRoland,dc=test':
- if($attr === 'testAttribute') {
- return array('/tmp/rolandshome/');
- }
- return array();
- break;
- case 'dnOfLadyOfShadows,dc=test':
- if($attr === 'testAttribute') {
- return array('susannah/');
- }
- return array();
- break;
- default:
- return false;
- }
- }));
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn, $attr) {
+ switch ($dn) {
+ case 'dnOfRoland,dc=test':
+ if($attr === 'testAttribute') {
+ return array('/tmp/rolandshome/');
+ }
+ return array();
+ break;
+ default:
+ return false;
+ }
+ }));
$datadir = '/my/data/dir';
$config->expects($this->once())
@@ -519,10 +579,68 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
//absolut path
$result = $backend->getHome('gunslinger');
$this->assertEquals('/tmp/rolandshome/', $result);
+ }
+
+ public function testGetHomeDatadirRelative() {
+ $access = $this->getAccessMock();
+ $backend = new UserLDAP($access);
+ $this->prepareMockForUserExists($access);
+
+ $access->connection->expects($this->any())
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+ if($name === 'homeFolderNamingRule') {
+ return 'attr:testAttribute';
+ }
+ return null;
+ }));
+ $access->expects($this->any())
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn, $attr) {
+ switch ($dn) {
+ case 'dnOfLadyOfShadows,dc=test':
+ if($attr === 'testAttribute') {
+ return array('susannah/');
+ }
+ return array();
+ break;
+ default:
+ return false;
+ }
+ }));
//datadir-relativ path
$result = $backend->getHome('ladyofshadows');
+ $datadir = \OCP\Config::getSystemValue('datadirectory',
+ \OC::$SERVERROOT.'/data');
$this->assertEquals($datadir.'/susannah/', $result);
+ }
+
+ /**
+ * @expectedException \Exception
+ */
+ public function testGetHomeNoPath() {
+ $access = $this->getAccessMock();
+ $backend = new UserLDAP($access);
+ $this->prepareMockForUserExists($access);
+
+ $access->connection->expects($this->any())
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+ if($name === 'homeFolderNamingRule') {
+ return 'attr:testAttribute';
+ }
+ return null;
+ }));
+
+ $access->expects($this->any())
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($dn, $attr) {
+ switch ($dn) {
+ default:
+ return false;
+ }
+ }));
//no path at all – triggers OC default behaviour
$result = $backend->getHome('newyorker');
@@ -562,6 +680,12 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
$backend = new UserLDAP($access, $this->getMock('\OCP\IConfig'));
$this->prepareMockForUserExists($access);
+ $access->connection->expects($this->any())
+ ->method('getConnectionResource')
+ ->will($this->returnCallback(function() {
+ return true;
+ }));
+
//with displayName
$result = $backend->getDisplayName('gunslinger');
$this->assertEquals('Roland Deschain', $result);
@@ -573,9 +697,36 @@ class Test_User_Ldap_Direct extends \Test\TestCase {
public function testGetDisplayNamePublicAPI() {
$access = $this->getAccessMock();
+ $access->expects($this->any())
+ ->method('username2dn')
+ ->will($this->returnCallback(function($uid) {
+ switch ($uid) {
+ case 'gunslinger':
+ return 'dnOfRoland,dc=test';
+ break;
+ case 'formerUser':
+ return 'dnOfFormerUser,dc=test';
+ break;
+ case 'newyorker':
+ return 'dnOfNewYorker,dc=test';
+ break;
+ case 'ladyofshadows':
+ return 'dnOfLadyOfShadows,dc=test';
+ break;
+ default:
+ return false;
+ }
+ }));
$this->prepareAccessForGetDisplayName($access);
$backend = new UserLDAP($access, $this->getMock('\OCP\IConfig'));
$this->prepareMockForUserExists($access);
+
+ $access->connection->expects($this->any())
+ ->method('getConnectionResource')
+ ->will($this->returnCallback(function() {
+ return true;
+ }));
+
\OC_User::useBackend($backend);
//with displayName