Created new test functions and fixed some bug in the tests CT#191

skala
Ricardo Rodriguez 15 years ago
parent c633b47a0e
commit 998278728b
  1. 103
      main/admin/add_courses_to_session.php
  2. 30
      main/admin/add_many_session_to_category.php
  3. 106
      main/inc/lib/add_courses_to_session_functions.lib.php
  4. 36
      main/inc/lib/add_many_session_to_category_functions.lib.php
  5. 35
      tests/main/inc/lib/add_courses_to_sessions_functions.lib.test.php
  6. 29
      tests/main/inc/lib/add_many_session_to_category_functions.lib.test.php
  7. 31
      tests/test_suite.php

@ -14,11 +14,14 @@ $language_file='admin';
$cidReset=true;
// including some necessary dokeos files
require '../inc/global.inc.php';
require_once('../inc/global.inc.php');
// including additonal libraries
require_once '../inc/lib/xajax/xajax.inc.php';
require_once api_get_path(LIBRARY_PATH).'sessionmanager.lib.php';
require_once (api_get_path(LIBRARY_PATH).'add_courses_to_session_functions.lib.php');
$xajax = new xajax();
//$xajax->debugOn();
$xajax -> registerFunction ('search_courses');
@ -57,102 +60,6 @@ if (!api_is_platform_admin()) {
}
}
function search_courses($needle,$type)
{
global $tbl_course, $tbl_session_rel_course, $id_session;
$xajax_response = new XajaxResponse();
$return = '';
if(!empty($needle) && !empty($type)) {
// xajax send utf8 datas... datas in db can be non-utf8 datas
$charset = api_get_setting('platform_charset');
$needle = api_convert_encoding($needle, $charset, 'utf-8');
$cond_course_code = '';
if (!empty($id_session)) {
$id_session = Database::escape_string($id_session);
// check course_code from session_rel_course table
$sql = 'SELECT course_code FROM '.$tbl_session_rel_course.' WHERE id_session ="'.(int)$id_session.'"';
$res = Database::query($sql,__FILE__,__LINE__);
$course_codes = '';
if (Database::num_rows($res) > 0) {
while ($row = Database::fetch_row($res)) {
$course_codes .= '\''.$row[0].'\',';
}
$course_codes = substr($course_codes,0,(strlen($course_codes)-1));
$cond_course_code = ' AND course.code NOT IN('.$course_codes.') ';
}
}
if ($type=='single') {
// search users where username or firstname or lastname begins likes $needle
$sql = 'SELECT course.code, course.visual_code, course.title, session_rel_course.id_session
FROM '.$tbl_course.' course
LEFT JOIN '.$tbl_session_rel_course.' session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = '.intval($id_session).'
WHERE course.visual_code LIKE "'.$needle.'%"
OR course.title LIKE "'.$needle.'%"';
} else {
$sql = 'SELECT course.code, course.visual_code, course.title
FROM '.$tbl_course.' course
WHERE course.visual_code LIKE "'.$needle.'%" '.$cond_course_code.' ORDER BY course.code ';
}
global $_configuration;
if ($_configuration['multiple_access_urls']==true) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
if ($type=='single') {
$sql = 'SELECT course.code, course.visual_code, course.title, session_rel_course.id_session
FROM '.$tbl_course.' course
LEFT JOIN '.$tbl_session_rel_course.' session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = '.intval($id_session).'
INNER JOIN '.$tbl_course_rel_access_url.' url_course ON (url_course.course_code=course.code)
WHERE access_url_id = '.$access_url_id.' AND (course.visual_code LIKE "'.$needle.'%"
OR course.title LIKE "'.$needle.'%" )';
} else {
$sql = 'SELECT course.code, course.visual_code, course.title
FROM '.$tbl_course.' course, '.$tbl_course_rel_access_url.' url_course
WHERE url_course.course_code=course.code AND access_url_id = '.$access_url_id.'
AND course.visual_code LIKE "'.$needle.'%" '.$cond_course_code.' ORDER BY course.code ';
}
}
}
$rs = Database::query($sql, __FILE__, __LINE__);
$course_list = array();
if ($type=='single') {
while($course = Database :: fetch_array($rs)) {
$course_list[] = $course['code'];
$course_title=str_replace("'","\'",$course_title);
$return .= '<a href="javascript: void(0);" onclick="javascript: add_course_to_session(\''.$course['code'].'\',\''.$course_title.' ('.$course['visual_code'].')'.'\')">'.$course['title'].' ('.$course['visual_code'].')</a><br />';
}
$xajax_response -> addAssign('ajax_list_courses_single','innerHTML',api_utf8_encode($return));
} else {
$return .= '<select id="origin" name="NoSessionCoursesList[]" multiple="multiple" size="20" style="width:340px;">';
while($course = Database :: fetch_array($rs)) {
$course_list[] = $course['code'];
$course_title=str_replace("'","\'",$course_title);
$return .= '<option value="'.$course['code'].'" title="'.htmlspecialchars($course['title'].' ('.$course['visual_code'].')',ENT_QUOTES).'">'.$course['title'].' ('.$course['visual_code'].')</option>';
}
$return .= '</select>';
$xajax_response -> addAssign('ajax_list_courses_multiple','innerHTML',api_utf8_encode($return));
}
}
$_SESSION['course_list'] = $course_list;
return $xajax_response;
}
$xajax -> processRequests();
$htmlHeadXtra[] = $xajax->getJavascript('../inc/lib/xajax/');

