You are here

function QuestionsImportTestCase::medlyHelper in Quiz 6.6

2 calls to QuestionsImportTestCase::medlyHelper()
QuestionsImportTestCase::testAikenMedly in includes/questions_import/questions_import.test
QuestionsImportTestCase::testCsvMedly in includes/questions_import/questions_import.test

File

includes/questions_import/questions_import.test, line 224

Class

QuestionsImportTestCase

Code

function medlyHelper($import_type) {
  switch ($import_type) {
    case 'aiken':
      $import_settings['import_type'] = 'native_aiken';
      $filetype = '.txt';
      break;
    case 'csv':
      $import_settings['import_type'] = 'native_csv';
      $filetype = '.csv';
      break;
  }
  $import_questions = array();
  $filepath = file_create_filename($import_type . '_medly' . $filetype, file_directory_temp());
  $handle = fopen($filepath, "w+");
  for ($i = 0; $i < 30; $i++) {
    $question_type = mt_rand(0, 2);
    $question = new stdClass();
    switch ($question_type) {
      case 0:
        $question->num_options = mt_rand(1, 10);
        $question->answer = mt_rand(0, $question->num_options - 1);
        $question->question = "Question #{$i}:";
        $question->type = "multichoice";
        $question->answers = array();
        $write = $question->type . "\r\n" . $question->question . "\r\n";
        for ($j = 0; $j < $question->num_options; $j++) {
          $question->answers[$j] = "Option #{$j}";
        }
        break;
      case 1:
        $question->answer = mt_rand(0, 1) == 0 ? "true" : "false";
        $question->question = "Question #{$i}:";
        $question->type = "true_false";
        $question->feedback = "Feedback on question #{$i}";
        break;
      case 2:
        $question->answer = "The answer is {$i}.";
        $question->question = "Question #{$i}:";
        $question->type = "short_answer";
        $question->value = mt_rand(1, 5);
        $question->sat = mt_rand(0, 3);
        switch ($question->sat) {
          case 0:
            $question->shortanswertype = "case sensitive match";
            break;
          case 1:
            $question->shortanswertype = "case insensitive match";
            break;
          case 2:
            $question->shortanswertype = "regular expression match";
            break;
          case 3:
            $question->shortanswertype = "manually score match";
            break;
        }
        break;
    }
    $write = $this
      ->writeImport($import_type, $question);
    fwrite($handle, $write);
    $import_questions[] = $question;
  }
  $import_settings['quiz_node'] = '1';
  $import_settings['field_separator'] = ',';
  $import_settings['files[upload]'] = $filepath;
  $msg = $this
    ->drupalPost('admin/quiz/questions_import', $import_settings, 'Import');
  $this
    ->assertPattern('/30 questions were imported successfully/', t('Checking import success message'));
  $this
    ->quizHelper($import_questions);
}