public function QuizFeedbackTest::testAnswerFeedback in Quiz 8.6
Same name and namespace in other branches
- 8.5 tests/src/Functional/QuizFeedbackTest.php \Drupal\Tests\quiz\Functional\QuizFeedbackTest::testAnswerFeedback()
- 6.x tests/src/Functional/QuizFeedbackTest.php \Drupal\Tests\quiz\Functional\QuizFeedbackTest::testAnswerFeedback()
Test question feedback.
Note that we are only testing if any feedback displays, each question type has its own tests for testing feedback returned from that question type.
File
- tests/
src/ Functional/ QuizFeedbackTest.php, line 22
Class
- QuizFeedbackTest
- Test quiz feedback.
Namespace
Drupal\Tests\quiz\FunctionalCode
public function testAnswerFeedback() {
$this
->drupalLogin($this->admin);
$quiz = $this
->createQuiz();
// 2 questions.
$question1 = $this
->createQuestion(array(
'type' => 'truefalse',
'truefalse_correct' => 1,
));
$this
->linkQuestionToQuiz($question1, $quiz);
$question2 = $this
->createQuestion(array(
'type' => 'truefalse',
'truefalse_correct' => 1,
));
$this
->linkQuestionToQuiz($question2, $quiz);
$review_options = array(
'attempt' => t('Your answer'),
'correct' => t('Correct?'),
'score' => t('Score'),
'answer_feedback' => t('Feedback'),
'solution' => t('Correct answer'),
);
$this
->drupalLogin($this->user);
// Answer the first question.
$this
->drupalGet("quiz/{$quiz->id()}/take");
$this
->drupalPostForm(NULL, array(
"question[{$question1->id()}][answer]" => 1,
), t('Next'));
// Check feedback after the Question.
foreach ($review_options as $option => $text) {
$quiz->review_options = array(
'question' => array(
$option => $option,
),
);
$quiz
->save();
$this
->drupalGet("quiz/{$quiz->id()}/take/1/feedback");
$this
->assertText('Question 1');
$this
->assertRaw('<th>' . $text . '</th>');
foreach ($review_options as $option2 => $text2) {
if ($option != $option2) {
$this
->assertNoRaw('<th>' . $text2 . '</th>');
}
}
}
// Feedback only after the quiz.
$this
->drupalGet("quiz/{$quiz->id()}/take/1/feedback");
$this
->drupalPostForm(NULL, array(), t('Next question'));
$this
->drupalPostForm(NULL, array(
"question[{$question2->id()}][answer]" => 1,
), t('Finish'));
// Check feedback after the Quiz.
foreach ($review_options as $option => $text) {
$quiz->review_options = array(
'end' => array(
$option => $option,
),
);
$quiz
->save();
$this
->drupalGet("quiz/{$quiz->id()}/result/1");
$this
->assertRaw('<th>' . $text . '</th>');
foreach ($review_options as $option2 => $text2) {
if ($option != $option2) {
$this
->assertNoRaw('<th>' . $text2 . '</th>');
}
}
}
}