From cb8aefa658cf7ad8f002a480343afb2dea94cc08 Mon Sep 17 00:00:00 2001 From: Tim Hunt Date: Mon, 9 Jul 2018 18:37:45 +0100 Subject: [PATCH] MDL-62880 qtype_ddwtos: drop support for legacy import format It was more than 8 years since we wrote in that format. --- question/type/ddwtos/questiontype.php | 37 +--- .../type/ddwtos/tests/questiontype_test.php | 193 ------------------ 2 files changed, 11 insertions(+), 219 deletions(-) diff --git a/question/type/ddwtos/questiontype.php b/question/type/ddwtos/questiontype.php index d8901b3324d..d96ef4d0f97 100644 --- a/question/type/ddwtos/questiontype.php +++ b/question/type/ddwtos/questiontype.php @@ -71,32 +71,17 @@ class qtype_ddwtos extends qtype_gapselect_base { $question->shuffleanswers = $format->trans_single( $format->getpath($data, array('#', 'shuffleanswers', 0, '#'), 1)); - if (!empty($data['#']['dragbox'])) { - // Modern XML format. - $dragboxes = $data['#']['dragbox']; - $question->answer = array(); - $question->draggroup = array(); - $question->infinite = array(); - - foreach ($data['#']['dragbox'] as $dragboxxml) { - $question->choices[] = array( - 'answer' => $format->getpath($dragboxxml, array('#', 'text', 0, '#'), '', true), - 'choicegroup' => $format->getpath($dragboxxml, array('#', 'group', 0, '#'), 1), - 'infinite' => array_key_exists('infinite', $dragboxxml['#']), - ); - } - - } else { - // Legacy format containing PHP serialisation. - foreach ($data['#']['answer'] as $answerxml) { - $ans = $format->import_answer($answerxml); - $options = unserialize(stripslashes($ans->feedback['text'])); - $question->choices[] = array( - 'answer' => $ans->answer, - 'choicegroup' => $options->draggroup, - 'infinite' => $options->infinite, - ); - } + // Import the choices. + $question->answer = array(); + $question->draggroup = array(); + $question->infinite = array(); + + foreach ($data['#']['dragbox'] as $dragboxxml) { + $question->choices[] = array( + 'answer' => $format->getpath($dragboxxml, array('#', 'text', 0, '#'), '', true), + 'choicegroup' => $format->getpath($dragboxxml, array('#', 'group', 0, '#'), 1), + 'infinite' => array_key_exists('infinite', $dragboxxml['#']), + ); } $format->import_combined_feedback($question, $data, true); diff --git a/question/type/ddwtos/tests/questiontype_test.php b/question/type/ddwtos/tests/questiontype_test.php index 747c87f1f96..222c1869116 100644 --- a/question/type/ddwtos/tests/questiontype_test.php +++ b/question/type/ddwtos/tests/questiontype_test.php @@ -243,199 +243,6 @@ class qtype_ddwtos_test extends question_testcase { $this->assertEquals($expectedq->hint, $q->hint); } - public function test_xml_import_legacy() { - $xml = ' - - QDandD1 Base definition - - - <p>Drag and drop the words from the list below to fill the blank spaces ' . - 'and correctly complete the sentence.</p> <p>At 25°C all aqueous basic ' . - 'solutions have [[1]] ion concentrations less than [[8]]<br />mol ' . - 'litre<sup>-1</sup> and pH values [[9]] than [[6]].</p> ' . - '<!--DONOTCLEAN--> - - - - <p>At 25 &#xB0;C all aqueous basic solutions have hydrogen ion ' . - 'concentrations less than 10<sup>&#x2212;7</sup> mol ' . - 'litre<sup>&#x2212;1</sup> and pH values greater than 7.</p> ' . - '<p>See Section 9 of S103 <em class="italic">Discovering ' . - 'Science</em> Block 8.</p> - - 1 - 0.33 - 0 - 0 - false - - 1 - hydrogen - - O:8:"stdClass":2:{s:9:"draggroup";s:1:"1";s:8:"infinite";i:0;} - - - - 0 - positive - - O:8:"stdClass":2:{s:9:"draggroup";s:1:"1";s:8:"infinite";i:0;} - - - - 0 - hydroxide - - O:8:"stdClass":2:{s:9:"draggroup";s:1:"1";s:8:"infinite";i:0;} - - - - 0 - negative - - O:8:"stdClass":2:{s:9:"draggroup";s:1:"1";s:8:"infinite";i:0;} - - - - 0 - 10<sup>7</sup> - - O:8:"stdClass":2:{s:9:"draggroup";s:1:"2";s:8:"infinite";i:0;} - - - - 1 - 7 - - O:8:"stdClass":2:{s:9:"draggroup";s:1:"2";s:8:"infinite";i:0;} - - - - 0 - 1 - - O:8:"stdClass":2:{s:9:"draggroup";s:1:"2";s:8:"infinite";i:0;} - - - - 1 - 10<sup>-7</sup> - - O:8:"stdClass":2:{s:9:"draggroup";s:1:"2";s:8:"infinite";i:0;} - - - - 1 - greater - - O:8:"stdClass":2:{s:9:"draggroup";s:1:"3";s:8:"infinite";i:0;} - - - - 0 - less - - O:8:"stdClass":2:{s:9:"draggroup";s:1:"3";s:8:"infinite";i:0;} - - - - Your answer is correct. - - 1 - - Your answer is partially correct. - - - Your answer is incorrect. - - 0 - 0.33 - - 1 - 0 - - You may wish to read Section 9 of <em ' . - 'class="italic">Discovering Science</em> Block 8. - - - - 1 - 1 - - Any incorrect choices will be removed before your final try. - - - '; - $xmldata = xmlize($xml); - - $importer = new qformat_xml(); - $q = $importer->try_importing_using_qtypes( - $xmldata['question'], null, null, 'ddwtos'); - - $expectedq = new stdClass(); - $expectedq->qtype = 'ddwtos'; - $expectedq->name = 'QDandD1 Base definition'; - $expectedq->questiontext = '

Drag and drop the words from the list below ' . - 'to fill the blank spaces and correctly complete the sentence.

' . - '

At 25°C all aqueous basic solutions have [[1]] ion concentrations ' . - 'less than [[8]]
mol litre-1 and pH values [[9]] than [[6]].

' . - ''; - $expectedq->questiontextformat = FORMAT_HTML; - $expectedq->generalfeedback = '

At 25 °C all aqueous basic solutions ' . - 'have hydrogen ion concentrations less than 10−7 ' . - 'mol litre−1 and pH values greater than 7.

See ' . - 'Section 9 of S103 Discovering Science Block 8.

'; - $expectedq->defaultmark = 1; - $expectedq->length = 1; - $expectedq->penalty = 0.3333333; - - $expectedq->shuffleanswers = 0; - $expectedq->correctfeedback = array('text' => 'Your answer is correct.', - 'format' => FORMAT_HTML); - $expectedq->partiallycorrectfeedback = array( - 'text' => 'Your answer is partially correct.', - 'format' => FORMAT_HTML); - $expectedq->shownumcorrect = true; - $expectedq->incorrectfeedback = array('text' => 'Your answer is incorrect.', - 'format' => FORMAT_HTML); - - $expectedq->choices = array( - array('answer' => array('text' => 'hydrogen', 'format' => FORMAT_PLAIN), - 'choicegroup' => 1, 'infinite' => false), - array('answer' => array('text' => 'positive', 'format' => FORMAT_PLAIN), - 'choicegroup' => 1, 'infinite' => false), - array('answer' => array('text' => 'hydroxide', 'format' => FORMAT_PLAIN), - 'choicegroup' => 1, 'infinite' => false), - array('answer' => array('text' => 'negative', 'format' => FORMAT_PLAIN), - 'choicegroup' => 1, 'infinite' => false), - array('answer' => array('text' => '107', 'format' => FORMAT_PLAIN), - 'choicegroup' => 2, 'infinite' => false), - array('answer' => array('text' => '7', 'format' => FORMAT_PLAIN), - 'choicegroup' => 2, 'infinite' => false), - array('answer' => array('text' => '1', 'format' => FORMAT_PLAIN), - 'choicegroup' => 2, 'infinite' => false), - array('answer' => array('text' => '10-7', 'format' => FORMAT_PLAIN), - 'choicegroup' => 2, 'infinite' => false), - array('answer' => array('text' => 'greater', 'format' => FORMAT_PLAIN), - 'choicegroup' => 3, 'infinite' => false), - array('answer' => array('text' => 'less', 'format' => FORMAT_PLAIN), - 'choicegroup' => 3, 'infinite' => false), - ); - - $expectedq->hint = array(array('text' => 'You may wish to read Section 9 of ' . - 'Discovering Science Block 8.', - 'format' => FORMAT_HTML), - array('text' => 'Any incorrect choices will be removed before your final try.', - 'format' => FORMAT_HTML), - ); - $expectedq->hintshownumcorrect = array(true, true); - $expectedq->hintclearwrong = array(false, true); - - $this->assert(new question_check_specified_fields_expectation($expectedq), $q); - $this->assertEquals($expectedq->choices, $q->choices); - $this->assertEquals($expectedq->hint, $q->hint); - } - public function test_xml_export() { $qdata = new stdClass(); $qdata->id = 123; -- 2.43.0