]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix_tests
authorJörn Friedrich Dreyer <jfd@butonic.de>
Tue, 31 Mar 2015 13:33:44 +0000 (15:33 +0200)
committerJörn Friedrich Dreyer <jfd@butonic.de>
Fri, 10 Apr 2015 07:12:37 +0000 (09:12 +0200)
Conflicts:
apps/user_ldap/tests/user_ldap.php

apps/user_ldap/lib/user/manager.php
apps/user_ldap/tests/user/manager.php
apps/user_ldap/tests/user_ldap.php

index b99c9715e58200824ea5ef3cc3cf755e0f2af9b6..b5d402f1fac557dc8fbaa0dea3808ac4e7a5513a 100644 (file)
@@ -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
         */
index e86db6b9f81fd1fe3d4fd554788fc4f6c27e335d..e1e98b57f8099ff39ee081f4b4618ee724d4cd6e 100644 (file)
@@ -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);
     }
 
 }
index b9beed1d35a9848ff913ecd3cdca1aac3c0dfe69..9b4da00a3a788968577add1fb0cc63ba53750141 100644 (file)
@@ -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