@ -11,12 +11,12 @@
$language_file='admin';
// resetting the course id
$cidReset=true;
require_once('../inc/global.inc.php');
// including some necessary dokeos files
require '../inc/global.inc.php';
// including additonal libraries
require_once '../inc/lib/xajax/xajax.inc.php';
require_once api_get_path(LIBRARY_PATH).'add_many_session_to_category_functions.lib.php';
require_once api_get_path(LIBRARY_PATH).'sessionmanager.lib.php';
$xajax = new xajax();
$xajax -> registerFunction ('search_courses');
@ -58,32 +58,6 @@ if (!api_is_platform_admin()) {
}
}
function search_courses($needle,$type) {
global $tbl_course, $tbl_session, $id_session;
$xajax_response = new XajaxResponse();
$return = '';
if(!empty($needle) && !empty($type)) {
// xajax send utf8 datas... datas in db can be non-utf8 datas
$charset = api_get_setting('platform_charset');
$needle = api_convert_encoding($needle, $charset, 'utf-8');
$sql = 'SELECT * FROM '.$tbl_session.' WHERE name LIKE "'.$needle.'%" ORDER BY id';
$rs = Database::query($sql, __FILE__, __LINE__);
$course_list = array();
$return .= '<select id="origin" name="NoSessionCategoryList[]" multiple="multiple" size="20" style="width:340px;">';
while($course = Database :: fetch_array($rs)) {
$course_list[] = $course['id'];
$return .= '<option value="'.$course['id'].'" title="'.htmlspecialchars($course['name'],ENT_QUOTES).'">'.$course['name'].'</option>';
}
$return .= '</select>';
$xajax_response -> addAssign('ajax_list_courses_multiple','innerHTML',api_utf8_encode($return));
}
$_SESSION['course_list'] = $course_list;
return $xajax_response;
}
$xajax -> processRequests();
$htmlHeadXtra[] = $xajax->getJavascript('../inc/lib/xajax/');
$htmlHeadXtra[] = '

