fileUpload.lib.test.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. <?php
  2. /** To can run this test you need comment "die() This code is in the line 278,1377,1386,1389,1542,1547,1571 file fileUpload.lib.php
  3. * @author aportugal arthur.portugal@dokeos.com
  4. */
  5. require_once(api_get_path(LIBRARY_PATH).'fileUpload.lib.php');
  6. require_once(api_get_path(LIBRARY_PATH).'document.lib.php');
  7. require_once(api_get_path(LIBRARY_PATH).'/pclzip/pclzip.lib.php');
  8. class TestFileUpload extends UnitTestCase {
  9. function testAddAllDocumentsInFolderToDatabase() {
  10. global $_course, $user_id;
  11. $base_work_dir= api_get_path(SYS_PATH).'';
  12. $current_path = 'courses/';
  13. $to_group_id =0;
  14. $res=add_all_documents_in_folder_to_database($_course,$user_id,$base_work_dir,$current_path,$to_group_id);
  15. $this->assertTrue(is_null($res));
  16. //var_dump($res);
  17. }
  18. function testAddDocument() {
  19. global $_course;
  20. $path='';
  21. $filetype='';
  22. $filesize='';
  23. $title='';
  24. $res=add_document($_course,$path,$filetype,$filesize,$title);
  25. if(!is_numeric($res)) :
  26. $this->assertTrue(is_bool($res));
  27. endif;
  28. //var_dump($res);
  29. }
  30. function testAddExtOnMime() {
  31. $fileName='';
  32. $fileType='';
  33. $res=add_ext_on_mime($fileName,$fileType);
  34. $this->assertTrue(is_string($res));
  35. //var_dump($res);
  36. }
  37. function testApiReplaceLinksInHtml() {
  38. $upload_path='/var/www/chamilo1/courses/COURSEX/upload/blog';
  39. $full_file_name = 'doc.php';
  40. $res=api_replace_links_in_html($upload_path,$full_file_name);
  41. $this->assertTrue(is_null($res));
  42. //var_dump($res);
  43. }
  44. function testApiReplaceLinksInString() {
  45. $upload_path='';
  46. $buffer=ob_get_contents();
  47. $res=api_replace_links_in_string($upload_path,$buffer);
  48. $this->assertTrue(is_string($res));
  49. //var_dump($res);
  50. }
  51. function testApiReplaceParameter() {
  52. $count = 0;
  53. $matches = array();
  54. $href_list=array();
  55. $file_path_list[] = $matches[1];
  56. $upload_path='';
  57. $replaceWhat[$count] = $href_list[$count];
  58. /** To can test this function you need to comment "die ('can not create file')"
  59. * $res return void
  60. */
  61. $replaceBy[$count] = " $param_name=\"" . $file_path_list[$count] . "\" target =\"_top\"";
  62. $replaceBy[$count] = $replaceWhat[$count];
  63. $buffer = str_replace($replaceWhat, $replaceBy, $buffer);
  64. $param_name="src";
  65. $res=api_replace_parameter($upload_path, $buffer, $param_name="src");
  66. $this->assertTrue(is_string($res));
  67. //var_dump($res);
  68. }
  69. function testBuildMissingFilesForm() {
  70. global $_course;
  71. $missing_files = array();
  72. $upload_path=api_get_path(SYS_COURSE_PATH).'/COURSEX/document/image';
  73. $file_name = 'board.jpg';
  74. $res=build_missing_files_form($missing_files,$upload_path,$file_name);
  75. $this->assertTrue(is_string($res));
  76. //var_dump($res);
  77. }
  78. function testCheckForMissingFiles() {
  79. $file='';
  80. $res=check_for_missing_files($file);
  81. $this->assertTrue(is_bool($res));
  82. }
  83. function testCleanUpFilesInZip() {
  84. $p_event='';
  85. $p_header['filename']='';
  86. $res=clean_up_files_in_zip($p_event, &$p_header);
  87. $this->assertTrue(is_numeric($res));
  88. //var_dump($res);
  89. }
  90. function testCleanUpPath() {
  91. $path = '/var/tmp/archivo123.txt';
  92. //$path_array = explode('/',$path);
  93. //$path = implode('/',$path_array);
  94. $res = clean_up_path($path);
  95. $this->assertTrue(is_numeric($res));
  96. }
  97. /** To can test this function you need to comment "die ('can not create file')"
  98. * $res return void/
  99. *
  100. */
  101. function testCreateLinkFile() {
  102. $filePath = api_get_path(SYS_PATH).'documentation/readme.html';
  103. $url = 'http://www.chamilo.com';
  104. $res= create_link_file($filePath, $url);
  105. if (!is_numeric($res)) {
  106. $this->assertFalse($res);
  107. }
  108. else{
  109. $this->assertTrue($res);
  110. }
  111. //var_dump($res);
  112. }
  113. function testCreateUnexistingDirectory() {
  114. global $_course, $user_id;
  115. $to_group_id = 1;
  116. $to_user_id = 1;
  117. $base_work_dir = api_get_path(SYS_COURSE_PATH).'COURSEX/document';
  118. $desired_dir_name = 'images';
  119. $res= create_unexisting_directory($_course,$user_id,$to_group_id,$to_user_id,$base_work_dir,$desired_dir_name);
  120. if(is_string($res)){
  121. $this->assertTrue(is_string($res));
  122. $this->assertTrue($res);
  123. } else {
  124. $this->assertTrue(is_bool($res));
  125. $this->assertFalse(is_string($res));
  126. }
  127. //var_dump($res);
  128. }
  129. function testDirTotalSpace() {
  130. $dirPath= api_get_path(SYS_COURSE_PATH).'COURSEX/document/';
  131. $res= dir_total_space($dirPath);
  132. $this->assertTrue(is_numeric($res));
  133. $this->assertTrue($res);
  134. //var_dump($res);
  135. }
  136. function testDisableDangerousFile() {
  137. $filename = 'index.php';
  138. $res= disable_dangerous_file($filename);
  139. $this->assertTrue(is_string($res));
  140. //var_dump($res);
  141. }
  142. function testdocuments_total_space() {
  143. $to_group_id='0';
  144. $res= documents_total_space($to_group_id);
  145. if(!is_null($res)):
  146. $this->assertTrue(is_numeric($res));
  147. endif;
  148. //var_dump($res);
  149. }
  150. function testenough_size() {
  151. $fileSize='';
  152. $dir='';
  153. $maxDirSpace='';
  154. $res= enough_size($fileSize, $dir, $maxDirSpace);
  155. $this->assertTrue(is_bool($res));
  156. //var_dump($res);
  157. }
  158. function enough_space() {
  159. $file_size='';
  160. $max_dir_space='';
  161. $res= enough_space($file_size, $max_dir_space);
  162. $this->assertTrue(is_bool($res));
  163. //var_dump($res);
  164. }
  165. function testfilter_extension() {
  166. $filename='index.php';
  167. $res= filter_extension($filename);
  168. $this->assertTrue(is_numeric($res));
  169. }
  170. function testget_document_title() {
  171. $name='';
  172. $res= get_document_title($name);
  173. $this->assertTrue(is_string($res));
  174. //var_dump($res);
  175. }
  176. function testget_levels() {
  177. $filename='readme.txt';
  178. $res= get_levels($filename);
  179. $this->assertTrue(is_numeric($res));
  180. //var_dump($res);
  181. }
  182. function testhandle_uploaded_document() {
  183. global $_course;
  184. $uploaded_file='';
  185. $base_work_dir='';
  186. $upload_path='';
  187. $user_id='01';
  188. $to_group_id=0;
  189. $to_user_id=NULL;
  190. $maxFilledSpace='';
  191. $unzip=0;
  192. $what_if_file_exists='';
  193. $output=true;
  194. $clean_name = disable_dangerous_file($clean_name);
  195. $where_to_save = $base_work_dir.$upload_path;
  196. $new_name = unique_name($where_to_save, $clean_name);
  197. $new_file_path = $upload_path.$new_name;
  198. $clean_name = disable_dangerous_file($clean_name);
  199. $file_path = $upload_path.$clean_name;
  200. ob_start();
  201. $res= handle_uploaded_document($_course,$uploaded_file,$base_work_dir,$upload_path,$user_id,$to_group_id=0,$to_user_id=NULL,$maxFilledSpace='',$unzip=0,$what_if_file_exists='',$output=true);
  202. $this->assertTrue(is_null($res));
  203. ob_end_clean();
  204. //var_dump($res);
  205. }
  206. function testhtaccess2txt() {
  207. $filename = 'readme.txt';
  208. $res= htaccess2txt($filename);
  209. $this->assertTrue(is_string($res));
  210. //var_dump($res);
  211. }
  212. function testitem_property_update_on_folder() {
  213. global $_course, $user_id;
  214. $path=api_get_path(SYS_COURSE_PATH).'COURSEX/document/license.txt';
  215. $res= item_property_update_on_folder($_course,$path,$user_id);
  216. $this->assertTrue(is_null($res));
  217. //var_dump($res);
  218. }
  219. function testmove_uploaded_file_collection_into_directory() {
  220. global $_course;
  221. $uploaded_file_collection=array();
  222. $base_work_dir='';
  223. $missing_files_dir='';
  224. $user_id='';
  225. $to_group_id='';
  226. $to_user_id='';
  227. $max_filled_space='';
  228. $res= move_uploaded_file_collection_into_directory($_course, $uploaded_file_collection, $base_work_dir, $missing_files_dir,$user_id,$to_group_id,$to_user_id,$max_filled_space);
  229. $this->assertTrue(is_null($res));
  230. //var_dump($res);
  231. }
  232. function testphp2phps () {
  233. $fileName = 'index.php';
  234. $res= php2phps($fileName);
  235. $this->assertTrue(is_string($res));
  236. //var_dump($res);
  237. }
  238. function testprocess_uploaded_file() {
  239. $uploaded_file='';
  240. ob_start();
  241. $res= process_uploaded_file($uploaded_file);
  242. ob_end_clean();
  243. $this->assertTrue(is_bool($res));
  244. }
  245. function testreplace_img_path_in_html_file() {
  246. global $_course;
  247. $originalImgPath='';
  248. $newImgPath='';
  249. $htmlFile='file:///var/www/chamilo/documentation/credits.html';
  250. $res= replace_img_path_in_html_file($originalImgPath, $newImgPath, $htmlFile);
  251. $this->assertTrue(is_null($res));
  252. //var_dump($res);
  253. }
  254. function testsearch_img_from_html() {
  255. $imgFilePath = array();
  256. $htmlFile= 'file:///var/www/chamilo/documentation/credits.html';
  257. $res= search_img_from_html($htmlFile);
  258. if(is_array($res)){
  259. $this->assertTrue(is_array($res));
  260. } else {
  261. $this->assertTrue(is_null($res));
  262. }
  263. //var_dump($res);
  264. }
  265. function testset_default_settings() {
  266. global $_course, $_configuration, $cidReq;
  267. global $default_visibility, $dbTable;
  268. $dbTable = Database::get_course_table(TABLE_DOCUMENT);
  269. $upload_path = api_get_path(SYS_COURSE_PATH).'COURSEX/document';
  270. $filetype="file";
  271. $filename = substr($filename,0,-1);
  272. $res= set_default_settings($upload_path,$filename,$filetype);
  273. $this->assertTrue(is_null($res));
  274. //var_dump($res);
  275. }
  276. function testtreat_uploaded_file() {
  277. $uploadedFile['name']=stripslashes($uploadedFile['name']);
  278. $uploadedFile='';
  279. $baseWorkDir='';
  280. $uploadPath='';
  281. $maxFilledSpace='';
  282. $uncompress= '';
  283. $res= treat_uploaded_file($uploadedFile, $baseWorkDir, $uploadPath, $maxFilledSpace, $uncompress= '');
  284. $this->assertTrue(is_bool($res));
  285. //var_dump($res);
  286. }
  287. function testunique_name() {
  288. $path='';
  289. $name='';
  290. $res= unique_name($path,$name);
  291. $this->assertTrue(is_string($res));
  292. //var_dump($res);
  293. }
  294. function testunzip_uploaded_document() {
  295. //require_once(api_get_path(LIBRARY_PATH).'/pclzip/pclzip.lib.php');
  296. global $_course;
  297. global $_user;
  298. global $to_user_id;
  299. global $to_group_id;
  300. $uploaded_file='';
  301. $upload_path='';
  302. $base_work_dir='';
  303. $max_filled_space='';
  304. ob_start();
  305. $res= unzip_uploaded_document($uploaded_file, $upload_path, $base_work_dir, $max_filled_space, $output = true, $to_group_id=0);
  306. ob_end_clean();
  307. $this->assertTrue(is_bool($res));
  308. //var_dump($res);
  309. }
  310. function testunzip_uploaded_file() {
  311. global $_course;
  312. $uploadedFile = 'README.txt';
  313. $uploadPath = api_get_path(SYS_PATH).$_course.'/document';
  314. $baseWorkDir = api_get_path(SYS_PATH);
  315. $maxFilledSpace = 10;
  316. $res= unzip_uploaded_file($uploadedFile, $uploadPath, $baseWorkDir, $maxFilledSpace);
  317. $this->assertTrue(is_bool($res));
  318. //var_dump($res);
  319. }
  320. function testupdate_existing_document() {
  321. $_course='';
  322. $document_id='';
  323. $filesize='';
  324. $res= update_existing_document($_course,$document_id,$filesize,$readonly=0);
  325. $this->assertTrue(is_bool($res));
  326. //var_dump($res);
  327. }
  328. }
  329. ?>