You are here

public function QuizResumeTest::testQuizNoResuming in Quiz 8.6

Same name and namespace in other branches
  1. 8.5 tests/src/Functional/QuizResumeTest.php \Drupal\Tests\quiz\Functional\QuizResumeTest::testQuizNoResuming()
  2. 6.x tests/src/Functional/QuizResumeTest.php \Drupal\Tests\quiz\Functional\QuizResumeTest::testQuizNoResuming()

Test the quiz not resuming from database.

File

tests/src/Functional/QuizResumeTest.php, line 56

Class

QuizResumeTest
Test quiz resume functionality.

Namespace

Drupal\Tests\quiz\Functional

Code

public function testQuizNoResuming() {
  $this
    ->drupalLogin($this->admin);

  // Resuming is default behavior.
  $quiz_node = $this
    ->createQuiz(array(
    'allow_resume' => 0,
    'takes' => 1,
  ));

  // 2 questions.
  $question1 = $this
    ->createQuestion(array(
    'type' => 'truefalse',
    'truefalse_correct' => 1,
  ));
  $this
    ->linkQuestionToQuiz($question1, $quiz_node);
  $question2 = $this
    ->createQuestion(array(
    'type' => 'truefalse',
    'truefalse_correct' => 1,
  ));
  $this
    ->linkQuestionToQuiz($question2, $quiz_node);

  // Answer a question. Ensure the question navigation restrictions are
  // maintained.
  $this
    ->drupalLogin($this->user);
  $this
    ->drupalGet("quiz/{$quiz_node->id()}/take");
  $this
    ->drupalGet("quiz/{$quiz_node->id()}/take/2");
  $this
    ->assertResponse(403);
  $this
    ->drupalGet("quiz/{$quiz_node->id()}/take/1");
  $this
    ->drupalPostForm(NULL, array(
    "question[{$question1->id()}][answer]" => 1,
  ), t('Next'));

  // Login again.
  $this
    ->drupalLogin($this->user);
  $this
    ->drupalGet("quiz/{$quiz_node->id()}/take");
  $this
    ->assertNoText('Resuming');

  // Assert 2nd question is not accessible (indicating the answer to #1 was
  // not saved.)
  $this
    ->drupalGet("quiz/{$quiz_node->id()}/take/2");
  $this
    ->assertResponse(403);
}