@ -0,0 +1,106 @@
<?php
require_once (api_get_path(LIBRARY_PATH).'xajax/xajax.inc.php');
//require_once (api_get_path(SYS_CODE_PATH).'admin/add_courses_to_session.php');
class AddCourseToSession{
function search_courses($needle,$type)
{
global $tbl_course, $tbl_session_rel_course, $id_session;
$xajax_response = new XajaxResponse();
$return = '';
if(!empty($needle) && !empty($type)) {
// xajax send utf8 datas... datas in db can be non-utf8 datas
$charset = api_get_setting('platform_charset');
$needle = api_convert_encoding($needle, $charset, 'utf-8');
$cond_course_code = '';
if (!empty($id_session)) {
$id_session = Database::escape_string($id_session);
// check course_code from session_rel_course table
$sql = 'SELECT course_code FROM '.$tbl_session_rel_course.' WHERE id_session ="'.(int)$id_session.'"';
$res = Database::query($sql,__FILE__,__LINE__);
$course_codes = '';
if (Database::num_rows($res) > 0) {
while ($row = Database::fetch_row($res)) {
$course_codes .= '\''.$row[0].'\',';
}
$course_codes = substr($course_codes,0,(strlen($course_codes)-1));
$cond_course_code = ' AND course.code NOT IN('.$course_codes.') ';
}
}
if ($type=='single') {
// search users where username or firstname or lastname begins likes $needle
$sql = 'SELECT course.code, course.visual_code, course.title, session_rel_course.id_session
FROM '.$tbl_course.' course
LEFT JOIN '.$tbl_session_rel_course.' session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = '.intval($id_session).'
WHERE course.visual_code LIKE "'.$needle.'%"
OR course.title LIKE "'.$needle.'%"';
} else {
$sql = 'SELECT course.code, course.visual_code, course.title
FROM '.$tbl_course.' course
WHERE course.visual_code LIKE "'.$needle.'%" '.$cond_course_code.' ORDER BY course.code ';
}
global $_configuration;
if ($_configuration['multiple_access_urls']==true) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
if ($type=='single') {
$sql = 'SELECT course.code, course.visual_code, course.title, session_rel_course.id_session
FROM '.$tbl_course.' course
LEFT JOIN '.$tbl_session_rel_course.' session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = '.intval($id_session).'
INNER JOIN '.$tbl_course_rel_access_url.' url_course ON (url_course.course_code=course.code)
WHERE access_url_id = '.$access_url_id.' AND (course.visual_code LIKE "'.$needle.'%"
OR course.title LIKE "'.$needle.'%" )';
} else {
$sql = 'SELECT course.code, course.visual_code, course.title
FROM '.$tbl_course.' course, '.$tbl_course_rel_access_url.' url_course
WHERE url_course.course_code=course.code AND access_url_id = '.$access_url_id.'
AND course.visual_code LIKE "'.$needle.'%" '.$cond_course_code.' ORDER BY course.code ';
}
}
}
$rs = Database::query($sql, __FILE__, __LINE__);
$course_list = array();
if ($type=='single') {
while($course = Database :: fetch_array($rs)) {
$course_list[] = $course['code'];
$course_title=str_replace("'","\'",$course_title);
$return .= '<a href="javascript: void(0);" onclick="javascript: add_course_to_session(\''.$course['code'].'\',\''.$course_title.' ('.$course['visual_code'].')'.'\')">'.$course['title'].' ('.$course['visual_code'].')</a><br />';
}
$xajax_response -> addAssign('ajax_list_courses_single','innerHTML',api_utf8_encode($return));
} else {
$return .= '<select id="origin" name="NoSessionCoursesList[]" multiple="multiple" size="20" style="width:340px;">';
while($course = Database :: fetch_array($rs)) {
$course_list[] = $course['code'];
$course_title=str_replace("'","\'",$course_title);
$return .= '<option value="'.$course['code'].'" title="'.htmlspecialchars($course['title'].' ('.$course['visual_code'].')',ENT_QUOTES).'">'.$course['title'].' ('.$course['visual_code'].')</option>';
}
$return .= '</select>';
$xajax_response -> addAssign('ajax_list_courses_multiple','innerHTML',api_utf8_encode($return));
}
}
$_SESSION['course_list'] = $course_list;
return $xajax_response;
}
}
?>

@ -0,0 +1,36 @@
<?php
require_once (api_get_path(LIBRARY_PATH).'xajax/xajax.inc.php');
class AddManySessionToCategoryFunctions {
function search_courses($needle,$type) {
global $tbl_course, $tbl_session, $id_session;
$xajax_response = new XajaxResponse();
$return = '';
if(!empty($needle) && !empty($type)) {
// xajax send utf8 datas... datas in db can be non-utf8 datas
$charset = api_get_setting('platform_charset');
$needle = api_convert_encoding($needle, $charset, 'utf-8');
$sql = 'SELECT * FROM '.$tbl_session.' WHERE name LIKE "'.$needle.'%" ORDER BY id';
$rs = Database::query($sql, __FILE__, __LINE__);
$course_list = array();
$return .= '<select id="origin" name="NoSessionCategoryList[]" multiple="multiple" size="20" style="width:340px;">';
while($course = Database :: fetch_array($rs)) {
$course_list[] = $course['id'];
$return .= '<option value="'.$course['id'].'" title="'.htmlspecialchars($course['name'],ENT_QUOTES).'">'.$course['name'].'</option>';
}
$return .= '</select>';
$xajax_response -> addAssign('ajax_list_courses_multiple','innerHTML',api_utf8_encode($return));
}
$_SESSION['course_list'] = $course_list;
return $xajax_response;
}
}
?>

