diff --git a/question/format/gift/format.php b/question/format/gift/format.php index 022a5c348eee0..8fef59780086f 100644 --- a/question/format/gift/format.php +++ b/question/format/gift/format.php @@ -338,6 +338,10 @@ public function readquestion($lines) { return $question; case 'multichoice': + // "Temporary" solution to enable choice of answernumbering on GIFT import + // by respecting default set for multichoice questions (MDL-59447) + $question->answernumbering = get_config('qtype_multichoice', 'answernumbering'); + if (strpos($answertext, "=") === false) { $question->single = 0; // Multiple answers are enabled if no single answer is 100% correct. } else { diff --git a/question/format/gift/tests/giftformat_test.php b/question/format/gift/tests/giftformat_test.php index 2d3b9ab1ca4e0..90c89ef2d7e0b 100644 --- a/question/format/gift/tests/giftformat_test.php +++ b/question/format/gift/tests/giftformat_test.php @@ -267,7 +267,18 @@ public function test_export_match() { $this->assert_same_gift($expectedgift, $gift); } - public function test_import_multichoice() { + /** + * Test import of multichoice question in GIFT format + * + * @dataProvider numberingstyle_provider + * + * @param string $numberingstyle multichoice numbering style to set for qtype_multichoice + * + */ + public function test_import_multichoice($numberingstyle) { + $this->resetAfterTest(true); + + set_config('answernumbering', $numberingstyle, 'qtype_multichoice'); $gift = " // multiple choice with specified feedback for right and wrong answers ::Q2:: What's between orange and green in the spectrum? @@ -293,7 +304,7 @@ public function test_import_multichoice() { 'length' => 1, 'single' => 1, 'shuffleanswers' => '1', - 'answernumbering' => 'abc', + 'answernumbering' => $numberingstyle, 'correctfeedback' => array( 'text' => '', 'format' => FORMAT_MOODLE, @@ -352,6 +363,23 @@ public function test_import_multichoice() { $this->assert(new question_check_specified_fields_expectation($expectedq), $q); } + /** + * Return a list of numbering styles (see question/type/multichoice/questiontype.php + * for valid choices) + * + * @return array Array of 1-element arrays of qtype_multichoice numbering styles + */ + public function numberingstyle_provider() { + return [ + ['abc'], + ['ABCD'], + ['123'], + ['iii'], + ['IIII'], + ['none'] + ]; + } + public function test_import_multichoice_multi() { $gift = " // multiple choice, multiple response with specified feedback for right and wrong answers