FIxed file calendar.lib.test.php without exceptions CT#191

skala
Arthur Portugal 16 years ago
parent 63a08e56dd
commit 42cfb8a71f
  1. 147
      main/admin/calendar.lib.php
  2. 11
      main/admin/calendar.php
  3. 1
      main/calendar/agenda.inc.php
  4. 2
      main/inc/lib/add_course.lib.inc.php
  5. 594
      tests/main/admin/calendar.lib.test.php
  6. 20
      tests/main/inc/lib/course.lib.test.php

@ -480,6 +480,7 @@ function store_new_agenda_item()
}
}
return $last_id;*/
return $last_id;
}
/**
@ -609,31 +610,24 @@ function save_edit_agenda_item($id,$title,$content,$start_date,$end_date)
* by the course administrator
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University
* @param integer the id of the agenda item wa are deleting
* @return bool true if it's success or false otherwise
*/
function delete_agenda_item($id)
{
global $_course;
$id=Database::escape_string($id);
if (is_allowed_to_edit() && !api_is_anonymous())
{
if (!empty($_GET['id']) && isset($_GET['action']) && $_GET['action']=="delete")
{
$t_agenda = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
$id=(int)addslashes($_GET['id']);
$sql = "SELECT * FROM $t_agenda WHERE id = $id";
$res = Database::query($sql,__FILE__,__LINE__);
if(Database::num_rows($res)>0)
{
$sql = "DELETE FROM ".$t_agenda." WHERE id='$id'";
$result = Database::query($sql,__FILE__,__LINE__) or die (Database::error());
}
api_item_property_update($_course,TOOL_CALENDAR_EVENT,$id,'delete',api_get_user_id());
$id=null;
echo '<br />';
Display::display_normal_message(get_lang("AgendaDeleteSuccess"));
}
}
$t_agenda = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
$id = intval($id);
$sql = "SELECT * FROM $t_agenda WHERE id = '$id'";
$res = Database::query($sql,__FILE__,__LINE__);
if(Database::num_rows($res) > 0)
{
$sql = "DELETE FROM ".$t_agenda." WHERE id='$id'";
$result = Database::query($sql,__FILE__,__LINE__) or die (Database::error());
api_item_property_update($_course,TOOL_CALENDAR_EVENT,$id,'delete',api_get_user_id());
return true;
}
return false;
}
/**
* Makes an agenda item visible or invisible for a student
@ -856,29 +850,29 @@ function display_agenda_items()
echo Display::return_icon('delete.gif', get_lang('Delete'))."</a>";
}
if (!$is_repeated && (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_edit_agenda') && !api_is_anonymous())))
{
if( ! (api_is_course_coach() && !api_is_element_in_the_session(TOOL_AGENDA, $myrow['id'] ) ) )
{ // a coach can only delete an element belonging to his session
$td_colspan= '<td colspan="3">';
}
else
{
$td_colspan= '<td colspan="2">';
}
}
else
{
$td_colspan= '<td colspan="2">';
}
$mylink = 'calendar_ical_export.php?'.api_get_cidreq().'&amp;type=course&amp;id='.$myrow['id'];
echo '<a class="ical_export" href="'.$mylink.'&amp;class=confidential" title="'.get_lang('ExportiCalConfidential').'">'.Display::return_icon($export_icon_high, get_lang('ExportiCalConfidential')).'</a> ';
echo '<a class="ical_export" href="'.$mylink.'&amp;class=private" title="'.get_lang('ExportiCalPrivate').'">'.Display::return_icon($export_icon_low, get_lang('ExportiCalPrivate')).'</a> ';
echo '<a class="ical_export" href="'.$mylink.'&amp;class=public" title="'.get_lang('ExportiCalPublic').'">'.Display::return_icon($export_icon, get_lang('ExportiCalPublic')).'</a> ';
echo '<a href="#" onclick="javascript:win_print=window.open(\'calendar_view_print.php?id='.$myrow['id'].'\',\'popup\',\'left=100,top=100,width=700,height=500,scrollbars=1,resizable=0\'); win_print.focus(); return false;">'.Display::return_icon('print.gif', get_lang('Print')).'</a>&nbsp;';
echo '</td>';
echo '</tr>';
}
if (!$is_repeated && (api_is_allowed_to_edit(false,true) OR (api_get_course_setting('allow_user_edit_agenda') && !api_is_anonymous())))
{
if( ! (api_is_course_coach() && !api_is_element_in_the_session(TOOL_AGENDA, $myrow['id'] ) ) )
{ // a coach can only delete an element belonging to his session
$td_colspan= '<td colspan="3">';
}
else
{
$td_colspan= '<td colspan="2">';
}
}
else
{
$td_colspan= '<td colspan="2">';
}
$mylink = 'calendar_ical_export.php?'.api_get_cidreq().'&amp;type=course&amp;id='.$myrow['id'];
echo '<a class="ical_export" href="'.$mylink.'&amp;class=confidential" title="'.get_lang('ExportiCalConfidential').'">'.Display::return_icon($export_icon_high, get_lang('ExportiCalConfidential')).'</a> ';
echo '<a class="ical_export" href="'.$mylink.'&amp;class=private" title="'.get_lang('ExportiCalPrivate').'">'.Display::return_icon($export_icon_low, get_lang('ExportiCalPrivate')).'</a> ';
echo '<a class="ical_export" href="'.$mylink.'&amp;class=public" title="'.get_lang('ExportiCalPublic').'">'.Display::return_icon($export_icon, get_lang('ExportiCalPublic')).'</a> ';
echo '<a href="#" onclick="javascript:win_print=window.open(\'calendar_view_print.php?id='.$myrow['id'].'\',\'popup\',\'left=100,top=100,width=700,height=500,scrollbars=1,resizable=0\'); win_print.focus(); return false;">'.Display::return_icon('print.gif', get_lang('Print')).'</a>&nbsp;';
echo '</td>';
echo '</tr>';
}
/*--------------------------------------------------
display: the content
@ -1057,9 +1051,9 @@ function display_one_agenda_item($agenda_id)
// the message has been sent to
echo "\t\t<td class=\"".$stylenotbold."\">".get_lang("SentTo").": ".get_lang('AllUsersOfThePlatform');
$sent_to=sent_to(TOOL_CALENDAR_EVENT, $myrow["ref"]);
$sent_to_form=sent_to_form($sent_to);
echo $sent_to_form;
//$sent_to = sent_to(TOOL_CALENDAR_EVENT, $myrow["ref"]);
//sent_to_form=sent_to_form($sent_to);
//echo $sent_to_form;
echo "</td>\n\t</tr>\n";
/*--------------------------------------------------
@ -1097,6 +1091,7 @@ function display_one_agenda_item($agenda_id)
/*--------------------------------------------------
DISPLAY: the added resources
--------------------------------------------------*/
/*
if (check_added_resources("Agenda", $myrow["id"]))
{
echo "<tr><td colspan='2'>";
@ -1108,7 +1103,7 @@ function display_one_agenda_item($agenda_id)
display_added_resources("Agenda", $myrow["id"], $addedresource_style);
echo "</td></tr>";
}
*/
/*--------------------------------------------------
DISPLAY: edit delete button (course admin only)
--------------------------------------------------*/
@ -1146,6 +1141,7 @@ function display_one_agenda_item($agenda_id)
"</table>";
}
/**
* (This function is probably deprecated for this module)
* Show the form for adding a new agenda item. This is the same function that is used whenever we are editing an
* agenda item. When the id parameter is empty (default behaviour), then we show an empty form, else we are editing and
* we have to retrieve the information that is in the database and use this information in the forms.
@ -1155,7 +1151,8 @@ function display_one_agenda_item($agenda_id)
*/
function show_group_filter_form()
{
$group_list=get_course_groups();
/** @todo this select missing to implement */
//$group_list=get_course_groups();
echo "<select name=\"select\" onchange=\"MM_jumpMenu('parent',this,0)\">";
echo "<option value=\"agenda.php?group=none\">show all groups</option>";
@ -1165,16 +1162,19 @@ echo "<option value=\"agenda.php?group=none\">show all groups</option>";
echo "<option value=\"agenda.php?group=".$this_group['id']."\" ";
echo ($this_group['id']==$_SESSION['group'])? " selected":"" ;
echo ">".$this_group['name']."</option>";
}*/
}
*/
echo "</select>";
}
function show_user_filter_form()
{
$user_list=get_course_users();
//echo "<select name=\"select\" onchange=\"MM_jumpMenu('parent',this,0)\">";
//echo "<option value=\"agenda.php?user=none\">show all users</option>";
/** @todo this select missing to implement */
//$user_list=get_course_users();
echo "<select name=\"select\" onchange=\"MM_jumpMenu('parent',this,0)\">";
echo "<option value=\"agenda.php?user=none\">show all users</option>";
/*foreach($user_list as $this_user)
{
// echo "<option value=\"agenda.php?isStudentView=true&amp;user=".$this_user['uid']."\">".$this_user['lastName']." ".$this_user['firstName']."</option>";
@ -1186,13 +1186,14 @@ echo "</select>";
}
function show_user_group_filter_form()
{
{
/** @todo this select missing to implement */
echo "\n<select name=\"select\" onchange=\"MM_jumpMenu('parent',this,0)\">";
echo "\n\t<option value=\"agenda.php?user=none\">".get_lang("ShowAll")."</option>";
// Groups
echo "\n\t<optgroup label=\"".get_lang("Groups")."\">";
$group_list=get_course_groups();
//$group_list=get_course_groups();
/* foreach($group_list as $this_group)
{
// echo "<option value=\"agenda.php?isStudentView=true&amp;group=".$this_group['id']."\">".$this_group['name']."</option>";
@ -1204,7 +1205,7 @@ function show_user_group_filter_form()
// Users
echo "\n\t<optgroup label=\"".get_lang("Users")."\">";
$user_list=get_course_users();
//$user_list=get_course_users();
/* foreach($user_list as $this_user)
{
// echo "<option value=\"agenda.php?isStudentView=true&amp;user=".$this_user['uid']."\">".$this_user['lastName']." ".$this_user['firstName']."</option>";
@ -1617,7 +1618,7 @@ function get_agendaitems($month, $year)
$items = array ();
//databases of the courses
$TABLEAGENDA = Database :: get_course_table(TABLE_MAIN_SYSTEM_CALENDAR);
$TABLEAGENDA = Database :: get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
//$TABLE_ITEMPROPERTY = Database :: get_course_table(TABLE_ITEM_PROPERTY);
//$group_memberships = GroupManager :: get_group_ids(Database::get_current_course_database(), $_user['user_id']);
@ -1625,7 +1626,7 @@ function get_agendaitems($month, $year)
//if (api_is_allowed_to_edit())
//{
//echo "course admin";
$sqlquery = "SELECT
$sqlquery = "SELECT
DISTINCT *
FROM ".$TABLEAGENDA."
WHERE
@ -2170,7 +2171,7 @@ function get_repeated_events_day_view($course_info,$start=0,$end=0,$params)
//$db_end = date('Y-m-d H:i:s',$end);
$t_cal = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR,$course_info['dbName']);
//$t_cal_repeat = Database::get_course_table(TABLE_AGENDA_REPEAT,$course_info['dbName']);
$t_cal_repeat = Database::get_course_table(TABLE_AGENDA_REPEAT,$course_info['dbName']);
$t_ip = Database::get_course_table(TABLE_ITEM_PROPERTY,$course_info['dbName']);
$sql = "SELECT c.id, c.title, c.content, " .
" UNIX_TIMESTAMP(c.start_date) as orig_start, UNIX_TIMESTAMP(c.end_date) as orig_end, " .
@ -2298,10 +2299,10 @@ function get_repeated_events_week_view($course_info,$start=0,$end=0,$params)
$t_cal = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
//$t_cal_repeat = Database::get_course_table(TABLE_AGENDA_REPEAT,$course_info['dbName']);
//$t_ip = Database::get_course_table(TABLE_ITEM_PROPERTY,$course_info['dbName']);
$sql = "SELECT c.id, c.title, c.content " .
" UNIX_TIMESTAMP(c.start_date) as orig_start, UNIX_TIMESTAMP(c.end_date) as orig_end, " .
" FROM". $t_cal ."
WHERE c.start_date <= '$db_start' "
$sql = "SELECT c.id, c.title, c.content, " .
" UNIX_TIMESTAMP(c.start_date) as orig_start, UNIX_TIMESTAMP(c.end_date) as orig_end " .
" FROM ". $t_cal ."
AS c WHERE c.start_date <= '$db_start' "
.(!empty($params['conditions'])?$params['conditions']:'')
.(!empty($params['groupby'])?' GROUP BY '.$params['groupby']:'')
.(!empty($params['orderby'])?' ORDER BY '.$params['orderby']:'');
@ -2422,8 +2423,8 @@ function get_repeated_events_month_view($course_info,$start=0,$end=0,$params)
//$db_end = date('Y-m-d H:i:s',$end);
$t_cal = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
//$t_cal_repeat = Database::get_course_table(TABLE_AGENDA_REPEAT,$course_info['dbName']);
//$t_ip = Database::get_course_table(TABLE_ITEM_PROPERTY,$course_info['dbName']);
$t_cal_repeat = Database::get_course_table(TABLE_AGENDA_REPEAT,$course_info['dbName']);
$t_ip = Database::get_course_table(TABLE_ITEM_PROPERTY,$course_info['dbName']);
$sql = "SELECT c.id, c.title, c.content, " .
" UNIX_TIMESTAMP(c.start_date) as orig_start, UNIX_TIMESTAMP(c.end_date) as orig_end, " .
" cr.cal_type, cr.cal_end " .
@ -2593,8 +2594,8 @@ function get_repeated_events_list_view($course_info,$start=0,$end=0,$params)
//$db_end = date('Y-m-d H:i:s',$end);
$t_cal = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR,$course_info['dbName']);
//$t_cal_repeat = Database::get_course_table(TABLE_AGENDA_REPEAT,$course_info['dbName']);
//$t_ip = Database::get_course_table(TABLE_ITEM_PROPERTY,$course_info['dbName']);
$t_cal_repeat = Database::get_course_table(TABLE_AGENDA_REPEAT,$course_info['dbName']);
$t_ip = Database::get_course_table(TABLE_ITEM_PROPERTY,$course_info['dbName']);
$sql = "SELECT c.id, c.title, c.content, " .
" UNIX_TIMESTAMP(c.start_date) as orig_start, UNIX_TIMESTAMP(c.end_date) as orig_end, " .
" cr.cal_type, cr.cal_end " .
@ -2883,7 +2884,9 @@ function agenda_add_item($course_info, $title, $content, $db_start_date, $db_end
// store in last_tooledit (first the groups, then the users
$done = false;
if ((!is_null($to))or (!empty($_SESSION['toolgroup']))) // !is_null($to): when no user is selected we send it to everyone
//(This part of this code is not been used)
/* if ((!is_null($to))or (!empty($_SESSION['toolgroup']))) // !is_null($to): when no user is selected we send it to everyone
{
$send_to=separate_users_groups($to);
// storing the selected groups
@ -2913,7 +2916,7 @@ function agenda_add_item($course_info, $title, $content, $db_start_date, $db_end
// storing the resources
if (!empty($_SESSION['source_type']) && !empty($last_id)) {
//store_resources($_SESSION['source_type'],$last_id);
}
}*/
return $last_id;
}
/**
@ -2945,7 +2948,7 @@ function agenda_add_item($course_info, $title, $content, $db_start_date, $db_end
$repeats = array();
$data=array();
if (is_allowed_to_edit()) {
$sql="SELECT
$sql="SELECT
DISTINCT *
FROM ".$TABLEAGENDA." agenda
WHERE MONTH(start_date)='".$month."' AND YEAR(start_date)='".$year."'
@ -2960,7 +2963,9 @@ function agenda_add_item($course_info, $title, $content, $db_start_date, $db_end
}
return $data;
}
/**
* This function is not been used or deprecated
*/
function agenda_add_repeat_item($course_info,$orig_id,$type,$end,$orig_dest)
{/*
$t_agenda = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR,$course_info['dbName']);

@ -319,8 +319,15 @@ if (api_is_allowed_to_edit(false,true))
case "delete":
$id=(int)$_GET['id'];
if( ! (api_is_course_coach() && !api_is_element_in_the_session(TOOL_AGENDA, $id ) ) )
{ // a coach can only delete an element belonging to his session
delete_agenda_item($id);
{ // a coach can only delete an element belonging to his session
if (is_allowed_to_edit() && !api_is_anonymous()) {
if (!empty($id)) {
$res_del = delete_agenda_item($id);
if ($res_del) {
Display::display_normal_message(get_lang("AgendaDeleteSuccess"));
}
}
}
}
if (api_get_setting('display_upcoming_events') == 'true') {
display_upcoming_events();

@ -3741,6 +3741,7 @@ function get_repeated_events_day_view($course_info,$start=0,$end=0,$params)
return $events;
}
/**
* (This function is not been use in the code)
* Get repeated events of a course between two dates (timespan of a week).
* Returns an array containing the events
* @param string Course info array (as returned by api_get_course_info())

@ -1948,7 +1948,7 @@ function lang2db($string)
* Fills the course database with some required content and example content.
* @version 1.2
*/
function fill_Db_course($courseDbName, $courseRepository, $language,$default_document_array)
function fill_Db_course($courseDbName, $courseRepository, $language,$default_document_array = array())
{
global $_configuration, $clarolineRepositoryWeb, $_user;

@ -3,6 +3,7 @@
require_once(api_get_path(LIBRARY_PATH) . "/fckeditor/fckeditor.php");
require_once(api_get_path(LIBRARY_PATH).'fileUpload.lib.php');
require_once(api_get_path(LIBRARY_PATH).'icalcreator/iCalcreator.class.php');
require_once(api_get_path(LIBRARY_PATH).'course.lib.php');
Mock::generate('Database');
Mock::generate('Display');
class TestCalendar extends UnitTestCase {
@ -12,6 +13,14 @@ class TestCalendar extends UnitTestCase {
}
public function setUp(){
$this->tcourse = new CourseManager();
}
public function tearDown(){
$this->tcourse = null;
}
public function testDisplayMinimonthcalendar(){
ob_start();
global $DaysShort;
@ -55,11 +64,14 @@ class TestCalendar extends UnitTestCase {
public function testStoreNewAgendaItem(){
global $_user;
$res = store_new_agenda_item();
$this->assertFalse($res);
$this->assertTrue(is_null($res));
$this->assertNull($res);
//var_dump($res);
$res_store = store_new_agenda_item();
$this->assertTrue(is_numeric($res_store));
//delete the new agenda item in the database
if (is_numeric($res_store)) {
$res_delete = delete_agenda_item($res_store);
$this->assertTrue(is_numeric($res_store));
}
}
public function testDisplayCourseadminLinks(){
@ -80,24 +92,11 @@ class TestCalendar extends UnitTestCase {
}
public function testGetAgendaItem(){
$realgrouplist= new MockDatabase();
$id=1;
$TABLEAGENDA = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
$sql= "SELECT * FROM ".$TABLEAGENDA." WHERE id='".$id."'";
$sql_result = Database::query($sql,__FILE__,__LINE__);
$result= Database::fetch_array($result);
$real_list[] = $result;
$res = get_agenda_item($id);
if(is_array($real_list))
$this->assertTrue(is_array($real_list));
else{
$this->assertTrue(is_null($real_list));
$this->assertTrue($real_list === true || $real_list === false);
}
$realgrouplist->expectOnce($real_list);
$this->assertTrue(is_array($res));
//var_dump($real_list);
//var_dump($res);
$id=4;
$res = get_agenda_item($id);
if(is_array($res)) {
$this->assertTrue(is_array($res));
}
}
public function testStoreEditedAgendaItem(){
@ -132,111 +131,69 @@ class TestCalendar extends UnitTestCase {
//var_dump($res);
//var_dump($TABLEAGENDA);
}
public function testDeleteAgendaItem(){
$realagenda= new MockDatabase();
$realagenda1 = new MockDisplay();
global $_course;
$id=Database::escape_string($id);
$res = delete_agenda_item($id);
$sql = "SELECT * FROM $t_agenda WHERE id = $id";
$sql_result = Database::query($sql,__FILE__,__LINE__);
$result = Database::fetch_array($sql_result);
$real_agenda[] = $result;
$res= delete_agenda_item($id);
$realagenda->expectOnce($real_agenda);
$this->assertTrue($real_agenda);
$this->assertTrue(is_null($res));
$this->assertTrue(is_array($real_agenda));
//var_dump($res);
//var_dump($real_agenda);
}
/**
* Makes an agenda item visible or invisible for a student
* @param integer id the id of the agenda item we are changing the visibility of
*/
public function testShowhideAgendaItem(){
ob_start();
$instans = new MockDisplay();
$id=1;
global $nameTools;
$res = showhide_agenda_item($id);
//Show the message when the visibility was changed
$real_show = Display::display_normal_message(get_lang("VisibilityChanged"));
$instans_real[] = $real_show;
$instans->expectOnce($instans_real);
ob_end_clean();
$this->assertTrue(is_object($instans));
$this->assertTrue(is_array($instans_real));
//var_dump($instans);
//var_dump($res);
//var_dump($instans_real);
if(!empty($res)){
$this->assertTrue($res);
$this->assertTrue($real_show);
} else {
$this->assertNull($res);
}
//var_dump($res);
}
/**
* Para poder ejecutar la funcion display_agenda_items(), es
* necesario comentar el die de la linea 718, porque sino, no se
* podria realizar la prueba.
*/
/**
* Displays all the agenda items
*/
public function testDisplayAgendaItems(){
ob_start();
$realdisplay = new MockDatabase();
$TABLEAGENDA = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
global $select_month, $select_year;
global $DaysShort, $DaysLong, $MonthsLong;
global $is_courseAdmin;
global $dateFormatLong, $timeNoSecFormat,$charset, $_user, $_course;
$sql = "SELECT * FROM ".$TABLEAGENDA.' ORDER BY start_date '.$_SESSION['sort'];
$result=Database::query($sql,__FILE__,__LINE__);
$real_display[] = $result;
ob_start();
$_SESSION['is_courseAdmin'] = 1;
$res = display_agenda_items();
ob_end_clean();
$realdisplay->expectOnce($real_display);
$this->assertTrue(is_null($res));
$this->assertTrue(is_array($real_display));
$realdisplay->expectOnce($real_display);
//var_dump($res);
//var_dump($real_display);
//var_dump($realdisplay);
$this->assertTrue(is_null($res));
}
/**
* Para poder ejecutar esta prueba es necesario comentar el
* die de la linea 984.
*/
* Displays only 1 agenda item. This is used when an agenda item is added to the learning path.
*/
public function testDisplayOneAgendaItem(){
ob_start();
$realdisplayone = new MockDatabase();
$TABLEAGENDA = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
global $TABLE_ITEM_PROPERTY;
global $select_month, $select_year;
global $DaysShort, $DaysLong, $MonthsLong;
global $is_courseAdmin;
global $dateFormatLong, $timeNoSecFormat, $charset;
global $_user;
$agenda_id=2;
$agenda_id=Database::escape_string($agenda_id);
$sql = "SELECT * FROM ".$TABLEAGENDA;
$sql_result=Database::query($sql,__FILE__,__LINE__);
$myrow=Database::fetch_array($sql_result);
$real_display_one[]= $$myrow;
//$res = display_one_agenda_item($agenda_id);
ob_end_clean();
$realdisplayone->expectOnce($real_display_one);
$this->assertTrue(is_array($real_display_one));
//var_dump($res);
//var_dump($realdisplayone);
//var_dump($real_display_one);
}
ob_start();
$agenda_id=1;
$res = display_one_agenda_item($agenda_id);
ob_end_clean();
$this->assertTrue(is_null($res));
/*public function testShowGroupFilterForm(){
$group_list=get_course_groups();
}
/**
* Show the form for adding a new agenda item. This is the same function that is used whenever we are editing an
* agenda item. When the id parameter is empty (default behaviour), then we show an empty form, else we are editing and
* we have to retrieve the information that is in the database and use this information in the forms.
*/
public function testShowGroupFilterForm(){
ob_start();
$res = show_group_filter_form();
$this->assertTrue($res);
//var_dump($res);
ob_end_clean();
$this->assertTrue(is_null($res));
}
public function testShowUserFilterForm(){
ob_start();
$res = show_user_filter_form();
$this->assertTrue($res);
//var_dump($res);
ob_end_clean();
$this->assertTrue(is_null($res));
}
*/
public function testShowAddForm(){
ob_start();
global $MonthsLong;
@ -248,52 +205,23 @@ class TestCalendar extends UnitTestCase {
}
public function testGetAgendaitems(){
$realgetagenda = new MockDatabase();
$$TABLEAGENDA = Database :: get_course_table(TABLE_MAIN_SYSTEM_CALENDAR);
$month=06;
$year=2010;
global $MonthsLong;
$month=Database::escape_string($month);
$year=Database::escape_string($year);
$sqlquery = "SELECT
DISTINCT *
FROM ".$TABLEAGENDA."
WHERE
MONTH(start_date)='".$month."'
AND YEAR(start_date)='".$year."'
GROUP BY id
ORDER BY start_date ";
$sql_result = Database::query($sqlquery, __FILE__, __LINE__);
$result = Database::fetch_array($sql_result);
$real_get_agenda[] = $result;
$res = get_agendaitems($month, $year);
$this->assertTrue(is_array($res));
$realgetagenda->expectOnce($real_get_agenda);
$this->assertTrue(is_array($real_get_agenda));
//var_dump($res);
//var_dump($real_get_agenda);
//var_dump($realgetagenda);
global $_user;
global $_configuration;
$month='12';
$year='2009';
$res = get_agendaitems($month, $year);
if(is_array($res)) {
$this->assertTrue(is_array($res));
}
}
public function testDisplayUpcomingEvents(){
ob_start();
$realdisplay = new MockDatabase();
$TABLEAGENDA = Database :: get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
$sqlquery = "SELECT
DISTINCT *
FROM ".$TABLEAGENDA."
ORDER BY start_date ";
$result = Database::query($sqlquery, __FILE__, __LINE__);
$resultado = Database::fetch_array($result,'ASSOC');
$real_display[] = $resultado;
$res = display_upcoming_events();
$realdisplay->expectOnce($real_display);
ob_end_clean();
$this->assertTrue(is_array($real_display));
$this->assertTrue(is_null($res));
//var_dump($real_display);
//var_dump($realdisplay);
//var_dump($res);
$this->assertNull($res);
}
public function testCalculateStartEndOfWeek(){
@ -319,7 +247,7 @@ class TestCalendar extends UnitTestCase {
//var_dump($res);
}
public function testDisplayWeekcalendar(){
public function testDisplayWeekcalendar() {
ob_start();
$agendaitems='';
$month=10;
@ -332,197 +260,85 @@ class TestCalendar extends UnitTestCase {
//var_dump($res);
}
public function testGetDayAgendaitems(){
$realgetday = new MockDatabase();
$TABLEAGENDA = Database :: get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
global $_user;
global $_configuration;
global $setting_agenda_link;
$courses_dbs='';
$month=11;
$year=2009;
$day='';
$sqlquery = "SELECT DISTINCT *
FROM ".$TABLEAGENDA."
WHERE
DAYOFMONTH(start_date)='".$day."' AND MONTH(start_date)='".$month."' AND YEAR(start_date)='".$year."'
GROUP BY agenda.id
ORDER BY start_date ";
$result = Database::query($sqlquery, __FILE__, __LINE__);
$item = Database::fetch_array($result);
$real_get_day[] = $item;
public function testGetDayAgendaitems() {
$courses_dbs=array();
$month='12';
$year='2009';
$day='1';
$res = get_day_agendaitems($courses_dbs, $month, $year, $day);
$realgetday->expectOnce($real_get_day);
$this->assertTrue(is_array($real_get_day));
$this->assertTrue(is_array($res));
//var_dump($res);
//var_dump($real_get_day);
//var_dump($$realgetday);
}
public function testGetWeekAgendaitems(){
$realgetweek = new MockDatabase();
$TABLEAGENDA = Database :: get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
global $_user;
global $_configuration;
global $setting_agenda_link;$month='';
$courses_dbs='';
$year='';
$week = '';
$sqlquery = "SELECT DISTINCT * FROM ".$TABLEAGENDA." ORDER BY start_date";
$result = Database::query($sqlquery, __FILE__, __LINE__);
$item = Database::fetch_array($result);
$real_get_week[]= $item;
$res = get_week_agendaitems($courses_dbs, $month, $year, $week);
$realgetweek->expectOnce($real_get_week);
$this->assertTrue(is_array($real_get_week));
$this->assertTrue($realgetweek);
public function testGetWeekAgendaitems() {
$courses_dbs=array();
$year='2009';
$month='12';
$res = get_week_agendaitems($courses_dbs, $month, $year);
$this->assertTrue(is_array($res));
//var_dump($res);
//var_dump($real_get_week);
//var_dump($realgetweek);
}
public function testGetRepeatedEventsDayView(){
$realgetrepeat = new MockDatabase();
$course_info='';
$start=0;
$end=0;
$params='';
$t_cal = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR,$course_info['dbName']);
$t_ip = Database::get_course_table(TABLE_ITEM_PROPERTY,$course_info['dbName']);
$sql = "SELECT c.id, c.title, c.content, " .
" UNIX_TIMESTAMP(c.start_date) as orig_start, UNIX_TIMESTAMP(c.end_date) as orig_end, " .
" cr.cal_type, cr.cal_end " .
" FROM $t_cal c, $t_cal_repeat cr, $t_ip as item_property " .
" WHERE cr.cal_end >= $start " .
" AND cr.cal_id = c.id " .
" AND item_property.ref = c.id ".
" AND item_property.tool = '".TOOL_CALENDAR_EVENT."' ".
" AND c.start_date <= '$db_start' "
.(!empty($params['conditions'])?$params['conditions']:'')
.(!empty($params['groupby'])?' GROUP BY '.$params['groupby']:'')
.(!empty($params['orderby'])?' ORDER BY '.$params['orderby']:'');
$res = Database::query($sql,__FILE__,__LINE__);
$row = Database::fetch_array($res);
$real_get_repeat[] = $row;
$resul = get_repeated_events_day_view($course_info,$start,$end,$params);
$realgetrepeat->expectOnce($real_get_repeat);
$this->assertTrue(is_array($real_get_repeat));
$this->assertTrue(is_array($resul));
//var_dump($resul);
//var_dump($realgetrepeat);
//var_dump($real_get_repeat);
}
public function testget_repeated_events_week_view(){
$realgetrepeated = new MockDatabase();
$course_info='';
$start=0;
$end=0;
$params='';
$t_cal = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
$sql = "SELECT c.id, c.title, c.content " .
" UNIX_TIMESTAMP(c.start_date) as orig_start, UNIX_TIMESTAMP(c.end_date) as orig_end, " .
" FROM". $t_cal ."
WHERE c.start_date <= '$db_start' "
.(!empty($params['conditions'])?$params['conditions']:'')
.(!empty($params['groupby'])?' GROUP BY '.$params['groupby']:'')
.(!empty($params['orderby'])?' ORDER BY '.$params['orderby']:'');
$res = Database::query($sql,__FILE__,__LINE__);
$row = Database::fetch_array($res);
$real_get_repeated[] = $row;
$resul = get_repeated_events_week_view($course_info,$start,$end,$params);
$realgetrepeated->expectOnce($real_get_repeated);
global $_configuration;
require_once api_get_path(SYS_PATH).'tests/main/inc/lib/add_course.lib.inc.test.php';
// create a course
$course_datos = array(
'wanted_code'=> 'COD21',
'title'=>'metodologia de calculo diferencial',
'tutor_name'=>'R. J. Wolfagan',
'category_code'=>'2121',
'course_language'=>'english',
'course_admin_id'=>'1211',
'db_prefix'=> $_configuration['db_prefix'].'COD21',
'db_prefix'=> $_configuration['db_prefix'].'COD21',
'firstExpirationDelay'=>'112'
);
$res = create_course($course_datos['wanted_code'], $course_datos['title'],
$course_datos['tutor_name'], $course_datos['category_code'],
$course_datos['course_language'],$course_datos['course_admin_id'],
$course_datos['db_prefix'], $course_datos['firstExpirationDelay']);
if ($res) {
$start = 0;
$end = 0;
$params='';
$course_code = 'COD21';
$course_info = api_get_course_info($course_code);
$resul = get_repeated_events_day_view($course_info,$start,$end,$params);
$this->assertTrue(is_array($resul));
}
}
public function testGetRepeatedEventsWeekView(){
$course_info = 'COD21';
$resul = get_repeated_events_week_view($course_info, 0, 0, '');
$this->assertTrue(is_array($resul));
$this->assertTrue($real_get_repeated);
//var_dump($resul);
//var_dump($real_get_repeated);
//var_dump($realgetrepeated);
}
public function testGetRepeatedEventsMonthView(){
$realgetrepeated= new MockDatabase();
$course_info='';
$start='';
$end='';
$params='';
$t_cal = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
$sql = "SELECT c.id, c.title, c.content, " .
" UNIX_TIMESTAMP(c.start_date) as orig_start, UNIX_TIMESTAMP(c.end_date) as orig_end, " .
" cr.cal_type, cr.cal_end " .
" FROM $t_cal c, $t_cal_repeat cr, $t_ip as item_property " .
" WHERE cr.cal_end >= $start " .
" AND cr.cal_id = c.id " .
" AND item_property.ref = c.id ".
" AND item_property.tool = '".TOOL_CALENDAR_EVENT."' ".
" AND c.start_date <= '$db_start' "
.(!empty($params['conditions'])?$params['conditions']:'')
.(!empty($params['groupby'])?' GROUP BY '.$params['groupby']:'')
.(!empty($params['orderby'])?' ORDER BY '.$params['orderby']:'');
$res = Database::query($sql,__FILE__,__LINE__);
$row = Database::fetch_array($res);
$real_get_repeated[] = $row;
$resul= get_repeated_events_month_view($course_info,$start,$end,$params);
$realgetrepeated->expectOnce($real_get_repeated);
$course_code='COD21';
$course_info = api_get_course_info($course_code);
$resul= get_repeated_events_month_view($course_info,0,0,'');
$this->assertTrue(is_array($resul));
$this->assertTrue(is_bool($res));
$this->assertTrue($res === false || $res === true);
$this->assertTrue($real_get_repeated);
//var_dump($resul);
//var_dump($real_get_repeated);
//var_dump($realgetrepeated);
}
public function testGetRepeatedEventsListView(){
$realgetrepeatedevents = new MockDatabase();
$course_info='';
$start=0;
$end=0;
$params='';
$t_cal = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR,$course_info['dbName']);
$sql = "SELECT c.id, c.title, c.content, " .
" UNIX_TIMESTAMP(c.start_date) as orig_start, UNIX_TIMESTAMP(c.end_date) as orig_end, " .
" cr.cal_type, cr.cal_end " .
" FROM $t_cal c, $t_cal_repeat cr, $t_ip as item_property " .
" WHERE cr.cal_end >= $start " .
" AND cr.cal_id = c.id " .
" AND item_property.ref = c.id ".
" AND item_property.tool = '".TOOL_CALENDAR_EVENT."' ".
" AND c.start_date <= '$db_start' "
.(!empty($params['conditions'])?$params['conditions']:'')
.(!empty($params['groupby'])?' GROUP BY '.$params['groupby']:'')
.(!empty($params['orderby'])?' ORDER BY '.$params['orderby']:'');
$res = Database::query($sql,__FILE__,__LINE__);
$row = Database::fetch_array($res);
$real_get_repeated_events[] = $row;
$resul = get_repeated_events_list_view($course_info,$start,$end,$params);
$realgetrepeatedevents->expectOnce($real_get_repeated_events);
$this->assertTrue(is_array($real_get_repeated_events));
$course_code='COD21';
$course_info = api_get_course_info($course_code);
$resul = get_repeated_events_list_view($course_info,0,0,'');
$this->assertTrue(is_array($resul));
$realgetrepeatedevents->expectCallCount($real_get_repeated_events);
//var_dump($resul);
//var_dump($real_get_repeated_events);
//var_dump($realgetrepeatedevents);
}
public function testIsRepeatedEvent() {
$realrepetead = new MockDatabase();
$id=1;
$course=null;
$sql = "SELECT * FROM $t_agenda_repeat WHERE cal_id = $id";
$res = Database::query($sql,__FILE__,__LINE__);
$result = Database::num_rows($res)>0;
$real_repetead[] = $result;
$resu = is_repeated_event($id,$course);
$realrepetead->expectOnce($real_repetead);
$this->assertTrue(is_bool($resu));
$this->assertTrue($resu === true || $resu === false);
$this->assertTrue($real_repetead);
$this->assertTrue($realrepetead);
//var_dump($resu);
//var_dump($real_repetead);
//var_dump($realrepetead);
//This is deprecated or not used
}
public function testAddWeek(){
@ -548,103 +364,51 @@ class TestCalendar extends UnitTestCase {
$this->assertTrue(is_numeric($res));
//var_dump($res);
}
/**
* para poder realizar esta prueba, se tuvo que comentar el "die" ubicado en la
* linea 2877 para que la prueba pudiera ejecutarse de manera exitosa.
*/
/**
* Adds an agenda item in the database. Similar to store_new_agenda_item() except it takes parameters
* @param array Course info
* @param string Event title
* @param string Event content/description
* @param string Start date
* @param string End date
* @param array List of groups to which this event is added
* @param int Parent id (optional)
* @return int The new item's DB ID
*/
public function testAgendaAddItem(){
$realagenda = new MockDatabase();
global $_course;
$course_info='null';
$course_code='COD21';
$course_info = api_get_course_info($course_code);
$title='test';
$content='test function';
$db_start_date='07/11/2009';
$db_end_date='07/20/2009';
$to=array();
$parent_id=null;
$t_agenda = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
$title = Database::escape_string($title);
$content = Database::escape_string($content);
$start_date = Database::escape_string($db_start_date);
$end_date = Database::escape_string($db_end_date);
$sql = "SELECT * FROM $t_agenda WHERE title='$title' AND content = '$content' AND start_date = '$start_date'
AND end_date = '$end_date' ".(!empty($parent_id)? "AND parent_event_id = '$parent_id'":"");
$result = Database::query($sql,__FILE__,__LINE__);
$sql1 = "INSERT INTO ".$t_agenda."(title,content, start_date, end_date)VALUES
('".$title."','".$content."', '".$start_date."','".$end_date."')";
$result1 = Database::query($sql1,__FILE__,__LINE__);
$real_agenda[]= $result;
$real_agenda1[]= $result1;
//$res = agenda_add_item($course_info, $title, $content, $db_start_date, $db_end_date, $to, $parent_id);
$realagenda->expectOnce($real_agenda);
$realagenda->expectOnce($real_agenda1);
//$this->assertTrue(is_numeric($res));
$this->assertTrue(is_array($real_agenda));
$this->assertTrue(is_array($real_agenda1));
$res = agenda_add_item($course_info, $title, $content, $db_start_date, $db_end_date, $to=array(), $parent_id=null);
$this->assertTrue(is_numeric($res));
//var_dump($res);
//var_dump($real_agenda);
//var_dump($real_agenda1);
}
/**
* Adds a repetitive item to the database
* @param array Course info
* @param int The original event's id
* @param string Type of repetition
* @param int Timestamp of end of repetition (repeating until that date)
* @param array Original event's destination
* @return boolean False if error, True otherwise
*/
public function testGetCalendarItems(){
$realgetcalendar = new MockDatabase();
global $_user, $_course;
global $is_allowed_to_edit;
$month='march';
global $_course;
$month='12';
$year='2009';
$TABLEAGENDA = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR);
$sql="SELECT
DISTINCT *
FROM ".$TABLEAGENDA." agenda
WHERE MONTH(start_date)='".$month."' AND YEAR(start_date)='".$year."'
GROUP BY id ".
"ORDER BY start_date ";
$result=Database::query($sql,__FILE__,__LINE__);
$row=Database::fetch_array($result);
$res = get_calendar_items($month, $year);
$real_get_calendar[]= $row;
$realgetcalendar->expectOnce($real_get_calendar);
$realgetcalendar->expectCallCount($real_get_calendar);
$this->assertTrue(is_bool($row));
$this->assertTrue(is_array($real_get_calendar));
$res = get_calendar_items($month, $year);
$this->assertTrue(is_array($res));
//var_dump($real_get_calendar);
//var_dump($row);
//var_dump($res);
}
public function testAgendaAddRepeatItem(){
$realagenda = new MockDatabase();
$course_info='course of test';
$orig_id=001;
$type='daily';
$end=10;
$orig_dest='monday';
$t_agenda = Database::get_main_table(TABLE_MAIN_SYSTEM_CALENDAR,$course_info['dbName']);
$sql = "SELECT title, content, start_date as sd, end_date as ed FROM $t_agenda WHERE id = $orig_id";
$res = Database::query($sql,__FILE__,__LINE__);
$row = Database::fetch_array($res);
$sql1 = "INSERT INTO $t_agenda_r (cal_id, cal_type, cal_end)" .
" VALUES ($orig_id,'$type',$end)";
$res1 = Database::query($sql1,__FILE__,__LINE__);
$resu= agenda_add_repeat_item($course_info,$orig_id,$type,$end,$orig_dest);
$real_agenda[] = $row;
$realagenda->expectOnce($real_agenda);
$realagenda->expectCallCount($real_agenda);
$realagenda->expectOnce($t_agenda);
$realagenda->expectOnce($res1);
if(is_bool($resu)){
$this->assertTrue(is_bool($resu));
$this->assertTrue($resu === true || $resu===false);
}else
$this->assertTrue(is_null($resu));
$this->assertTrue(is_array($real_agenda));
$this->assertTrue($row);
//var_dump($resu);
//var_dump($res);
//var_dump($res1);
//var_dump($real_agenda);
//this function is not used or deprecated
}
public function testAgendaImportIcal(){
@ -660,32 +424,16 @@ class TestCalendar extends UnitTestCase {
}else{
$this->assertTrue($res);
}
}
public function testDeleteAgendaItem(){
global $_course;
$course_code='COD21';
$id=1;
$res = delete_agenda_item($id);
$res = $this->tcourse->delete_course($course_code);
$this->assertTrue(is_null($res));
//var_dump($res);
}
}
?>

@ -329,7 +329,7 @@ class TestCourse extends UnitTestCase{
public function testGetGroupListOfCourse(){
$grouplist = new MockDatabase();
$course_code = 'TEST';
$course_code = 'COD12';
$course_info = Database :: get_course_info($course_code);
$database_name = $course_info['db_name'];
$session_id=1;
@ -344,7 +344,7 @@ class TestCourse extends UnitTestCase{
public function testAttemptCreateVirtualCourse(){
$createvirtual = new MockDisplay();
$real_course_code = 'TEST';
$real_course_code = 'COD12';
$course_title = 'test';
$wanted_course_code = '01';
$course_language= 'english';
@ -364,7 +364,7 @@ class TestCourse extends UnitTestCase{
$user_id = api_get_user_id();
$real_course_code = 'TEST';
$course_title = 'test';
$wanted_course_code = '01';
$wanted_course_code = 'COD12';
$course_language= 'english';
$course_category= 'lang';
$course_sys_code = '';
@ -389,12 +389,16 @@ class TestCourse extends UnitTestCase{
//var_dump($createvirtualcourse);
}
public function testDeleteCourse(){
public function testDeleteCourse($course_code = ''){
global $_configuration;
$code = '01';
$code = 'COD12';
if (!empty($course_code)) {
$code = $course_code;
}
$res = $this->tcourse->delete_course($code);
$this->assertTrue($this->tcourse->delete_course()===null);
$this->assertTrue(is_null($res));
}
public function testCreateDatabaseDump(){
@ -408,7 +412,7 @@ class TestCourse extends UnitTestCase{
public function testUserCourseSort(){
$user_id ='01';
$course_code='0001';
$course_code='COD12';
$res = $this->tcourse->UserCourseSort($user_id,$course_code);
$this->assertTrue($res);
$this->assertTrue(is_numeric($res));
@ -433,7 +437,7 @@ class TestCourse extends UnitTestCase{
public function testEmailToTutor() {
$user_id= '';
$course_code= 'test';
$course_code= 'COD12';
$res=CourseManager::email_to_tutor($course_code,$user_id);
$this->assertTrue(is_string($course_code));
//var_dump($res);
@ -488,7 +492,7 @@ class TestCourse extends UnitTestCase{
}
public function testUpdateCourseExtraFieldValue(){
$course_code = '0001';
$course_code = 'COD12';
$fname = '';
$fvalue= '';
$res = $this->tcourse->update_course_extra_field_value($course_code,$fname,$fvalue='');

Loading…
Cancel
Save