Loading tests/CourseGradeTestCase.test +41 −1 Changes for tests/CourseGradeTestCase.test: 41 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ class CourseGradeTestCase extends CourseTestCase { $courseNode = $this->createCourseNode(); // Create a graded course object. $co1 = $this->createGradedCourseObject($courseNode); $co1 = $this->createCourseObject($courseNode, TRUE); // Reload the course from DB. $course = course_get_course($courseNode); Loading @@ -41,4 +41,44 @@ class CourseGradeTestCase extends CourseTestCase { $this->assertEqual($co1->getCourse()->getTracker()->getOption('grade_result'), 80, 'Course grade was given from course object'); } public function testCourseGradeAccess() { $courseNode = $this->createCourseNode(); // Create a graded course objects. $this->createCourseObject($courseNode, TRUE); // Add a non-graded course object. $this->createCourseObject($courseNode); // Reload the course from DB. $course = course_get_course($courseNode, NULL, TRUE); $courseObjects = $course->getObjects(); $co1 = $courseObjects[0]; $co2 = $courseObjects[1]; // Set object 1 to be included in the course grade. $co1->setOption('grade_include', TRUE); // Set object 2 to require a course grade of 80. $co2->addOptions(array( 'plugins' => array( 'access' => array( 'grade' => array( 'course_grade' => 80, ), ), ), )); // Complete but don't hit the grade requirement. $co1->getFulfillment()->setOption('grade_result', 79)->setComplete(1); $course->getTracker()->track(); $this->assertFalse($co2->access('take'), 'User cannot take course object with lower grade.'); // Hit the grade requirement. $co1->getFulfillment()->setOption('grade_result', 80)->setComplete(1); $course->getTracker()->track(); $this->assertTrue($co2->access('take'), 'User can take course object with required grade.'); } } tests/CourseTestCase.test +7 −13 Changes for tests/CourseTestCase.test: 7 added lines, 13 removed lines. Original line number Diff line number Diff line Loading @@ -43,22 +43,16 @@ class CourseTestCase extends DrupalWebTestCase { * @param stdClass $courseNode * @return Course */ function createCourseObject($courseNode) { function createCourseObject($courseNode, $graded = FALSE) { static $weight = 0; if ($graded) { $courseObject = course_get_course_object('course_test', 'course_test_graded_object'); } else { $courseObject = course_get_course_object('course_test', 'course_test_object'); $courseObject->setCourse($courseNode->nid); $courseObject->save(); return $courseObject; } /** * Create a new persistent graded course object on a Course. * * @param stdClass $courseNode * @return Course */ function createGradedCourseObject($courseNode) { $courseObject = course_get_course_object('course_test', 'course_test_graded_object'); $courseObject->setCourse($courseNode->nid); $courseObject->setOption('weight', $weight++); $courseObject->save(); return $courseObject; } Loading Loading
tests/CourseGradeTestCase.test +41 −1 Changes for tests/CourseGradeTestCase.test: 41 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ class CourseGradeTestCase extends CourseTestCase { $courseNode = $this->createCourseNode(); // Create a graded course object. $co1 = $this->createGradedCourseObject($courseNode); $co1 = $this->createCourseObject($courseNode, TRUE); // Reload the course from DB. $course = course_get_course($courseNode); Loading @@ -41,4 +41,44 @@ class CourseGradeTestCase extends CourseTestCase { $this->assertEqual($co1->getCourse()->getTracker()->getOption('grade_result'), 80, 'Course grade was given from course object'); } public function testCourseGradeAccess() { $courseNode = $this->createCourseNode(); // Create a graded course objects. $this->createCourseObject($courseNode, TRUE); // Add a non-graded course object. $this->createCourseObject($courseNode); // Reload the course from DB. $course = course_get_course($courseNode, NULL, TRUE); $courseObjects = $course->getObjects(); $co1 = $courseObjects[0]; $co2 = $courseObjects[1]; // Set object 1 to be included in the course grade. $co1->setOption('grade_include', TRUE); // Set object 2 to require a course grade of 80. $co2->addOptions(array( 'plugins' => array( 'access' => array( 'grade' => array( 'course_grade' => 80, ), ), ), )); // Complete but don't hit the grade requirement. $co1->getFulfillment()->setOption('grade_result', 79)->setComplete(1); $course->getTracker()->track(); $this->assertFalse($co2->access('take'), 'User cannot take course object with lower grade.'); // Hit the grade requirement. $co1->getFulfillment()->setOption('grade_result', 80)->setComplete(1); $course->getTracker()->track(); $this->assertTrue($co2->access('take'), 'User can take course object with required grade.'); } }
tests/CourseTestCase.test +7 −13 Changes for tests/CourseTestCase.test: 7 added lines, 13 removed lines. Original line number Diff line number Diff line Loading @@ -43,22 +43,16 @@ class CourseTestCase extends DrupalWebTestCase { * @param stdClass $courseNode * @return Course */ function createCourseObject($courseNode) { function createCourseObject($courseNode, $graded = FALSE) { static $weight = 0; if ($graded) { $courseObject = course_get_course_object('course_test', 'course_test_graded_object'); } else { $courseObject = course_get_course_object('course_test', 'course_test_object'); $courseObject->setCourse($courseNode->nid); $courseObject->save(); return $courseObject; } /** * Create a new persistent graded course object on a Course. * * @param stdClass $courseNode * @return Course */ function createGradedCourseObject($courseNode) { $courseObject = course_get_course_object('course_test', 'course_test_graded_object'); $courseObject->setCourse($courseNode->nid); $courseObject->setOption('weight', $weight++); $courseObject->save(); return $courseObject; } Loading