groupmanager.lib.test.php 12 KB

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