main_api.lib.test.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870
  1. <?php
  2. use \ChamiloSession as Session;
  3. require_once(api_get_path(LIBRARY_PATH).'course.lib.php');
  4. class TestMainApi extends UnitTestCase {
  5. function TestMainApi() {
  6. $this->UnitTestCase('Main API library - main/inc/lib/main_api.lib.test.php');
  7. }
  8. /*
  9. function testApiProtectCourseScript(){
  10. ob_start();
  11. $res= api_protect_course_script($print_headers=null);
  12. ob_get_contents();
  13. $this->assertTrue(is_string($res));
  14. ob_end_clean();
  15. }
  16. function testApiProtectAdminScript(){
  17. ob_start();
  18. $res = api_protect_admin_script($allow_sessions_admins=false);
  19. ob_end_clean();
  20. //$this->assertTrue(is_string($res));
  21. }
  22. function testApiBlockAnonymousUser(){
  23. ob_start();
  24. $res = api_block_anonymous_users();
  25. $this->assertTrue(is_string($res));
  26. ob_end_clean();
  27. }
  28. */
  29. function testApiGetNavigator(){
  30. ob_start();
  31. $res=api_get_navigator();
  32. $this->assertTrue($res);
  33. ob_end_clean();
  34. }
  35. function testApiIsSelfRegistrationAllowed(){
  36. $res = api_is_self_registration_allowed();
  37. $this->assertTrue(is_bool($res));
  38. //var_dump($res);
  39. }
  40. function testApiGetPath() {
  41. $path_type = trim($path_type);
  42. $path = array(
  43. WEB_PATH => '',
  44. SYS_PATH => '',
  45. REL_PATH => '',
  46. WEB_SERVER_ROOT_PATH => '',
  47. SYS_SERVER_ROOT_PATH => '',
  48. WEB_COURSE_PATH => '',
  49. SYS_COURSE_PATH => '',
  50. REL_COURSE_PATH => '',
  51. REL_CODE_PATH => '',
  52. WEB_CODE_PATH => '',
  53. SYS_CODE_PATH => '',
  54. SYS_LANG_PATH => 'lang/',
  55. WEB_IMG_PATH => 'img/',
  56. WEB_CSS_PATH => 'css/',
  57. GARBAGE_PATH => 'archive/', // Deprecated?
  58. SYS_PLUGIN_PATH => 'plugin/',
  59. WEB_PLUGIN_PATH => 'plugin/',
  60. SYS_ARCHIVE_PATH => 'archive/',
  61. WEB_ARCHIVE_PATH => 'archive/',
  62. INCLUDE_PATH => 'inc/',
  63. LIBRARY_PATH => 'inc/lib/',
  64. CONFIGURATION_PATH => 'inc/conf/',
  65. WEB_LIBRARY_PATH => 'inc/lib/',
  66. WEB_AJAX_PATH => 'inc/ajax/'
  67. );
  68. $res=api_get_path($path_type, $path);
  69. $this->assertTrue(is_null($res));
  70. //var_dump($res);
  71. }
  72. function testApiGetUserId(){
  73. $res= api_get_user_id();
  74. $this->assertPattern('/\d/',$res);
  75. }
  76. function testApiGetUserCoursesReturnTrueWhenOutOfCoursesContext(){
  77. global $tbl_user;
  78. $userid=1;
  79. $fetch_session=true;
  80. $res = api_get_user_courses($userid,$fetch_session);
  81. if(!is_null($res)) :
  82. $this->assertTrue(is_array($res));
  83. endif;
  84. //var_dump($res);
  85. }
  86. function testApiGetUserInfoReturnFalseWhenOutOfUserInfoContext(){
  87. $user_id= 1;
  88. $res = api_get_user_info($user_id);
  89. $this->assertTrue(is_array($res));
  90. //var_dump($res);
  91. }
  92. function testApiGetUserInfoUsernameReturnTrueWhenOutOfUserInfoUsernameContext(){
  93. $res=api_get_user_info_from_username();
  94. $this->assertTrue(is_bool($res));
  95. //var_dump($res);
  96. }
  97. /* Causing problems for some reason on automated tests server
  98. function testApiGetCourseIdReturnFalseWhenOutOfCourseIdContext(){
  99. $res = api_get_course_id();
  100. $this->assertEqual($res,-1);
  101. }
  102. function testApiGetCoursePathReturnFalseWhenOutOfCoursePathContext(){
  103. $res = api_get_course_path();
  104. $this->assertTrue(empty($res));
  105. }
  106. */
  107. function testApiGetCourseSettingReturnFalseWhenOutOfCourseSeetingContext(){
  108. global $_course;
  109. $course_code = $_course;
  110. $setting_name = 1;
  111. $res = api_get_course_setting($setting_name, $course_code);
  112. $this->assertTrue($res);
  113. }
  114. function testApiGetAnonymousId(){
  115. $res = api_get_anonymous_id();
  116. $this->assertTrue(is_numeric($res));
  117. }
  118. function testApiGetCidreq(){
  119. $res=api_get_cidreq();
  120. $this->assertTrue(is_string($res));
  121. }
  122. function testApiGetCourseInfo(){
  123. ob_start();
  124. $res=api_get_course_info();
  125. $this->assertTrue($res);
  126. ob_end_clean();
  127. }
  128. function testApiSessionStart(){
  129. if (!headers_sent()) {
  130. $res = Chamilo::session()->start($already_sintalled=true);
  131. }
  132. $this->assertTrue(is_null($res));
  133. }
  134. // function testApiSessionRegister(){
  135. // $$variable[session_register]=false;
  136. // global $$variable;
  137. // if (!headers_sent()) {
  138. // $res=Session::register($$variable, $$variable);
  139. // }
  140. // $this->assertTrue(is_null($res));
  141. // $this->assertTrue(is_null($variable[session_register]));
  142. // }
  143. function testApiSessionUnregister() {
  144. $variable=strval($variable);
  145. $res=Session::erase($variable);
  146. $this->assertTrue(is_null($res));
  147. $this->assertTrue(is_null($_SESSION[$variable]=null));
  148. }
  149. function testApiSessionClear() {
  150. $variable = 'test';
  151. if (!headers_sent()) {
  152. $res=Session::clear($variable);
  153. }
  154. $this->assertTrue(is_null($res));
  155. //var_dump($res);
  156. }
  157. function testApiSessionDestroy(){
  158. if (!headers_sent()) {
  159. $res=Session::destroy();
  160. }
  161. $this->assertTrue(is_null($res));
  162. //var_dump($res);
  163. }
  164. function testApiAddUrlParamReturnsUrlWhenNoParam() {
  165. global $url;
  166. $res=api_add_url_param($url, null, $filter_xss=true);
  167. $this->assertEqual($res,$url);
  168. }
  169. function testApiGeneratePassword() {
  170. $res = api_generate_password($length = 8);
  171. $this->assertTrue(is_string($res));
  172. //var_dump($res);
  173. }
  174. function testApiCheckPassword(){
  175. $password = '';
  176. $res = api_check_password($password);
  177. $this->assertTrue(is_bool($res));
  178. //var_dump($res);
  179. }
  180. function testApiClearAnonymous(){
  181. global $_user;
  182. $_user['user_id'] = 1;
  183. $res = api_clear_anonymous($db_check=false);
  184. $this->assertTrue(is_bool($res));
  185. //var_dump($res);
  186. $this->assertTrue(isset($_user['user_id'] ));
  187. }
  188. function testApiTruncStr() {
  189. $text= 'test';
  190. $res= api_trunc_str($text, $length = 30, $suffix = '...', $middle = false, $encoding = null);
  191. $this->assertTrue(is_string($res));
  192. }
  193. function testDomesticate(){
  194. $input= 'dome';
  195. $res = domesticate($input);
  196. $this->assertTrue($res);
  197. }
  198. function testGetStatusFromCode(){
  199. $status_code = 1;
  200. $res=get_status_from_code($status_code);
  201. $this->assertTrue($res);
  202. }
  203. function testApiSetFailure(){
  204. global $api_failureList;
  205. $failureType=true;
  206. $res = api_set_failure($failureType);
  207. $this->assertTrue(is_bool($res));
  208. $this->assertTrue($api_failureList);
  209. }
  210. function testApiSetAnonymous(){
  211. $res = api_set_anonymous();
  212. $this->assertTrue(is_bool($res));
  213. }
  214. function testApiGetLastFailure(){
  215. $res= api_Get_last_failure();
  216. $this->assertTrue($res);
  217. }
  218. function testApiGetSessionId(){
  219. $res = api_get_session_id();
  220. $this->assertTrue(is_numeric($res));
  221. //var_dump($res);
  222. }
  223. function testApiGetSessionName(){
  224. $session_id='';
  225. $res = api_get_session_name($session_id);
  226. //$this->assertTrue(is_string($res));
  227. $this->assertTrue(is_null($res));
  228. //var_dump($res);
  229. }
  230. function testAPiGetSetting(){
  231. global $variable, $_setting;
  232. $res=api_get_setting($variable, $key= NULL);
  233. $this->assertTrue(is_null($res));
  234. //var_dump($res);
  235. }
  236. function testApiGetSelf(){
  237. $res = api_get_self();
  238. $this->assertTrue(is_string($res));
  239. //var_dump($res);
  240. }
  241. /* function deprecated
  242. function testGetLang(){
  243. global $language_interface, $language_interface_initial_value, $language_file,$variable;
  244. $res = get_lang($variable, $notrans = 'DLTT', $language = null);
  245. $this->assertTrue(is_string($res));
  246. //var_dump($res);
  247. }
  248. function testGetLangToSystemEncoding(){
  249. global $language, $name;
  250. $res=&get_lang_to_system_encoding(& $string, $language);
  251. ob_start();
  252. api_disp_html_area($name, $content ='', $height='', $width='100%', $optAttrib='');
  253. $res = ob_get_contents();
  254. $this->assertNotEqual($res,'');
  255. ob_end_clean();
  256. }
  257. function testApiGetInterfaceLanguage(){
  258. global $language_interface;
  259. $language_interface=false;
  260. ob_start();
  261. $res = api_get_interface_language();
  262. $res = ob_get_contents();
  263. $this->assertTrue(is_string($res));
  264. $this->assertTrue(isset($language_interface));
  265. ob_end_clean();
  266. //var_dump($res);
  267. }
  268. */
  269. function testApiIsPlatformAdmin(){
  270. ob_start();
  271. global $_user;
  272. $_user['status']=true;
  273. $allow_sessions_admins=true;
  274. $res= api_is_platform_admin($allow_sessions_admins=true);
  275. $this->assertTrue(is_bool($res));
  276. $this->assertTrue($_SESSION['is_platformAdmin']=true);
  277. $this->assertTrue(isset($_user['status']));
  278. ob_end_clean();
  279. //var_dump($res);
  280. }
  281. function testApiIsAllowedToCreateCourse() {
  282. $res=api_is_allowed_to_create_course();
  283. if(!is_bool($res)){
  284. $this->assertTrue(is_null($res));
  285. }
  286. }
  287. function testApiIsCourseAdminIsFalseWhenNoCourseContextDefined() {
  288. $res=api_is_course_admin();
  289. if($_SESSION['is_courseAdmin'] === 1) {
  290. $this->assertTrue($res);
  291. } else {
  292. $this->assertFalse($res);
  293. }
  294. }
  295. function testApiIsCourseCoach() {
  296. $res=api_is_course_coach();
  297. if(!is_bool($res)){
  298. $this->assertTrue(is_null($res));
  299. }
  300. }
  301. function testApiIsCoach(){
  302. global $_user;
  303. global $sessionIsCoach;
  304. $_user['user_id']=2;
  305. $sessionIsCoach=Database::store_result($result=false);
  306. $res=api_is_coach();
  307. $this->assertTrue(is_bool($res));
  308. //var_dump($res);
  309. $this->assertTrue($_user['user_id']);
  310. $this->assertTrue(is_array($sessionIsCoach));
  311. //var_dump($sessionIsCoach);
  312. }
  313. function testApiIsSessionAdmin(){
  314. global $_user;
  315. $_user['status']=true;
  316. $res=api_is_session_admin();
  317. $this->assertTrue(is_bool($res));
  318. $this->assertTrue(is_array($_user));
  319. //var_dump($_user);
  320. }
  321. function testApiDisplayToolTitle(){
  322. $tit=true;
  323. $titleElement['mainTitle']=$tit;
  324. ob_start();
  325. api_display_tool_title($titleElement);
  326. $res = ob_get_contents();
  327. $this->assertEqual($res,'<h3>1</h3>');
  328. $this->assertTrue(isset($titleElement));
  329. $this->assertTrue($titleElement['mainTitle']);
  330. $this->assertPattern('/<h3>1<\/h3>/', $res);
  331. ob_end_clean();
  332. }
  333. /* This test fails but it doesn't say much anyway
  334. function testApiDisplayToolViewOption(){
  335. ob_start();
  336. api_display_tool_view_option();
  337. $res = ob_get_contents();
  338. ob_end_clean();
  339. $this->assertTrue(empty($res));
  340. }
  341. */
  342. function testApiDisplayArray(){
  343. global $info_array;
  344. ob_start();
  345. api_display_array($info_array);
  346. $res = ob_get_contents();
  347. $this->assertNotEqual($res,'');
  348. ob_end_clean();
  349. }
  350. function testApiDisplayDebugInfo(){
  351. $message = "mensaje de error"; // siempre que puedas, te conviene probar con valores creados al azar
  352. ob_start();
  353. api_display_debug_info($message);
  354. $res = ob_get_contents();
  355. $this->assertNotEqual($res,'');
  356. ob_end_clean();
  357. }
  358. function testApiIsAllowedToEdit(){
  359. $is_courseAdmin=false;
  360. $res=api_is_allowed_to_edit($tutor=false,$scoach=false);
  361. $this->assertTrue(is_bool($res));
  362. $this->assertTrue(isset($is_courseAdmin));
  363. }
  364. function testApiIsAllowed(){
  365. global $_course, $_user;
  366. $tool= 'full';
  367. $action = 'delete';
  368. $res=api_is_allowed($tool, $action, $task_id=0);
  369. if(!is_bool($res)){
  370. $this->assertTrue(is_null($res));
  371. }
  372. $this->assertTrue($action);
  373. $this->assertTrue($_user['user_id']);
  374. }
  375. function testApiIsAnonymous(){
  376. global $_user, $use_anonymous;
  377. $_user['is_anonymous']=False;
  378. $res=api_is_anonymous($user_id=null, $db_check=false);
  379. $this->assertTrue(is_bool($res));
  380. $this->assertFalse(isset($user_id));
  381. $this->assertTrue(isset($_user['is_anonymous']));
  382. $this->assertTrue(is_null($use_anonymous));
  383. $this->assertTrue(is_bool($db_check));
  384. //var_dump($db_check);
  385. }
  386. function testApiNotAllowed(){
  387. ob_start();
  388. //api_not_allowed($print_headers = false);
  389. $res = ob_get_contents();
  390. $this->assertEqual($res,'');
  391. ob_end_clean();
  392. }
  393. /*
  394. function testConvertMysqlDate(){
  395. $last_post_datetime = array();
  396. $res=convert_mysql_date($last_post_datetime);
  397. $this->assertTrue($res);
  398. }
  399. */
  400. function testApiGetDatetime(){
  401. $res=api_get_datetime($time=null);
  402. $this->assertTrue($res);
  403. $this->assertFalse(isset($time));
  404. }
  405. function testApiGetItemVisibility(){
  406. global $_course;
  407. $tool = 'document';
  408. $id=1;
  409. $_course['dbName']=false;
  410. $res =api_get_item_visibility($_course,$tool,$id);
  411. $this->assertTrue(is_numeric($res));
  412. $this->assertFalse(is_bool($res));
  413. }
  414. function testApiItemPropertyUpdate(){
  415. global $_course, $tool, $item_id, $lastedit_type, $user_id;
  416. $res=api_item_property_update($_course, $tool, $item_id, $lastedit_type, $user_id, $to_group_id = 0, $to_user_id = NULL, $start_visible = 0, $end_visible = 0);
  417. $this-> assertTrue($res);
  418. }
  419. function testApiGetLanguagesCombo(){
  420. $res=api_get_languages_combo($name="language");
  421. $this->assertTrue($res);
  422. }
  423. function testApiDisplayLanguageForm(){
  424. ob_start();
  425. api_display_language_form($hide_if_no_choice=false);
  426. $res = ob_get_contents();
  427. $this->assertNotEqual($res,'');
  428. ob_end_clean();
  429. }
  430. function testApiGetLanguages(){
  431. $res= api_get_languages();
  432. $this->assertTrue($res);
  433. }
  434. function testApiGetThemes(){
  435. $cssdir= api_get_path(SYS_PATH).'main/css/';
  436. $res=api_get_themes();
  437. $this->assertTrue($res);
  438. $this->assertTrue($cssdir);
  439. }
  440. function testApiDispHtmlArea(){
  441. $name = 'name';
  442. global $_configuration, $_course, $fck_attribute;
  443. ob_start();
  444. api_disp_html_area($name, $content ='', $height='', $width='100%', $optAttrib='');
  445. $res = ob_get_contents();
  446. $this->assertNotEqual($res,'');
  447. ob_end_clean();
  448. }
  449. function testApiReturnHtmlArea(){
  450. $name = true;
  451. global $_configuration, $_course, $fck_attribute;
  452. $res=api_return_html_area($name, $content='', $height='', $width='100%', $optAttrib='');
  453. $this->assertTrue($res);
  454. }
  455. function testApiSendMail(){
  456. $to= 'chamilotest@beeznest.com';
  457. $subject='Hello';
  458. $message='test message';
  459. $res=api_send_mail($to, $subject, $message, $additional_headers = null, $additional_parameters = null);
  460. $this->assertTrue(is_numeric($res));
  461. //var_dump($res);
  462. //var_dump($send_mail);
  463. }
  464. function testApiMaxSortValue(){
  465. $user_course_category=1;
  466. $user_id =1;
  467. $res= api_max_sort_value($user_course_category,$user_id);
  468. $this->assertTrue(is_null($res));
  469. //var_dump($res);
  470. }
  471. function testString2Boolean(){
  472. global $string;
  473. $res=api_string_2_boolean($string);
  474. $this->assertFalse($res);
  475. }
  476. function testApiNumberOfPlugins(){
  477. global $_plugins;
  478. $location=2;
  479. $_plugins[$location]=1;
  480. $res=api_number_of_plugins($location);
  481. $this->assertFalse($res);
  482. $this->assertTrue($_plugins[$location]);
  483. }
  484. function testApiPlugin(){
  485. global $_plugins;
  486. $location=2;
  487. $_plugins[$location]=1;
  488. $res1 = api_plugin($location);
  489. $this->assertFalse($res1);
  490. $this->assertTrue($_plugins[$location]);
  491. }
  492. function testApiIsPluginInstalled(){
  493. $plugin_name = false;
  494. $plugin_list = true;
  495. $res = api_is_plugin_installed($plugin_list, $plugin_name);
  496. $this->assertTrue(is_bool($res));
  497. }
  498. function testApiTimeToHms(){
  499. $seconds = -1;
  500. ob_start();
  501. api_time_to_hms($seconds);
  502. $res = ob_get_contents();
  503. $this-> assertTrue(is_string($res));
  504. ob_end_clean();
  505. //var_dump($res);
  506. }
  507. public function testApiGetPermissionsForNewDirectories() {
  508. $perm = trim(api_get_setting('permissions_for_new_directories'));
  509. $perm = octdec(!empty($perm) ? $perm : '0777');
  510. $res = api_get_permissions_for_new_directories();
  511. $this->assertTrue($res === $perm);
  512. //var_dump($res);
  513. }
  514. public function testApiGetPermissionsForNewFiles() {
  515. $perm = trim(api_get_setting('permissions_for_new_files'));
  516. $perm = octdec(!empty($perm) ? $perm : '0666');
  517. $res = api_get_permissions_for_new_files();
  518. $this->assertTrue($res === $perm);
  519. //var_dump($res);
  520. }
  521. function testCopyr_file_to_nothing(){
  522. $source = api_get_path(SYS_CODE_PATH).'admin/add_users_to_session.php';
  523. $dest = '';
  524. $res = copyr($source, $dest, $exclude=array(), $copied_files=array());
  525. $this->assertFalse($res,'Function coyr() should have not proceeeded because of empty destination');
  526. //var_dump($res);
  527. }
  528. /* This function is behaving differently on automated test server
  529. function testApiChmod_R(){
  530. // We know, it does not work for Windows.
  531. if (IS_WINDOWS_OS) { return true; }
  532. $dirname = api_get_path(SYS_LANG_PATH);
  533. $perm_dir = substr(sprintf('%o', fileperms($dirname)), -4);
  534. $this->assertEqual($perm_dir,'0777');
  535. $new_filemode = '0775';
  536. $res = api_chmod_R($dirname, $new_filemode);
  537. $this->assertTrue($res);
  538. }
  539. */
  540. function testApiGetVersion(){
  541. global $_configuration;
  542. $res = api_get_version();
  543. $this->assertTrue($res);
  544. }
  545. function testApiStatusExists(){
  546. $status_asked = 'user';
  547. $res = api_status_exists($status_asked);
  548. $this->assertTrue(is_bool($res));
  549. }
  550. /* Fails for some reason on automated tests server
  551. function testApiStatusKey(){
  552. $status = 'user';
  553. $res = api_status_key($status);
  554. //var_dump($res);
  555. $this->assertEqual($res,STUDENT);
  556. }
  557. */
  558. function testApiGetStatusLangvars(){
  559. $res = api_get_status_langvars();
  560. $this->assertTrue(is_array($res));
  561. }
  562. function testApiSetSetting(){
  563. ob_start();
  564. $var = 0;
  565. $value = 2;
  566. $res = api_set_setting($var,$value,$subvar=null,$cat=null,$access_url=1);
  567. $this->assertTrue(is_bool($res));
  568. ob_end_clean();
  569. //var_dump($res);
  570. }
  571. function testApiSetSettingsCategory(){
  572. $category = $_GET['category'];
  573. $res = api_set_settings_category($category,$value=null,$access_url=1);
  574. $this->assertTrue(is_null($category));
  575. $this->assertTrue(is_bool($res));
  576. //var_dump($res);
  577. //var_dump($category);
  578. }
  579. function testApiGetAccessUrls(){
  580. $res = api_get_access_urls($from=0,$to=1000000,$order='url',$direction='ASC');
  581. $this->assertTrue(is_array($res));
  582. //var_dump($res);
  583. }
  584. function testApiGetAccessUrl(){
  585. $id=1;
  586. $res = api_get_access_url($id);
  587. $this->assertTrue(is_array($res));
  588. }
  589. function testApiAddAccessUrl(){
  590. $u = Database::escape_string($u);
  591. $d = Database::escape_string($d);
  592. $res = api_add_access_url($u,$d='',$a=1);
  593. $this->assertTrue(is_numeric($res));
  594. //var_dump($res);
  595. }
  596. function testApiGetSettings(){
  597. $res = api_get_settings($cat=null,$ordering='list',$access_url=1,$url_changeable=0);
  598. $this->assertTrue(is_array($res));
  599. //var_dump($res);
  600. }
  601. function testApiGetSettingsCategories(){
  602. $res = api_get_settings_categories($exceptions=array(),$access_url=1);
  603. $this->assertTrue(is_array($res));
  604. //var_dump($res);
  605. }
  606. function testApiDeleteSetting(){
  607. $v = false;
  608. $res = api_delete_setting($v, $s=NULL, $a=1);
  609. $this->assertTrue(is_bool($res));
  610. //var_dump($res);
  611. }
  612. /*
  613. function testApiDeleteCategorySettings(){
  614. $c= false;
  615. $res = api_delete_category_settings($c,$a=1);
  616. $this->assertTrue(is_bool($res));
  617. //var_dump($res);
  618. }
  619. */
  620. function testApiAddSetting(){
  621. $sk=null;
  622. $type='textfield';
  623. $c=null;
  624. $title='';
  625. $com='';
  626. $sc=null;
  627. $skt=null;
  628. $a=1;
  629. $v=0;
  630. $va=array('val'=>10, 'var'=>'name');
  631. $res= api_add_setting($va['val'],$va['var'],null,null,null,null,null,null,null,null,null);
  632. $this->assertTrue(is_bool($res));
  633. //var_dump($res);
  634. }
  635. function testApiIsCourseVisibleForUser() {
  636. global $_user, $cidReq;
  637. $userid = $_user;
  638. $cid = $cidReq ;
  639. $res = api_is_course_visible_for_user($userid, $cid);
  640. $this->assertTrue(is_bool($res));
  641. //var_dump($res);
  642. }
  643. function testApiIsElementInTheSession(){
  644. ob_start();
  645. $_tool['tool'] = 'TOOL_SURVEY';
  646. $_id['element_id']=3;
  647. $res = api_is_element_in_the_session($_tool['tool'], $_id['element_id'], $session_id=null);
  648. $this->assertTrue(is_bool($res));
  649. $this->assertTrue((isset($_tool['tool'],$_id['element_id'])));
  650. ob_end_clean();
  651. //var_dump($res);
  652. }
  653. function testReplaceDangerousChar(){
  654. $filename =ereg_replace("\.+$", "", substr(strtr(ereg_replace(
  655. "[^!-~\x80-\xFF]", "_", trim($filename)), '\/:*?"<>|\'',
  656. /*Keep C1 controls for UTF-8 streams **/ '-----_---_'), 0, 250));
  657. $res = replace_dangerous_char($filename, $strict = 'loose');
  658. $this->assertEqual($res,$filename, $message = 'no se pudo');
  659. }
  660. function testApiRequestUri(){
  661. $res = api_request_uri();
  662. $this->assertTrue($res);
  663. }
  664. function testApiCreateIncludePathSetting(){
  665. $res=api_create_include_path_setting();
  666. $this->assertTrue($res);
  667. }
  668. function testApiGetCurrentAccessUrlId(){
  669. $res=api_get_current_access_url_id();
  670. $this->assertTrue($res);
  671. }
  672. function testApiGetAccessUrlFromUser(){
  673. $user_id=1;
  674. $res= api_get_access_url_from_user($user_id);
  675. $this->assertTrue(is_array($res));
  676. //var_dump($res);
  677. }
  678. function testApiGetStatusOfUserInCourse(){
  679. $id = array(
  680. 'course_code'=>'TEST',
  681. 'user_id'=>'1');
  682. $res=api_get_status_of_user_in_course($id['course_code'],$id['user_id']);
  683. $this->assertTrue(is_null($res));
  684. //var_dump($res);
  685. }
  686. function testApiIsInCourse(){
  687. $_SESSION['_course']['sysCode']=0;
  688. $res=api_is_in_course($course_code=null);
  689. $this->assertTrue(is_bool($res));
  690. $this->assertTrue(isset($_SESSION['_course']['sysCode']));
  691. //var_dump($res);
  692. }
  693. function testApiIsInGroup(){
  694. $res=api_is_in_group($group_id=null, $course_code=null);
  695. $this->assertTrue(is_bool($res));
  696. //var_dump($res);
  697. }
  698. function testApiIsXmlHttpRequest(){
  699. $res=api_is_xml_http_request();
  700. $this->assertTrue(isset($res));
  701. }
  702. function testApiGetEncryptedPassword(){
  703. $pass= array ('password'=> '2222');
  704. $res=api_get_encrypted_password($pass['password'],null);
  705. $this->assertTrue($res);
  706. $this->assertPattern('/\d/',$res);
  707. }
  708. function testApiIsValidSecretKey(){
  709. global $_configuration;
  710. $key = array(
  711. 'original_key_secret'=>'2121212',
  712. 'security_key'=>'2121212');
  713. $res = api_is_valid_secret_key($key['original_key_secret'],$key['security_key']);
  714. $this->assertTrue($_configuration);
  715. $this->assertFalse($res);
  716. $this->assertTrue($key);
  717. $this->assertEqual($key['original_key_secret'],$key['security_key'], $message ='%s');
  718. }
  719. function testApiIsUserOfCourse(){
  720. $course_id = 1;
  721. $user_id = 1;
  722. $tbl_course_rel_user =false;
  723. $sql='SELECT user_id FROM '.$tbl_course_rel_user.' WHERE course_code="'.Database::escape_string($course_id).'" AND user_id="'.Database::escape_string($user_id).'"';
  724. $res= api_is_user_of_course($course_id, $user_id);
  725. $this->assertFalse($res);
  726. $this->assertFalse($tbl_course_rel_user);
  727. $this->assertTrue($sql);
  728. }
  729. function testApiIsWindowsOs(){
  730. $res= api_is_windows_os();
  731. $this->assertTrue(is_bool($res));
  732. //var_dump($res);
  733. }
  734. function testApiResizeImage(){
  735. //global $image, $target_width, $target_height;
  736. $resize = array('image' =>'image.jpg', 'target_width'=>100, 'target_height'=>100);
  737. $res = api_resize_image($resize['image'],$resize['target_width'],$resize['target_height']);
  738. $this->assertTrue(is_array($res));
  739. $this->assertWithinMargin($first = 10, $second=20,$margin=200, $message = 'no se pudo redimensionar imagen');
  740. //var_dump($res);
  741. }
  742. function testApiCalculateImageSize(){
  743. global $image_width, $image_height, $target_width, $target_height;
  744. $result = array($image_width, $image_height);
  745. $res = api_calculate_image_size($image_width, $image_height, $target_width, $target_height);
  746. $this->assertTrue(is_array($res));
  747. $this->assertTrue($result);
  748. //var_dump($res);
  749. }
  750. function testApiGetToolsLists(){
  751. $tool_list = 'false';
  752. $res = api_get_tools_lists($my_tool =null);
  753. $this->assertTrue(is_array($res));
  754. $this->assertTrue($tool_list);
  755. //var_dump($res);
  756. }
  757. public function TestDeleteCourse() {
  758. $code = 'COURSETEST';
  759. $res = CourseManager::delete_course($code);
  760. $path = api_get_path(SYS_PATH).'archive';
  761. if ($handle = opendir($path)) {
  762. while (false !== ($file = readdir($handle))) {
  763. if (strpos($file,$code)!==false) {
  764. if (is_dir($path.'/'.$file)) {
  765. rmdirr($path.'/'.$file);
  766. }
  767. }
  768. }
  769. closedir($handle);
  770. }
  771. }
  772. }
  773. ?>