function CourseObjectQuizTest::testQuizCourseObject in Course 3.x
File
- modules/
course_quiz/ tests/ src/ Functional/ CourseObjectQuizTest.php, line 33
Class
- CourseObjectQuizTest
- Tests quizzes in courses.
Namespace
Drupal\Tests\course_quiz\FunctionalCode
function testQuizCourseObject() {
$this
->drupalLogin($this->quiz_admin);
// Create a course with 1 quiz.
$course = $this
->createCourse();
$co1 = CourseObject::create([
'object_type' => 'quiz',
]);
$co1
->setCourse($course
->id());
$co1
->setOption('passing_grade', 100);
$co1
->save();
$this
->assertTrue($co1
->getInstanceId() > 0, 'Quiz node created on course object save.');
$quiz = Quiz::load($co1
->getInstanceId());
$this
->assertNotEmpty($quiz);
$quiz_question = QuizQuestion::create([
'type' => 'truefalse',
'truefalse_correct' => 1,
]);
$quiz_question
->save();
$quiz
->addQuestion($quiz_question);
// Enroll the user in the course
$course
->enroll($this->quiz_admin);
// Fail the quiz.
$this
->drupalGet($quiz
->toUrl('take'));
$this
->drupalPostForm(NULL, array(
'question[1][answer]' => 0,
), t('Finish'));
\Drupal::entityTypeManager()
->getStorage('course_object_fulfillment')
->resetCache();
$this
->assertFalse($co1
->getFulfillment($this->quiz_admin)
->isComplete(), 'Check that quiz fulfillment is not complete after fail.');
// Pass the quiz.
$this
->drupalGet($quiz
->toUrl('take'));
$this
->drupalPostForm(NULL, array(
'question[1][answer]' => 1,
), t('Finish'));
\Drupal::entityTypeManager()
->getStorage('course_object_fulfillment')
->resetCache();
$this
->assertTrue($co1
->getFulfillment($this->quiz_admin)
->isComplete(), 'Check that quiz fulfillment is complete.');
}