Differences Between: [Versions 311 and 400]
1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 namespace qtype_description; 18 19 use qtype_description; 20 use qtype_description_edit_form; 21 22 defined('MOODLE_INTERNAL') || die(); 23 24 global $CFG; 25 require_once($CFG->dirroot . '/question/type/description/questiontype.php'); 26 require_once($CFG->dirroot . '/question/engine/tests/helpers.php'); 27 require_once($CFG->dirroot . '/question/type/edit_question_form.php'); 28 require_once($CFG->dirroot . '/question/type/description/edit_description_form.php'); 29 30 31 /** 32 * Unit tests for the description question type class. 33 * 34 * @package qtype_description 35 * @copyright 2013 The Open University 36 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 37 */ 38 class question_type_test extends \advanced_testcase { 39 protected $qtype; 40 41 protected function setUp(): void { 42 $this->qtype = new qtype_description(); 43 } 44 45 protected function tearDown(): void { 46 $this->qtype = null; 47 } 48 49 public function test_name() { 50 $this->assertEquals($this->qtype->name(), 'description'); 51 } 52 53 public function test_actual_number_of_questions() { 54 $this->assertEquals(0, $this->qtype->actual_number_of_questions(null)); 55 } 56 57 public function test_can_analyse_responses() { 58 $this->assertFalse($this->qtype->can_analyse_responses()); 59 } 60 61 public function test_get_random_guess_score() { 62 $this->assertNull($this->qtype->get_random_guess_score(null)); 63 } 64 65 public function test_get_possible_responses() { 66 $this->assertEquals(array(), $this->qtype->get_possible_responses(null)); 67 } 68 69 70 public function test_question_saving() { 71 $this->resetAfterTest(true); 72 $this->setAdminUser(); 73 74 $questiondata = \test_question_maker::get_question_data('description'); 75 $formdata = \test_question_maker::get_question_form_data('description'); 76 77 $generator = $this->getDataGenerator()->get_plugin_generator('core_question'); 78 $cat = $generator->create_question_category(array()); 79 80 $formdata->category = "{$cat->id},{$cat->contextid}"; 81 qtype_description_edit_form::mock_submit((array)$formdata); 82 83 $form = \qtype_description_test_helper::get_question_editing_form($cat, $questiondata); 84 85 $this->assertTrue($form->is_validated()); 86 87 $fromform = $form->get_data(); 88 89 $returnedfromsave = $this->qtype->save_question($questiondata, $fromform); 90 $actualquestionsdata = question_load_questions(array($returnedfromsave->id)); 91 $actualquestiondata = end($actualquestionsdata); 92 93 foreach ($questiondata as $property => $value) { 94 if (!in_array($property, array('id', 'timemodified', 'timecreated', 'idnumber'))) { 95 $this->assertEquals($value, $actualquestiondata->$property); 96 } 97 } 98 } 99 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body