Browse Source

Adding user tests

Julio Montoya 12 years ago
parent
commit
bcfc364eae
2 changed files with 58 additions and 60 deletions
  1. 32 18
      main/inc/lib/usermanager.lib.php
  2. 26 42
      tests/phpunit/classes/UserManagerTest.lib.php

+ 32 - 18
main/inc/lib/usermanager.lib.php

@@ -378,19 +378,24 @@ class UserManager {
     public static function can_delete_user($user_id) {
         global $_configuration;
         if (isset($_configuration['delete_users']) && $_configuration['delete_users'] == false) {
-                return false;
+            return false;
         }
         $table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
         if ($user_id != strval(intval($user_id))) return false;
         if ($user_id === false) return false;
+        $user_info = api_get_user_info($user_id);
+
+        if (empty($user_info)) {
+            return false;
+        }
         $sql = "SELECT * FROM $table_course_user WHERE status = '1' AND user_id = '".$user_id."'";
         $res = Database::query($sql);
         while ($course = Database::fetch_object($res)) {
-                $sql = "SELECT user_id FROM $table_course_user WHERE status='1' AND course_code ='".Database::escape_string($course->course_code)."'";
-                $res2 = Database::query($sql);
-                if (Database::num_rows($res2) == 1) {
-                        return false;
-                }
+            $sql = "SELECT user_id FROM $table_course_user WHERE status='1' AND course_code ='".Database::escape_string($course->course_code)."'";
+            $res2 = Database::query($sql);
+            if (Database::num_rows($res2) == 1) {
+                return false;
+            }
         }
         return true;
     }
@@ -413,10 +418,13 @@ class UserManager {
         if (!self::can_delete_user($user_id)) {
             return false;
         }
+
+        $user_info = api_get_user_info($user_id);
+
         $table_user                   = Database :: get_main_table(TABLE_MAIN_USER);
         $usergroup_rel_user           = Database :: get_main_table(TABLE_USERGROUP_REL_USER);
         $table_course_user            = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
-        $table_class_user             = Database :: get_main_table(TABLE_MAIN_CLASS_USER);
+        //$table_class_user             = Database :: get_main_table(TABLE_MAIN_CLASS_USER);
         $table_course                 = Database :: get_main_table(TABLE_MAIN_COURSE);
         $table_admin                  = Database :: get_main_table(TABLE_MAIN_ADMIN);
         $table_session_user           = Database :: get_main_table(TABLE_MAIN_SESSION_USER);
@@ -456,7 +464,6 @@ class UserManager {
 
         // Delete user picture
         // TODO: Logic about api_get_setting('split_users_upload_directory') === 'true' , a user has 4 differnt sized photos to be deleted.
-        $user_info = api_get_user_info($user_id);
 
         if (strlen($user_info['picture_uri']) > 0) {
             $img_path = api_get_path(SYS_CODE_PATH).'upload/users/'.$user_id.'/'.$user_info['picture_uri'];
@@ -521,7 +528,7 @@ class UserManager {
         // Add event to system log
         $user_id_manager = api_get_user_id();
         event_system(LOG_USER_DELETE, LOG_USER_ID, $user_id, api_get_utc_datetime(), $user_id_manager, null, $user_info);
-            event_system(LOG_USER_DELETE, LOG_USER_OBJECT, implode(';',$user_info), api_get_utc_datetime(), $user_id_manager, null, $user_info);
+        event_system(LOG_USER_DELETE, LOG_USER_OBJECT, implode(';',$user_info), api_get_utc_datetime(), $user_id_manager, null, $user_info);
         return true;
     }
 
@@ -538,14 +545,21 @@ class UserManager {
      * @assert (array(-1)) === false
      */
     static function delete_users($ids = array()) {
+        if (empty($ids)) {
+            return false;
+        }
         $result = false;
         $ids = is_array($ids) ? $ids : func_get_args();
         $ids = array_map('intval', $ids);
-        foreach ($ids as $id) {
-            $deleted = self::delete_user($id);
-            $result = $deleted || $result;
+        if (!empty($ids)) {
+            foreach ($ids as $id) {
+                $deleted = self::delete_user($id);
+                $result = $deleted || $result;
+            }
+            return $result;
+        } else {
+            return false;
         }
-        return $result;
     }
 
     /**
@@ -567,8 +581,10 @@ class UserManager {
             foreach ($ids as $id) {
                 self::change_active_state($id, 0);
             }
+            return true;
+        } else {
+            return false;
         }
-        return true;
     }
 
     /**
@@ -606,7 +622,7 @@ class UserManager {
         if ($user_id != strval(intval($user_id))) return false;
         if ($user_id === false) return false;
         $sql = "UPDATE $table_user SET openid='".Database::escape_string($openid)."'";
-        $sql .=    " WHERE user_id='$user_id'";
+        $sql .= " WHERE user_id = '$user_id'";
         return Database::query($sql);
     }
 
@@ -629,7 +645,7 @@ class UserManager {
      * @return boolean true if the user information was updated
      * @assert (false) === false
      */
-    public static function update_user($user_id, $firstname, $lastname, $username, $password = null, $auth_source = null, $email, $status, $official_code, $phone, $picture_uri, $expiration_date, $active, $creator_id = null, $hr_dept_id = 0, $extra = null, $language = 'english', $encrypt_method = '', $send_email = false, $reset_password = 0) {
+    public static function update_user($user_id, $firstname, $lastname, $username, $password = null, $auth_source = null, $email = null, $status = STUDENT, $official_code = null, $phone = null , $picture_uri = null, $expiration_date = null, $active = 1, $creator_id = null, $hr_dept_id = 0, $extra = null, $language = 'english', $encrypt_method = '', $send_email = false, $reset_password = 0) {
         global $_configuration;
         $original_password = $password;
 
@@ -760,7 +776,6 @@ class UserManager {
                 $user_info = api_get_user_info($user_id);
                 $recipient_name = api_get_person_name($user_info['firstname'], $user_info['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
                 $emailsubject = '['.api_get_setting('siteName').'] '.get_lang('YourReg').' '.api_get_setting('siteName');
-                //$sender_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS);
                 $emailbody=get_lang('Dear')." ".stripslashes($recipient_name).",\n\n";
                 $emailbody.=sprintf(get_lang('YourAccountOnXHasJustBeenApprovedByOneOfOurAdministrators'), api_get_setting('siteName'))."\n";
                 $emailbody.=sprintf(get_lang('YouCanNowLoginAtXUsingTheLoginAndThePasswordYouHaveProvided'), api_get_path(WEB_PATH)).",\n\n";
@@ -769,7 +784,6 @@ class UserManager {
                 $emailbody.= api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'))."\n". get_lang('Manager'). " ".api_get_setting('siteName')."\nT. ".api_get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".api_get_setting('emailAdministrator');
 
                 MessageManager::send_message_simple($user_id, $emailsubject, $emailbody);
-                //$result = api_mail_html($recipient_name, $user_info['mail'], $emailsubject, $emailbody, $sender_name, $email_admin);
             }
         }
 

+ 26 - 42
tests/phpunit/classes/UserManagerTest.lib.php

@@ -30,14 +30,14 @@ class UserManagerTest extends PHPUnit_Framework_TestCase
     }
 
     function customUser() {
+        $unique_id = uniqid();
         return array(
-            array('julio', 'montoya', 5, 'julio@example.com', 'jmontoya666', 'jmontoya666'),
-            array('julio', 'montoya', 5, 'julio@example.com', 'jmontoya777', 'jmontoya777')
+            array('julio', 'montoya', 5, 'julio@example.com', 'jmontoya1_'.$unique_id, 'jmontoya1_'.$unique_id),
+            array('julio', 'montoya', 5, 'julio@example.com', 'jmontoya2_'.$unique_id, 'jmontoya2_'.$unique_id)
         );
     }
 
     /**
-     * Generated from @assert ('') === false.
      *
      * @covers UserManager::is_username_available
      */
@@ -74,26 +74,42 @@ class UserManagerTest extends PHPUnit_Framework_TestCase
         $this->assertGreaterThan(
             1, $user_id
         );
+        return $user_id;
     }
 
+
+    /**
+     * @covers UserManager::get_user_info_by_id
+     * @depends testCreate_user
+     */
+    public function testGet_user_info_by_id($user_id)
+    {
+        $user_info = UserManager::get_user_info_by_id($user_id);
+        $this->assertGreaterThan(
+            1, $user_info['user_id']
+        );
+        return $user_info;
+    }
+
+
     /**
      * @dataProvider customUser
      * @covers UserManager::create_user
      */
     public function testCreate_user2($firstname, $lastname, $status, $email, $username, $password)
     {
-        $this->assertSame(
-            false, UserManager::create_user($firstname, $lastname, $status, $email, $username, $password)
+        $this->assertGreaterThan(
+            1, UserManager::create_user($firstname, $lastname, $status, $email, $username, $password)
         );
     }
 
     /**
      * @covers UserManager::get_user_info
-     * @depends testCreate_user2
+     * @depends testGet_user_info_by_id
      */
-    public function testGet_user_info()
+    public function testGet_user_info($user_info)
     {
-        $user_info = UserManager::get_user_info('jmontoya666');
+        $user_info = UserManager::get_user_info($user_info['username']);
         $this->assertGreaterThan(
             1, $user_info['user_id']
         );
@@ -126,7 +142,7 @@ class UserManagerTest extends PHPUnit_Framework_TestCase
     }
 
     /**
-     * @depends testGet_user_info
+     * @depends testCreate_user
      */
     public function testDelete_user2()
     {
@@ -161,24 +177,6 @@ class UserManagerTest extends PHPUnit_Framework_TestCase
     }
 
 
-
-
-
-    /**
-     *
-     * @covers UserManager::delete_users
-     * @depends testDelete_user
-     */
-    public function testDelete_users2()
-    {
-        $new_user_id = UserManager::create_user('julio', 'montoya', STUDENT, 'julio@example.com', 'jmontoya666', 'jmontoya');
-        UserManager::delete_user($new_user_id);
-        $user_info = api_get_user_info($new_user_id);
-        $this->assertSame(
-            false, $user_info
-        );
-    }
-
     /**
      * Generated from @assert (null) === false.
      *
@@ -252,14 +250,13 @@ class UserManagerTest extends PHPUnit_Framework_TestCase
     }
 
     /**
-     * Generated from @assert (false) === false.
      *
      * @covers UserManager::update_user
      */
     public function testUpdate_user()
     {
         $this->assertSame(
-            false, UserManager::update_user(false)
+            false, UserManager::update_user(false, false, false, false)
         );
     }
 
@@ -433,19 +430,6 @@ class UserManagerTest extends PHPUnit_Framework_TestCase
         );
     }
 
-
-    /**
-     * @covers UserManager::get_user_info_by_id
-     * @todo   Implement testGet_user_info_by_id().
-     */
-    public function testGet_user_info_by_id()
-    {
-        // Remove the following lines when you implement this test.
-        $this->markTestIncomplete(
-            'This test has not been implemented yet.'
-        );
-    }
-
     /**
      * @covers UserManager::get_teacher_list
      * @todo   Implement testGet_teacher_list().