groupmanager.lib.test.php 13 KB

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