浏览代码

Updated the file work with new tests

Arthur Portugal 15 年之前
父节点
当前提交
a8b3732a57
共有 1 个文件被更改,包括 388 次插入0 次删除
  1. 388 0
      tests/main/work/work.lib.test.php

+ 388 - 0
tests/main/work/work.lib.test.php

@@ -1,12 +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);
+	}	
 }
 ?>