QuizTestBase.php in Quiz 8.5        
                          
                  
                        
  
  
  
  
File
  tests/src/Functional/QuizTestBase.php
  
    View source  
  <?php
namespace Drupal\Tests\quiz\Functional;
use Drupal\Core\Config\Development\ConfigSchemaChecker;
use Drupal\quiz\Entity\Quiz;
use Drupal\quiz\Entity\QuizQuestion;
use Drupal\Tests\BrowserTestBase;
use function quiz_get_feedback_options;
abstract class QuizTestBase extends BrowserTestBase {
  
  protected $strictConfigSchema = FALSE;
  protected $defaultTheme = 'stark';
  public static $modules = array(
    'quiz',
  );
  
  public function setUp($admin_permissions = array(), $user_permissions = array()) {
    parent::setUp();
    $admin_permissions[] = 'administer quiz configuration';
    $admin_permissions[] = 'administer quiz_question';
    $admin_permissions[] = 'administer quiz_result_answer';
    $admin_permissions[] = 'administer quiz_result';
    $admin_permissions[] = 'administer quiz';
    if ($this->profile == 'standard') {
      $admin_permissions[] = 'use text format basic_html';
      $admin_permissions[] = 'use text format restricted_html';
      $admin_permissions[] = 'use text format full_html';
      $user_permissions[] = 'use text format basic_html';
      $user_permissions[] = 'use text format restricted_html';
    }
    $user_permissions[] = 'access quiz';
    $user_permissions[] = 'view any quiz';
    $user_permissions[] = 'view own quiz_result';
    $this->admin = $this
      ->drupalCreateUser(array_unique($admin_permissions));
    $this->user = $this
      ->drupalCreateUser(array_unique($user_permissions));
  }
  
  public function linkQuestionToQuiz(QuizQuestion $quiz_question, Quiz $quiz = NULL) {
    static $weight = 0;
    if (!$quiz) {
      
      $quiz = $this
        ->createQuiz();
    }
    
    $quiz
      ->addQuestion($quiz_question)
      ->set('weight', $weight)
      ->save();
    $weight++;
    return $quiz;
  }
  
  public function createQuiz($settings = array()) {
    $settings += array(
      'title' => 'Quiz',
      'body' => 'Quiz description',
      'type' => 'quiz',
      'result_type' => 'quiz_result',
      'review_options' => array(
        'end' => array_combine(array_keys(quiz_get_feedback_options()), array_keys(quiz_get_feedback_options())),
      ),
    );
    $quiz = Quiz::create($settings);
    $quiz
      ->save();
    return $quiz;
  }
  
  public function createQuestion($settings = array()) {
    $question = QuizQuestion::create($settings);
    $question
      ->save();
    return $question;
  }
}