@ -0,0 +1,35 @@
<?php
require_once(api_get_path(LIBRARY_PATH).'add_courses_to_session_functions.lib.php');
class TestAddCoursesToSessionFunctions extends UnitTestCase{
public function TestAddCoursesToSessionFunctions(){
$this->UnitTestCase('this File test the provides some function for Add courses to Sessions functions');
}
public function setUp(){
$this->TestAddCoursesToSessionFunctions = new AddCourseToSession();
}
public function tearDown(){
$this->TestAddCoursesToSessionFunctions = null;
}
public function TestSearchCourses(){
global $_courses;
global $tbl_course, $tbl_session_rel_course, $id_session;
$needle = '';
$type = '';
$res = AddCourseToSession::search_courses($needle, $type);
$this->assertTrue($res);
$this->assertTrue(is_object($res));
$this->assertFalse(is_null($res));
//var_dump($res);
}
}
?>

@ -0,0 +1,29 @@
<?php
require_once (api_get_path(LIBRARY_PATH).'add_many_session_to_category_functions.lib.php');
class TestAddManySessionToCategoryFunctions extends UnitTestCase {
public function TestAddManySessionToCategoryFunctions() {
$this->UnitTestCase('testing the file about add many session to category');
}
public function setUp(){
$this-> AddManySessionToCategory = new AddManySessionToCategoryFunctions();
}
public function tearDown(){
$this-> AddManySessionToCategory = null;
}
public function Testsearchcourses(){
global $_courses, $tbl_course, $tbl_session, $id_session;
$needle ='';
$type ='';
$res = AddManySessionToCategoryFunctions::search_courses($needle,$type);
$this->assertTrue($res);
$this->assertTrue(is_object($res));
//var_dump($res);
}
}
?>

@ -10,6 +10,8 @@ $libdir = dirname(__FILE__).'/../main/inc/lib/';
$incdir = dirname(__FILE__).'/../main/inc/';
//Need the ob start and clean else will show the objects
require_once $incdir.'global.inc.php';
//List of files than need the tests
@ -47,7 +49,11 @@ require_once $maindir.'admin/statistics/statistics.lib.php';
require_once $incdir.'lib/usermanager.lib.php';
require_once $maindir.'survey/survey.lib.php';
require_once $maindir.'install/install_upgrade.lib.php';
require_once $incdir.'lib/fileManage.lib.php';
ob_end_clean();
class TestsSuite extends TestSuite {
function setUp() {
@ -124,6 +130,7 @@ class TestsSuite extends TestSuite {
function TestsSuite() {
$this->setUp();
$this->TestSuite('All tests suite');
/*
$this->addTestFile(dirname(__FILE__).'/main/install/install_upgrade.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/database.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/add_course.lib.inc.test.php');
@ -159,7 +166,19 @@ class TestsSuite extends TestSuite {
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/fileManage.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/geometry.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/admin/statistics/statistics.lib.test.php');
*/
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/access_url_edit_courses_to_url_functions.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/access_url_edit_sessions_to_url_functions.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/access_url_edit_users_to_url_functions.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/add_courses_to_sessions_functions.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/add_many_session_to_category_functions.lib.test.php');
//$this->addTestFile(dirname(__FILE__).'/main/admin/access_urls.test.php');
$this->addTestFile(dirname(__FILE__).'/main/admin/sub_language.class.test.php');
/* $this->addTestFile(dirname(__FILE__).'/main/inc/lib/add_courses_to_sessions_functions.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/auth/lost_password.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/auth/openid/xrds.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/chat/chat_functions.lib.test.php');
@ -176,17 +195,21 @@ class TestsSuite extends TestSuite {
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/import.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/internationalization.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/system_announcements.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/fileUpload.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/main_api.lib.test.php');//this file delete the course
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/debug.lib.inc.test.php');//this file need be to the finish of the tests
//$this->addTestFile(dirname(__FILE__).'/main/inc/lib/fileUpload.lib.test.php');
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/debug.lib.inc.test.php');//this file need be to the finish of the tests
$this->addTestFile(dirname(__FILE__).'/main/inc/lib/main_api.lib.test.php');//this file delete the course
//This files have a metadata and is not available for the test.
//$this->addTestFile(dirname(__FILE__).'/main/inc/lib/xht.lib.test.php');
//$this->addTestFile(dirname(__FILE__).'/main/inc/lib/xmd.lib.test.php');
*/
}
}
$test = &new TestsSuite();
?>
?>

Loading…
Cancel
Save