From 331eec7b2b199c292c2ad229e9515d746aa12439 Mon Sep 17 00:00:00 2001 From: Arthur Portugal Date: Fri, 14 Aug 2009 10:43:52 -0500 Subject: [PATCH 1/6] Added new folder work to main and new file work lib to all test --- tests/main/work/work.lib.test.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 tests/main/work/work.lib.test.php diff --git a/tests/main/work/work.lib.test.php b/tests/main/work/work.lib.test.php new file mode 100644 index 0000000000..9adedbd67c --- /dev/null +++ b/tests/main/work/work.lib.test.php @@ -0,0 +1,12 @@ + From a8b3732a57644db8e11de274d32cf47232282cbf Mon Sep 17 00:00:00 2001 From: Arthur Portugal Date: Fri, 14 Aug 2009 16:23:40 -0500 Subject: [PATCH 2/6] Updated the file work with new tests --- tests/main/work/work.lib.test.php | 388 ++++++++++++++++++++++++++++++ 1 file changed, 388 insertions(+) diff --git a/tests/main/work/work.lib.test.php b/tests/main/work/work.lib.test.php index 9adedbd67c..97c8dcdcdd 100644 --- a/tests/main/work/work.lib.test.php +++ b/tests/main/work/work.lib.test.php @@ -1,12 +1,400 @@ assertTrue(is_string($res)); + //var_dump($res); + } + + /** + * Builds the form thats enables the user to + * move a document from one directory to another + * This function has been copied from the document/document.inc.php library + * + * @param array $folders + * @param string $curdirpath + * @param string $move_file + * @return string html form + */ + + function testbuild_work_move_to_selector() { + $folders=array(); + $curdirpath=''; + $move_file=''; + $group_dir=''; + $res=build_work_move_to_selector($folders,$curdirpath,$move_file,$group_dir=''); + $this->assertTrue(is_string($res)); + //var_dump($res); + } + + function testconvert_date_to_array() { + $date=date('d/m/Y',time()); + $group=array(); + $res=convert_date_to_array($date,$group); + $this->assertTrue(is_array($res)); + //var_dump($res); + } + + /** + * @param string e.g converts "2008-10-06 12:45:00" to timestamp + */ + + function testconvert_date_to_number() { + $default='2008-10-06 12:45:00'; + $res=convert_date_to_number($default); + $this->assertTrue(is_numeric($res)); + //var_dump($res); + } + + /** + * This function displays the number of files contained in a directory + * @param string the path of the directory complete e.g. /var/www/dokeos + * @param boolean true if we want the total quantity of files include in others child directorys , false only files in the directory + * @return array the first element is an integer with the number of files in the folder, the second element is the number of directories + */ + + function testcount_dir() { + $path_dir='/var/www'; + $recurse=0; + ob_start(); + $res=count_dir($path_dir, $recurse); + $this->assertTrue(is_array($res)); + ob_end_clean(); + //var_dump($res); + } + + /** + * create a group of select from a date + * @return array list + */ + + function testcreate_group_date_select() { + $res=create_group_date_select($prefix=''); + $this->assertTrue(is_array($res)); + //var_dump($res); + } + + /** + * @param string Base work dir (.../work) + * @param string $desiredDirName complete path of the desired name + * @return string actual directory name if it succeeds, boolean false + * otherwise + */ + + function testcreate_unexisting_work_directory() { + $base_work_dir='/var/www/dokeos/courses/ABCD/work/'; + $desired_dir_name='/var/www/merdokeos/main/work'; + $res=create_unexisting_work_directory(); + $this->assertTrue(is_bool($res)); + //var_dump($res); + } + + /** + * Delete a work-tool directory + * @param string Base "work" directory for this course as /var/www/dokeos/courses/ABCD/work/ + * @param string The directory name as the bit after "work/", without trailing slash + * @return integer -1 on error + */ + + function testdel_dir() { + $base_work_dir='/var/www/dokeos/'; + $dir='work/'; + $id=-1; + $res=del_dir(); + $this->assertTrue(is_numeric($res)); + //var_dump($res); + } + + /** + * Transform an all directory structure (only directories) in an array + * @param string path of the directory + * @return array the directory structure into an array + */ + + function testdirectory_to_array() { + $directory='/var/www/dokeos/'; + $res=directory_to_array($directory); + $this->assertTrue(is_array($res)); + //var_dump($res); + } + + /** + * Displays action links (for admins, authorized groups members and authorized students) + * @param string Current dir + * @param integer Whether to show tool options + * @param integer Whether to show upload form option + * @return void + */ + + function testdisplay_action_links() { + $cur_dir_path=''; + $always_show_tool_options=1; + $always_show_upload_form=1; + ob_start(); + $res=display_action_links($cur_dir_path, $always_show_tool_options, $always_show_upload_form); + $this->assertTrue(is_null($res)); + ob_end_clean(); + //var_dump($res); + } + + /** + * Displays the form where course admins can specify wether uploaded documents + * are visible or invisible by default. + * + * @param $uploadvisibledisabled + * @return html with two list radio button + */ + + function testdisplay_default_visibility_form() { + $uploadvisibledisabled=''; + ob_start(); + $res=display_default_visibility_form($uploadvisibledisabled); + $this->assertTrue(is_null($res)); + ob_end_clean(); + //var_dump($res); + } + + /** + * Display the list of student publications, taking into account the user status + * + * @param $currentCourseRepositoryWeb, the web location of the course folder + * @param $link_target_parameter - should there be a target parameter for the links + * @param $dateFormatLong - date format + * @param $origin - typically empty or 'learnpath' + */ + function testdisplay_student_publications_list() { + global $charset,$timeNoSecFormat,$dateFormatShort,$gradebook,$dateFormatLong; + $work_dir=''; + $sub_course_dir=''; + $currentCourseRepositoryWeb=''; + $link_target_parameter=''; + $origin='learnpath'; + $add_in_where_query=''; + ob_start(); + $res=display_student_publications_list($work_dir,$sub_course_dir,$currentCourseRepositoryWeb, $link_target_parameter, $dateFormatLong, $origin,$add_in_where_query=''); + $this->assertTrue(is_null($res)); + ob_end_clean(); + //var_dump($res); + } + + /** + * Displays all options for this tool. + * These are + * - make all files visible / invisible + * - set the default visibility of uploaded files + * + * @param $uploadvisibledisabled + * @param $origin + * @param $base_work_dir Base working directory (up to '/work') + * @param $cur_dir_path Current subdirectory of 'work/' + * @param $cur_dir_path_url Current subdirectory of 'work/', url-encoded + */ + + function testdisplay_tool_options() { + global $charset, $group_properties,$gradebook,$base_work_dir; + $uploadvisibledisabled=''; + $origin=''; + $cur_dir_path=''; + $cur_dir_path_url=''; + ob_start(); + $res=display_tool_options($uploadvisibledisabled, $origin,$base_work_dir,$cur_dir_path,$cur_dir_path_url); + $this->assertTrue(is_null($res)); + ob_end_clean(); + //var_dump($res); + } + + /** + * This function displays the firstname and lastname of the user as a link to the user tool. + * @see this is the same function as in the new forum, so this probably has to move to a user library. + * @todo move this function to the user library + */ + + function testdisplay_user_link() { + global $_otherusers; + $user_id=1; + $name=''; + $res=display_user_link($user_id, $name=''); + $this->assertTrue(is_string($res)); + //var_dump($res); + } + + /** + * create a group of select from a date + */ + + function testget_date_from_group() { + $group=''; + $res=get_date_from_group($group); + $this->assertTrue(is_string($res)); + //var_dump($res); + } + + /** + * @param string Path of the directory + * @return array The list of ids of all the directories in the path + */ + + function testget_parent_directories() { + $my_cur_dir_path=''; + $res=get_parent_directories($my_cur_dir_path); + $this->assertTrue(is_array($res)); + //var_dump($res); + } + + /** + * Returns a list of subdirectories found in the given directory. + * + * The list return starts from the given base directory. + * If you require the subdirs of /var/www/ (or /var/www), you will get 'abc/', 'def/', but not '/var/www/abc/'... + * @param string Base dir + * @param integer 0 if we only want dirs from this level, 1 if we want to recurse into subdirs + * @return strings_array The list of subdirs in 'abc/' form, -1 on error, and 0 if none found + * @todo Add a session check to see if subdirs_list doesn't exist yet (cached copy) + */ + + function testget_subdirs_list() { + $basedir = $basedir.'/'; + $dh = opendir($basedir); + $entry = readdir($dh); + $basedir = $basedir.'/'; + $dirs_list[] = $entry; + $res=get_subdirs_list($basedir='',$recurse=0); + $this->assertTrue(is_numeric($res)); + $this->assertTrue(is_array($dirs_list)); + //var_dump($res); + //var_dump($dirs_list); + } + + /** + * Gets the id of a student publication with a given path + * @param string $path + * @return true if is found / false if not found + */ + + function testget_work_id() { + $path='/var/www/path'; + $res=get_work_id($path); + $this->assertTrue(is_bool($res)); + //var_dump($res); + } + + /** + * Get the path of a document in the student_publication table (path relative to the course directory) + * @param integer Element ID + * @return string Path (or -1 on error) + */ + + function testget_work_path() { + $id=1; + $res=get_work_path($id); + $this->assertTrue(is_numeric($res)); + //var_dump($res); + } + + /** + * Insert into the DB of the course all the directories + * @param string path of the /work directory of the course + * @return -1 on error, sql query result on success + * @version April 2008 + */ + + function testinsert_all_directory_in_course_table() { + global $work_table; + $base_work_dir='/var/www/path'; + $dir_to_array =directory_to_array($base_work_dir,true); + $res=insert_all_directory_in_course_table($base_work_dir); + $this->assertTrue(is_null($res)); + //var_dump($res); + } + + /** + * Checks if the first given directory exists as a subdir of the second given directory + * This function should now be deprecated by Security::check_abs_path() + * @param string Subdir + * @param string Base dir + * @return integer -1 on error, 0 if not subdir, 1 if subdir + */ + + function testis_subdir_of() { + $subdir=''; + $basedir=''; + $res=is_subdir_of($subdir,$basedir); + $this->assertTrue(is_numeric($res)); + //var_dump($res); + } + + /** + * returns all the javascript that is required for easily + * validation when you create a work + * this goes into the $htmlHeadXtra[] array + */ + + function testto_javascript_work() { + $res=to_javascript_work(); + $this->assertTrue(is_string($res)); + //var_dump($res); + } + /** + * converts 1-9 to 01-09 + */ + function testtwo_digits() { + $number=1; + $res=two_digits($number); + $this->assertTrue(is_numeric($res)); + //var_dump($res); + } + /** + * Update the url of a dir in the student_publication table + * @param string old path + * @param string new path + */ + function testupdate_dir_name() { + global $base_work_dir; + $path=''; + $new_name=''; + $res=update_dir_name($path,$new_name); + $this->assertTrue(is_null($res)); + //var_dump($res); + } + /** + * Update the url of a work in the student_publication table + * @param integer ID of the work to update + * @param string Destination directory where the work has been moved (must end with a '/') + * @return -1 on error, sql query result on success + */ + + function testupdate_work_url() { + $id=1; + $new_path='/var/www/path/'; + $res=update_work_url($id,$new_path); + $this->assertTrue(is_numeric($res)); + //var_dump($res); + } } ?> From 9fdc265444f93315bcc4ce4f921039d93087e86a Mon Sep 17 00:00:00 2001 From: Arthur Portugal Date: Fri, 14 Aug 2009 16:24:09 -0500 Subject: [PATCH 3/6] Updated the all test2 --- tests/all.test2.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/all.test2.php b/tests/all.test2.php index c2897dc4e9..df3a162140 100644 --- a/tests/all.test2.php +++ b/tests/all.test2.php @@ -26,7 +26,9 @@ class AllTests2 extends TestSuite { //$this->addTestFile(dirname(__FILE__).'/main/exercice/hotpotatoes.lib.test.php'); //$this->addTestFile(dirname(__FILE__).'/main/newscorm/scorm.lib.test.php'); //$this->addTestFile(dirname(__FILE__).'/main/user/userInfoLib.test.php'); - $this->addTestFile(dirname(__FILE__).'/main/webservices/user_import/import.lib.test.php'); + //$this->addTestFile(dirname(__FILE__).'/main/webservices/user_import/import.lib.test.php'); + $this->addTestFile(dirname(__FILE__).'/main/work/work.lib.test.php'); + From b4b9fe49356929fc70acd4a740523ca571afba31 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Fri, 14 Aug 2009 17:18:38 -0500 Subject: [PATCH 4/6] 1.8.6.1 to 1.8.6.2 sql script added --- .../migrate-db-1.8.6.1-1.8.6.2-pre.sql | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 main/install/migrate-db-1.8.6.1-1.8.6.2-pre.sql diff --git a/main/install/migrate-db-1.8.6.1-1.8.6.2-pre.sql b/main/install/migrate-db-1.8.6.1-1.8.6.2-pre.sql new file mode 100755 index 0000000000..e46138e5b0 --- /dev/null +++ b/main/install/migrate-db-1.8.6.1-1.8.6.2-pre.sql @@ -0,0 +1,28 @@ +-- This script updates the databases structure before migrating the data from +-- version 1.8.6.1 to version 1.8.6.2 +-- it is intended as a standalone script, however, because of the multiple +-- databases related difficulties, it should be parsed by a PHP script in +-- order to connect to and update the right databases. +-- There is one line per query, allowing the PHP function file() to read +-- all lines separately into an array. The xxMAINxx-type markers are there +-- to tell the PHP script which database we're talking about. +-- By always using the keyword "TABLE" in the queries, we should be able +-- to retrieve and modify the table name from the PHP script if needed, which +-- will allow us to deal with the unique-database-type installations +-- +-- This first part is for the main database +-- xxMAINxx +ALTER TABLE gradebook_evaluation ADD COLUMN type varchar(40) NOT NULL; + +-- xxSTATSxx + +-- xxUSERxx + +-- xxCOURSExx + +ALTER TABLE quiz ADD COLUMN session_id smallint DEFAULT 0, ADD INDEX (session_id); +ALTER TABLE blog ADD COLUMN session_id smallint DEFAULT 0, ADD INDEX (session_id); +ALTER TABLE course_description ADD COLUMN session_id smallint DEFAULT 0, ADD INDEX (session_id); +ALTER TABLE glossary ADD COLUMN session_id smallint DEFAULT 0, ADD INDEX (session_id); +ALTER TABLE link ADD COLUMN session_id smallint DEFAULT 0, ADD INDEX (session_id); +ALTER TABLE wiki ADD COLUMN session_id smallint DEFAULT 0, ADD INDEX (session_id); From 732e36641f707e005a79c57bbafb5fba9d42bd34 Mon Sep 17 00:00:00 2001 From: Arthur Portugal Date: Fri, 14 Aug 2009 17:44:11 -0500 Subject: [PATCH 5/6] Changed the name scorm by newscorm --- tests/main/newscorm/scorm.lib.test.php | 70 ++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 tests/main/newscorm/scorm.lib.test.php diff --git a/tests/main/newscorm/scorm.lib.test.php b/tests/main/newscorm/scorm.lib.test.php new file mode 100644 index 0000000000..4fa2043d97 --- /dev/null +++ b/tests/main/newscorm/scorm.lib.test.php @@ -0,0 +1,70 @@ +array(),size=>array(),date=>array()) + */ + function testget_scorm_paths_from_dir(){ + $basedir=''; + $curdir=''; + $attribute=array('abc'); + $res=get_scorm_paths_from_dir($basedir, $curdir, &$attribute); + $this->assertTrue(is_array($res)); + //var_dump($res); + } + +/** + * Detects the SCORM version from an imsmanifest.xml file + * @param string Path to imsmanifest.xml + * @return string SCORM version (1.0,1.1,1.2,1.3) + * @todo Implement this function + */ + function testget_scorm_version(){ + $path='/main/erxercice/'; + $res=get_scorm_version($path); + $this->assertTrue(is_string($res)); + //var_dump($res); + } + +/** + * Delete a scorm directory (check for imsmanifest and if found, deletes the related rows in scorm tables also) + * @param string Dir path + * @return boolean True on success, false otherwise + */ + function testremovescormDirFalse() { + global $_course; + $dir='/main/exercice'; + $res=removescormDir($dir); + $this->assertFalse($res); + //var_dump($res); + } + + function testremovescormDirTrue() { + global $_course; + $dir=api_get_path(SYS_CODE_PATH).'upload/users/'; + $res=removescormDir($dir); + $this->assertTrue(is_bool($res)); + //var_dump($res); + } + +/** + * This function removes a directory if it exists + * @param string Dir path + * @return boolean True on success, false otherwise + * @uses removescormDir() to actually remove the directory + */ + function testscorm_delete() { + require_once(api_get_path(LIBRARY_PATH).'/fileManage.lib.php'); + $file='/tmp/'; + $res=scorm_delete($file); + $this->assertTrue(is_bool($res)); + //var_dump($res); + } +} +?> \ No newline at end of file From fe79e3eab9ab422e3f8bbc6f83f06704a5e4d274 Mon Sep 17 00:00:00 2001 From: Arthur Portugal Date: Fri, 14 Aug 2009 17:46:51 -0500 Subject: [PATCH 6/6] Fixed fail in get main user info --- tests/main/user/userInfoLib.test.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/main/user/userInfoLib.test.php b/tests/main/user/userInfoLib.test.php index f16dd06ec1..4fa4b114ce 100644 --- a/tests/main/user/userInfoLib.test.php +++ b/tests/main/user/userInfoLib.test.php @@ -110,8 +110,8 @@ class TestUserInfoLib extends UnitTestCase { $user_id=1; $courseCode='TEST'; $res=get_main_user_info($user_id,$courseCode); - $this->assertTrue(is_array($res)); - //var_dump($res); + if(!is_bool($res))$this->assertTrue(is_array($res)); + var_dump($res); } function testhtmlize() { @@ -154,7 +154,7 @@ class TestUserInfoLib extends UnitTestCase { global $TBL_USERINFO_CONTENT, $TBL_USERINFO_DEF; $id=1; $res=remove_cat_def($id, $force = false); - $this->assertTrue(is_bool($res)); + if(!is_null($res))$this->assertTrue(is_bool($res)); //var_dump($res); }