public function QuizFeedbackTestCase::testAnswerFeedback in Quiz 7.5
Same name and namespace in other branches
- 7.6 tests/QuizFeedbackTestCase.test \QuizFeedbackTestCase::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/
QuizFeedbackTestCase.test, line 33 - Unit tests for the quiz question Module.
Class
- QuizFeedbackTestCase
- Base test class for Quiz questions.
Code
public function testAnswerFeedback() {
$this
->drupalLogin($this->admin);
$quiz_node = $this
->drupalCreateQuiz();
// 3 questions.
$question_node1 = $this
->drupalCreateNode(array(
'type' => 'truefalse',
'correct_answer' => 1,
));
$this
->linkQuestionToQuiz($question_node1, $quiz_node);
$question_node2 = $this
->drupalCreateNode(array(
'type' => 'truefalse',
'correct_answer' => 1,
));
$this
->linkQuestionToQuiz($question_node2, $quiz_node);
// This is a dynamic test that only tests the feedback columns showing up.
variable_set('quiz_auto_revisioning', 0);
$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("node/{$quiz_node->nid}/take");
$this
->drupalPost(NULL, array(
"question[{$question_node1->nid}][answer]" => 1,
), t('Next'));
// Check feedback after the Question.
foreach ($review_options as $option => $text) {
$quiz_node->review_options = array(
'question' => array(
$option => $option,
),
);
node_save($quiz_node);
$this
->drupalGet("node/{$quiz_node->nid}/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("node/{$quiz_node->nid}/take/1/feedback");
$this
->drupalPost(NULL, array(), t('Next question'));
$this
->drupalPost(NULL, array(
"question[{$question_node2->nid}][answer]" => 1,
), t('Finish'));
// Check feedback after the Quiz.
foreach ($review_options as $option => $text) {
$quiz_node->review_options = array(
'end' => array(
$option => $option,
),
);
node_save($quiz_node);
$this
->drupalGet("node/{$quiz_node->nid}/quiz-results/1/view");
$this
->assertRaw('<th>' . $text . '</th>');
foreach ($review_options as $option2 => $text2) {
if ($option != $option2) {
$this
->assertNoRaw('<th>' . $text2 . '</th>');
}
}
}
}