From 002f56ef797ebd4f40ccc33e3d612c8935b9c960 Mon Sep 17 00:00:00 2001 From: sam_marshall Date: Wed, 26 Nov 2008 13:59:24 +0000 Subject: [PATCH] MDL-17412: Completion system unit tests were broken --- lib/completionlib.php | 5 +---- lib/simpletest/testcompletionlib.php | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/completionlib.php b/lib/completionlib.php index 5e979ef9d2..dc8a0f2339 100644 --- a/lib/completionlib.php +++ b/lib/completionlib.php @@ -623,7 +623,7 @@ class completion_info { $users = $this->internal_get_tracked_users($sortfirstname, $groupid); $resultobject->start=$start; $resultobject->total=count($users); - $users=array_slice($users,$start,$pagesize); + $users=array_slice($users,$start,$pagesize==0 ? count($users)-$start : $pagesize); // Get progress information for these users in groups of 1, 000 (if needed) // to avoid making the SQL IN too long @@ -649,9 +649,6 @@ FROM WHERE cm.course=? AND cmc.userid $insql ", $params); - if (!$rs) { - $this->internal_systemerror('Failed to obtain completion progress'); - } foreach ($rs as $progress) { $resultobject->users[$progress->userid]->progress[$progress->coursemoduleid]=$progress; } diff --git a/lib/simpletest/testcompletionlib.php b/lib/simpletest/testcompletionlib.php index 227d470a68..d3e64e4606 100644 --- a/lib/simpletest/testcompletionlib.php +++ b/lib/simpletest/testcompletionlib.php @@ -90,7 +90,7 @@ class TimeModifiedExpectation extends SimpleExpectation { class completionlib_test extends MoodleUnitTestCase { var $realdb,$realcfg,$realsession,$realuser; - function setUp() { + function setUp() { global $DB,$CFG,$SESSION,$USER; $this->realdb=$DB; $this->realcfg=$CFG; @@ -327,7 +327,8 @@ WHERE $c=new completion_cutdown(); $c->__construct((object)array('id'=>42)); - $cm=(object)array('id'=>13,'course'=>42); + $cm=(object)array('id'=>13,'course'=>42, + 'completion'=>COMPLETION_TRACKING_AUTOMATIC); $DB->setReturnValue('get_recordset',new fake_recordset(array( (object)array('id'=>1,'userid'=>100), @@ -525,12 +526,14 @@ WHERE $progress1,$progress2 ))); - $this->assertEqual(array( - 100 => (object)array('id'=>100,'firstname'=>'Woot','lastname'=>'Plugh', - 'progress'=>array(13=>$progress1)), - 201 => (object)array('id'=>201,'firstname'=>'Vroom','lastname'=>'Xyzzy', - 'progress'=>array(14=>$progress2)), - ),$c->get_progress_all(false)); + $this->assertEqual((object)array( + 'start'=>0,'total'=>2, + 'users'=>array( + 100 => (object)array('id'=>100,'firstname'=>'Woot','lastname'=>'Plugh', + 'progress'=>array(13=>$progress1)), + 201 => (object)array('id'=>201,'firstname'=>'Vroom','lastname'=>'Xyzzy', + 'progress'=>array(14=>$progress2)), + )),$c->get_progress_all(false)); // 2) With more than 1,000 results $c->expectAt(1,'internal_get_tracked_users',array(true,3)); @@ -572,8 +575,8 @@ WHERE $result=$c->get_progress_all(true,3); $resultok=true; - $resultok = $resultok && ($ids==array_keys($result)); - foreach($result as $userid => $data) { + $resultok = $resultok && ($ids==array_keys($result->users)); + foreach($result->users as $userid => $data) { $resultok = $resultok && $data->firstname=='frog'; $resultok = $resultok && $data->lastname==$userid; $resultok = $resultok && $data->id==$userid; -- 2.39.5