diff --git a/question/type/questiontypebase.php b/question/type/questiontypebase.php index 7c70a6acdc6..c812900adde 100644 --- a/question/type/questiontypebase.php +++ b/question/type/questiontypebase.php @@ -335,9 +335,9 @@ class question_type { $question->generalfeedbackformat = !empty($form->generalfeedback['format']) ? $form->generalfeedback['format'] : 0; - if (empty($question->name)) { + if ($question->name === '') { $question->name = shorten_text(strip_tags($form->questiontext['text']), 15); - if (empty($question->name)) { + if ($question->name === '') { $question->name = '-'; } } diff --git a/question/type/tests/questiontype_test.php b/question/type/tests/questiontype_test.php index 6eda33ff4b0..6459629b5d3 100644 --- a/question/type/tests/questiontype_test.php +++ b/question/type/tests/questiontype_test.php @@ -36,10 +36,32 @@ require_once($CFG->dirroot . '/question/type/questiontypebase.php'); * @copyright 2008 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class question_type_test extends advanced_testcase { +class question_type_testcase extends advanced_testcase { public static $includecoverage = array('question/type/questiontypebase.php'); - public function test_not_done_yet() { + public function test_save_question_name() { + $this->resetAfterTest(); + $questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question'); + $cat = $questiongenerator->create_question_category(array()); + + $saq = $questiongenerator->create_question('shortanswer', null, + array('category' => $cat->id, 'name' => 'Test question')); + $actual = question_bank::load_question_data($saq->id); + + $this->assertSame('Test question', $actual->name); + } + + public function test_save_question_zero_name() { + $this->resetAfterTest(); + + $questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question'); + $cat = $questiongenerator->create_question_category(array()); + + $saq = $questiongenerator->create_question('shortanswer', null, + array('category' => $cat->id, 'name' => '0')); + $actual = question_bank::load_question_data($saq->id); + + $this->assertSame('0', $actual->name); } }