Merge branch 'MDL-59447-master' of https://github.com/nwp90/moodle

This commit is contained in:
David Monllao 2018-07-17 14:34:02 +02:00 committed by Andrew Nicols
commit 3ffb8d2317
2 changed files with 34 additions and 2 deletions

View File

@ -338,6 +338,10 @@ class qformat_gift extends qformat_default {
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 {

View File

@ -267,7 +267,18 @@ class qformat_gift_test extends question_testcase {
$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 @@ class qformat_gift_test extends question_testcase {
'length' => 1,
'single' => 1,
'shuffleanswers' => '1',
'answernumbering' => 'abc',
'answernumbering' => $numberingstyle,
'correctfeedback' => array(
'text' => '',
'format' => FORMAT_MOODLE,
@ -352,6 +363,23 @@ class qformat_gift_test extends question_testcase {
$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