joined with the aportugal head

skala
Ricardo Rodriguez 16 years ago
commit 5b01661353
  1. 28
      main/install/migrate-db-1.8.6.1-1.8.6.2-pre.sql
  2. 70
      tests/main/newscorm/scorm.lib.test.php
  3. 6
      tests/main/user/userInfoLib.test.php
  4. 400
      tests/main/work/work.lib.test.php

@ -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);
}
}
?>

@ -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);
}

@ -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…
Cancel
Save