commit
5b01661353
@ -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); |
@ -0,0 +1,70 @@ |
||||
<?php |
||||
require_once(api_get_path(SYS_CODE_PATH).'newscorm/scorm.lib.php'); |
||||
|
||||
class TestScorm extends UnitTestCase { |
||||
|
||||
/** |
||||
* This function gets a list of scorm paths located in a given directory |
||||
* @param string Base directory path |
||||
* @param string Current directory |
||||
* @param array Reference to a list of paths that exist in the database |
||||
* @return array Array(type=>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); |
||||
} |
||||
} |
||||
?> |
@ -0,0 +1,400 @@ |
||||
<?php |
||||
//If you want to test this file you nedd change the path in work.lib.php inside the line 19,20 for this: |
||||
//require_once (api_get_path(SYS_CODE_PATH).'document/document.inc.php'); |
||||
//require_once (api_get_path(LIBRARY_PATH).'fileDisplay.lib.php'); |
||||
|
||||
require_once(api_get_path(SYS_CODE_PATH).'work/work.lib.php'); |
||||
|
||||
class TestWork extends UnitTestCase { |
||||
|
||||
/** |
||||
* Builds the form thats enables the user to |
||||
* select a directory to browse/upload in |
||||
* This function has been copied from the document/document.inc.php library |
||||
* |
||||
* @param array $folders |
||||
* @param string $curdirpath |
||||
* @param string $group_dir |
||||
* @return string html form |
||||
*/ |
||||
|
||||
function testbuild_work_directory_selector() { |
||||
$folders=array(); |
||||
$curdirpath=''; |
||||
$group_dir=''; |
||||
$res=build_work_directory_selector($folders,$curdirpath,$group_dir=''); |
||||
$this->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); |
||||
} |
||||
} |
||||
?> |
Loading…
Reference in new issue