CourseGradeTestCase.test in Course 6
File
tests/CourseGradeTestCase.test
View source
<?php
require_once drupal_get_path('module', 'course') . '/tests/CourseTestCase.test';
class CourseGradeTestCase extends CourseTestCase {
public static function getInfo() {
return array(
'name' => 'Course grading',
'description' => 'Ensure that Course grading functions normally.',
'group' => 'Course',
);
}
public function testCourseFinalGrade() {
$courseNode = $this
->createCourseNode();
$co1 = $this
->createCourseObject($courseNode, TRUE);
$course = course_get_course($courseNode);
$courseObjects = $course
->getObjects();
$co1 = $courseObjects[0];
$co1
->getFulfillment()
->setOption('grade_result', 80);
$co1
->setOption('grade_include', FALSE);
$co1
->getCourse()
->getTracker()
->track();
$this
->assertNotEqual($co1
->getCourse()
->getTracker()
->getOption('grade_result'), 80, 'Course grade was not given from course object');
$co1
->setOption('grade_include', TRUE);
$co1
->getCourse()
->getTracker()
->track();
$this
->assertEqual($co1
->getCourse()
->getTracker()
->getOption('grade_result'), 80, 'Course grade was given from course object');
}
public function testCourseGradeAccess() {
$courseNode = $this
->createCourseNode();
$this
->createCourseObject($courseNode, TRUE);
$this
->createCourseObject($courseNode);
$course = course_get_course($courseNode, NULL, TRUE);
$courseObjects = $course
->getObjects();
$co1 = $courseObjects[0];
$co2 = $courseObjects[1];
$co1
->setOption('grade_include', TRUE);
$co2
->addOptions(array(
'plugins' => array(
'access' => array(
'grade' => array(
'course_grade' => 80,
),
),
),
));
$co1
->getFulfillment()
->setOption('grade_result', 79)
->setComplete(1);
$course
->getTracker()
->track();
$this
->assertFalse($co2
->access('take'), 'User cannot take course object with lower grade.');
$co1
->getFulfillment()
->setOption('grade_result', 80)
->setComplete(1);
$course
->getTracker()
->track();
$this
->assertTrue($co2
->access('take'), 'User can take course object with required grade.');
}
}