groupmanager.lib.test.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464
  1. <?php
  2. require_once(api_get_path(LIBRARY_PATH).'groupmanager.lib.php');
  3. require_once(api_get_path(LIBRARY_PATH).'database.lib.php');
  4. require_once(api_get_path(LIBRARY_PATH).'course.lib.php');
  5. require_once(api_get_path(LIBRARY_PATH).'classmanager.lib.php');
  6. require_once(api_get_path(LIBRARY_PATH).'fileUpload.lib.php');
  7. require_once(api_get_path(LIBRARY_PATH).'fileManage.lib.php');
  8. require_once(api_get_path(LIBRARY_PATH).'tablesort.lib.php');
  9. class TestGroupManager extends UnitTestCase {
  10. public function __construct() {
  11. $this->UnitTestCase('Group manager library - main/inc/lib/groupmanager.lib.test.php');
  12. TestManager::create_test_course('COURSEGROUP');
  13. }
  14. public function __destruct() {
  15. TestManager::delete_test_course('COURSEGROUP');
  16. }
  17. /**
  18. * Tests about groupmanager csv using many class database, class manager,
  19. * file manager, course manager and table sort.
  20. * @author Ricardo Rodriguez Salazar
  21. */
  22. public function testGetGroupList(){
  23. global $_user;
  24. $res = GroupManager::get_group_list();
  25. $this->assertTrue(is_array($res));
  26. }
  27. public function testCreateGroupIsNumeric(){
  28. $name='1';
  29. $category_id='1';
  30. $tutor='';
  31. $places='1';
  32. global $_course, $_user;
  33. $res = GroupManager::create_group($name, $category_id, $tutor, $places);
  34. $this->assertTrue(is_numeric($res));
  35. $this->assertTrue($res > 0);
  36. }
  37. public function testCreateSubgroups(){
  38. global $_course;
  39. $group_id = 1;
  40. $number_of_groups = 2;
  41. $res = GroupManager::create_subgroups($group_id, $number_of_groups);
  42. $this->assertTrue(is_null($res));
  43. //var_dump($res);
  44. }
  45. public function testCreateGroupsFromVirtualCourses(){
  46. $res = GroupManager::create_groups_from_virtual_courses();
  47. $this->assertTrue($res);
  48. $this->assertTrue(is_array($res));
  49. //var_dump($res);
  50. }
  51. public function testCreateClassGroups(){
  52. $category_id=2;
  53. $res =GroupManager::create_class_groups($category_id);
  54. $this->assertTrue(is_array($res));
  55. //var_dump($res);
  56. }
  57. public function testDeleteGroups(){
  58. $group_ids='01';
  59. $course_code=null;
  60. $res =GroupManager::delete_groups($group_ids, $course_code = null);
  61. $this->assertTrue(is_numeric($res));
  62. //var_dump($res);
  63. }
  64. public function testGetGroupProperties(){
  65. $group_id=01;
  66. $res = GroupManager::get_group_properties($group_id);
  67. $this->assertTrue($res);
  68. $this->assertTrue(is_array($res));
  69. //var_dump($res);
  70. }
  71. public function testSetGroupProperties(){
  72. $group= array('group_id'=>'01',
  73. 'name'=>'1',
  74. 'description'=>'',
  75. 'maximum_number_of_students'=>'2',
  76. 'doc_state' =>'',
  77. 'work_state' =>'',
  78. 'calendar_state' =>'',
  79. 'announcements_state'=>'',
  80. 'forum_state'=>'',
  81. 'wiki_state'=>'',
  82. 'chat_state' =>'',
  83. 'self_registration_allowed'=>'',
  84. 'self_unregistration_allowed'=>'');
  85. $res = GroupManager::set_group_properties($group['group_id'], $group['name'], $group['description'],
  86. $group['maximum_number_of_students'], $group['doc_state'],
  87. $group['work_state'], $group['calendar_state'], $group['announcements_state'],
  88. $group['forum_state'],$group['wiki_state'],$group['chat_state'], $group['self_registration_allowed'],
  89. $group['self_unregistration_allowed']);
  90. $this->assertTrue(is_bool($res));
  91. //var_dump($res);
  92. }
  93. public function testGetNumberOfGroups(){
  94. $res = GroupManager::get_number_of_groups();
  95. $this->assertTrue(($res));
  96. $this->assertTrue(is_string($res));
  97. //var_dump($res);
  98. }
  99. public function testGetCategories(){
  100. $course_code ='COURSETEST';
  101. $course_db = 'chamilo_COURSETEST';
  102. $res = GroupManager::get_categories($course_code);
  103. $this->assertTrue(is_array($res));
  104. //var_dump($res);
  105. }
  106. public function testGetCategory(){
  107. $id =2;
  108. $course_code = 'COURSETEST';
  109. $res = GroupManager::get_category($id,$course_code);
  110. $this->assertTrue(is_array($res));
  111. $this->assertTrue($res);
  112. //var_dump($res);
  113. }
  114. public function testGetCategoryFromGroup(){
  115. $course_code='COURSETEST';
  116. $group_id= 1;
  117. $course_db = 'chamilo_COURSETEST';
  118. $resu = GroupManager::get_category_from_group($group_id,$course_code);
  119. $this->assertTrue(is_bool($resu));
  120. //var_dump($res);
  121. //var_dump($cat);
  122. }
  123. public function testDeleteCategory(){
  124. $cat_id=1;
  125. $course_code = 'COURSETEST';
  126. $course_db = 'chamilo_COURSETEST';
  127. $res = GroupManager::delete_category($cat_id, $course_code);
  128. $this->assertTrue(is_null($res));
  129. $this->assertNull($res);
  130. //var_dump($res);
  131. }
  132. public function testCreateCategory(){
  133. $categ = array(
  134. 'title'=>'group test',
  135. 'description'=>'description test',
  136. 'doc_state'=> 1,
  137. 'work_state'=> 1,
  138. 'calendar_state'=> 1,
  139. 'announcements_state' => 1,
  140. 'forum_state' => 1,
  141. 'wiki_state' => 1,
  142. 'chat_state' => 1,
  143. 'self_registration_allowed' => TRUE,
  144. 'self_unregistration_allowed' => FALSE,
  145. 'maximum_number_of_students'=> 2,
  146. 'groups_per_user'=>4);
  147. $res = GroupManager::create_category($categ['title'], $categ['description'],
  148. $categ['doc_state'], $categ['work_state'], $categ['calendar_state'],
  149. $categ['announcements_state'], $categ['forum_state'],$categ['wiki_state'],
  150. $categ['chat_state'],$categ['self_registration_allowed'],$categ['self_unregistration_allowed'],
  151. $categ['maximum_number_of_students'],$categ['groups_per_user']);
  152. $this->assertTrue(is_numeric($res));
  153. //var_dump($res);
  154. }
  155. public function testUpdateCategory(){
  156. $categ = array(
  157. 'id'=>2,
  158. 'title'=>'DefaultGroupCategory',
  159. 'description'=>'xxxxx',
  160. 'doc_state'=>'xxxx',
  161. 'work_state'=>'xxxxx',
  162. 'calendar_state'=>'',
  163. 'announcements_state'=>'',
  164. 'forum_state'=>'',
  165. 'wiki_state'=>'',
  166. 'chat_state' =>'',
  167. 'self_registration_allowed'=>'',
  168. 'self_unregistration_allowed'=>'',
  169. 'maximum_number_of_students'=>'',
  170. 'groups_per_user'=>'0');
  171. $res = GroupManager::update_category($categ['id'], $categ['title'], $categ['description'],
  172. $categ['doc_state'], $categ['work_state'], $categ['calendar_state'], $categ['announcements_state'],
  173. $categ['forum_state'],$categ['wiki_state'], $categ['chat_state'],$categ['self_registration_allowed'],$categ['self_unregistration_allowed'],
  174. $categ['maximum_number_of_students'],$categ['groups_per_user']);
  175. $this->assertTrue(is_null($res));
  176. $this->assertTrue($res ===null);
  177. }
  178. public function testGetCurrenMaxGroupsPerUser(){
  179. $category_id = 2;
  180. $course_code = 'COURSEGROUP';
  181. $res =GroupManager::get_current_max_groups_per_user($category_id = null, $course_code = null);
  182. $this->assertTrue(is_Null($res));
  183. }
  184. public function testSwapCategoryOrder(){
  185. $id1= 1;
  186. $id2= 3;
  187. $res = GroupManager::swap_category_order($id1,$id2);
  188. $this->assertFalse($res);
  189. $this->assertNull($res,true);
  190. }
  191. public function testGetUsers(){
  192. $group_id= 1;
  193. $res =GroupManager::get_users($group_id);
  194. $this->assertTrue(is_array($res));
  195. $this->assertTrue($res ===array());
  196. }
  197. public function testFillGroups(){
  198. global $_course;
  199. $group_ids= 2;
  200. $res = GroupManager::fill_groups($group_ids);
  201. $this->assertNull($res);
  202. $this->assertEqual($res,0);
  203. }
  204. public function testNumberOfStudents(){
  205. global $_course;
  206. $group_id= 2;
  207. $res = GroupManager::number_of_students($group_id);
  208. $this->assertFalse($res);
  209. $this->assertTrue(is_string($res));
  210. //var_dump($res);
  211. }
  212. public function testMaximumNumberOfStudents(){
  213. global $_course;
  214. $group_id = 2;
  215. $res =GroupManager::maximum_number_of_students($group_id);
  216. $this->assertTrue($res);
  217. $this->assertTrue(is_string($res));
  218. //var_dump($res);
  219. }
  220. public function testUserInNumberOfGroups(){
  221. global $_course;
  222. $user_id= 1;
  223. $cat_id = 6;
  224. $res = GroupManager::user_in_number_of_groups($user_id,$cat_id);
  225. $this->assertTrue(is_numeric($cat_id));
  226. $this->assertTrue(is_string($res));
  227. //var_dump($res);
  228. }
  229. public function testIsSelfRegistrationAllowed(){
  230. $user_id = 1;
  231. $group_id = 6;
  232. $res = GroupManager::is_self_registration_allowed($user_id,$group_id);
  233. $this->assertTrue(is_bool($res));
  234. $this->assertTrue($res === false);
  235. //var_dump($res);
  236. }
  237. public function testIsSelfUnregistrationAllowed(){
  238. $user_id = 2 ;
  239. $group_id = 6;
  240. $res =GroupManager::is_self_unregistration_allowed($user_id,$group_id);
  241. $this->assertTrue(is_bool($res));
  242. $this->assertTrue($res === false);
  243. //var_dump($res);
  244. }
  245. public function testIsSubscribed(){
  246. $db_result = 2;
  247. $user_id = 2;
  248. $group_id = 6;
  249. $res = GroupManager::is_subscribed($user_id, $group_id);
  250. $this->assertTrue(is_bool($res));
  251. //var_dump($res);
  252. }
  253. public function testCanUserSubscribe(){
  254. global $user_id;
  255. $group_id = 2;
  256. global $_course;
  257. $res = GroupManager::can_user_subscribe($user_id, $group_id);
  258. $this->assertTrue(is_numeric($res));
  259. //var_dump($res);
  260. }
  261. public function testCanUserUnsubscribe(){
  262. global $user_id;
  263. $group_id = 6;
  264. $res = GroupManager::can_user_unsubscribe($user_id, $group_id);
  265. $this->assertTrue(is_bool($res));
  266. $this->assertTrue($res === false);
  267. //var_dump($res);
  268. }
  269. public function testGetSubscribedUsers(){
  270. $group_id = 2;
  271. $res = GroupManager::get_subscribed_users($group_id);
  272. $this->assertTrue(is_array($res));
  273. //var_dump($res);
  274. }
  275. public function testGetSubscribedTutors(){
  276. $group_id = 2;
  277. $res = GroupManager::get_subscribed_tutors($group_id);
  278. $this->assertTrue(is_array($res));
  279. //var_dump($res);
  280. }
  281. public function testSubscribeUsers(){
  282. global $user_ids;
  283. $group_id = 2;
  284. $res = GroupManager::subscribe_users($user_ids, $group_id);
  285. $this->assertTrue(is_numeric($res));
  286. //var_dump($res);
  287. }
  288. public function testSubscribeTutors(){
  289. global $user_id;
  290. $group_id='6';
  291. $res &= GroupManager::subscribe_tutors($user_id, $group_id);
  292. $this->assertTrue(is_numeric($res));
  293. //var_dump($res);
  294. }
  295. public function testUnsubscribeUsers(){
  296. $user_ids = array(5);
  297. $group_id = 5;
  298. $res &= GroupManager::unsubscribe_users($user_ids, $group_id);
  299. $this->assertTrue(is_numeric($res));
  300. //var_dump($res);
  301. }
  302. public function testUnsubscribeAllUsers(){
  303. $group_ids=array(2);
  304. $res = GroupManager::unsubscribe_all_users($group_ids);
  305. $this->assertTrue(is_bool($res));
  306. //var_dump($res);
  307. }
  308. public function testUnsubscribeAllTutors(){
  309. $group_ids =array(6,9,10,11,14,15,16,19);
  310. $res = GroupManager::unsubscribe_all_tutors($group_ids);
  311. $this->assertTrue(is_bool($res));
  312. //var_dump($res);
  313. }
  314. public function testIsTutorOfGroup(){
  315. global $user_id;
  316. $group_id=2;
  317. $res = GroupManager::is_tutor_of_group($user_id,$group_id);
  318. $this->assertTrue(is_bool($res));
  319. //var_dump($res);
  320. }
  321. public function testIsUserInGroup(){
  322. global $user_id;
  323. $group_id= 4;
  324. $res =GroupManager::is_user_in_group($user_id, $group_id);
  325. $this->assertTrue(is_bool($res));
  326. $this->assertTrue($res === false);
  327. $this->assertFalse($res);
  328. //var_dump($res);
  329. }
  330. public function testGetAllTutors(){
  331. $res =GroupManager::get_all_tutors();
  332. $this->assertTrue(is_array($res));
  333. //var_dump($res);
  334. }
  335. public function testIsTutor(){
  336. global $user_id, $_course;
  337. $res = GroupManager::is_tutor($user_id);
  338. $this->assertTrue(is_bool($res));
  339. $this->assertTrue($res === false);
  340. //var_dump($res);
  341. }
  342. public function testGetGroupIds(){
  343. global $user_id;
  344. $course_db= 'chamilo_COURSETEST';
  345. $res = GroupManager::get_group_ids($course_db,$user_id);
  346. $this->assertTrue(is_array($res));
  347. //var_dump($res);
  348. }
  349. public function testGetCompleteListOfUsersThatCanBeAddedToGroup(){
  350. global $_course, $_user;
  351. $course_code= 'chamilo_COURSETEST';
  352. $group_id=2;
  353. $res = GroupManager::get_complete_list_of_users_that_can_be_added_to_group($course_code, $group_id);
  354. $this->assertTrue(is_array($res));
  355. $this->assertTrue($res);
  356. //var_dump($res);
  357. }
  358. public function testfilter_duplicates(){
  359. $user_array_in = '';
  360. $compare_field = '';
  361. $res = GroupManager::filter_duplicates($user_array_in, $compare_field);
  362. $this->assertTrue(is_array($res));
  363. //var_dump($res);
  364. }
  365. public function testFilterUsersAlreadyInGroup(){
  366. global $_course;
  367. $user_array_in = array();
  368. $group_id = 2;
  369. $res = GroupManager::filter_users_already_in_group($user_array_in, $group_id);
  370. $this->assertTrue(is_null($res));
  371. $this->assertNull($res);
  372. //var_dump($res);
  373. }
  374. public function testFilterOnlyStudents(){
  375. $user_array_in=array();
  376. $res= GroupManager::filter_only_students($user_array_in);
  377. $this->assertTrue(is_array($res));
  378. //var_dump($res);
  379. }
  380. public function testUserHasAccess(){
  381. global $user_id;
  382. $group_id='5';
  383. $tool='wiki_state';
  384. $res = GroupManager::user_has_access($user_id, $group_id, $tool);
  385. $this->assertTrue(is_bool($res));
  386. $this->assertTrue($res === false);
  387. //var_dump($res);
  388. }
  389. public function testGetUserGroupName(){
  390. global $user_id;
  391. $res=GroupManager::get_user_group_name($user_id);
  392. $this->assertTrue(is_array($res));
  393. //var_dump($res);
  394. }
  395. /*
  396. public function TestDeleteCourse(){
  397. $code = 'COURSETEST';
  398. $res = CourseManager::delete_course($code);
  399. $path = api_get_path(SYS_PATH).'archive';
  400. if ($handle = opendir($path)) {
  401. while (false !== ($file = readdir($handle))) {
  402. if (strpos($file,$code)!==false) {
  403. if (is_dir($path.'/'.$file)) {
  404. rmdirr($path.'/'.$file);
  405. }
  406. }
  407. }
  408. closedir($handle);
  409. }
  410. }
  411. */
  412. }
  413. ?>