From 910051b7989899f4fcfe1694ca574354b8234fd1 Mon Sep 17 00:00:00 2001 From: Adam Olley Date: Thu, 5 Sep 2013 13:43:32 +0930 Subject: [PATCH] MDL-41600: qformat_blackboard_six Fix test_import_match fail w/ddmatch With qtype_ddmatch installed, the unit tests for qformat_blackboard_six fail as they generate ddmatch questions instead of match ones. This patch checks for ddmatch and changes the test to expect that instead if its installed. --- .../tests/blackboardformatpool_test.php | 17 +++++++++++++++-- .../tests/blackboardsixformatqti_test.php | 17 +++++++++++++++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/question/format/blackboard_six/tests/blackboardformatpool_test.php b/question/format/blackboard_six/tests/blackboardformatpool_test.php index c00a0324659..0440304266d 100644 --- a/question/format/blackboard_six/tests/blackboardformatpool_test.php +++ b/question/format/blackboard_six/tests/blackboardformatpool_test.php @@ -56,8 +56,12 @@ class qformat_blackboard_six_pool_test extends question_testcase { $q = $questions[5]; + // If qtype_ddmatch is installed, the formatter produces ddmatch + // qtypes, not match ones. + $ddmatchisinstalled = question_bank::is_qtype_installed('ddmatch'); + $expectedq = new stdClass(); - $expectedq->qtype = 'match'; + $expectedq->qtype = $ddmatchisinstalled ? 'ddmatch' : 'match'; $expectedq->name = 'Classify the animals.'; $expectedq->questiontext = 'Classify the animals.'; $expectedq->questiontextformat = FORMAT_HTML; @@ -78,8 +82,17 @@ class qformat_blackboard_six_pool_test extends question_testcase { array('text' => '', 'format' => FORMAT_HTML), array('text' => 'frog', 'format' => FORMAT_HTML), array('text' => 'newt', 'format' => FORMAT_HTML)); - $expectedq->subanswers = array('mammal', 'insect', 'amphibian', 'amphibian'); + if ($ddmatchisinstalled) { + $expectedq->subanswers = array( + array('text' => 'mammal', 'format' => FORMAT_HTML), + array('text' => 'insect', 'format' => FORMAT_HTML), + array('text' => 'amphibian', 'format' => FORMAT_HTML), + array('text' => 'amphibian', 'format' => FORMAT_HTML), + ); + } else { + $expectedq->subanswers = array('mammal', 'insect', 'amphibian', 'amphibian'); + } $this->assert(new question_check_specified_fields_expectation($expectedq), $q); } diff --git a/question/format/blackboard_six/tests/blackboardsixformatqti_test.php b/question/format/blackboard_six/tests/blackboardsixformatqti_test.php index 46a2d05ed06..7b8a2a6b93a 100644 --- a/question/format/blackboard_six/tests/blackboardsixformatqti_test.php +++ b/question/format/blackboard_six/tests/blackboardsixformatqti_test.php @@ -53,8 +53,12 @@ class qformat_blackboard_six_qti_test extends question_testcase { $questions = $importer->readquestions($xml); $q = $questions[4]; + // If qtype_ddmatch is installed, the formatter produces ddmatch + // qtypes, not match ones. + $ddmatchisinstalled = question_bank::is_qtype_installed('ddmatch'); + $expectedq = new stdClass(); - $expectedq->qtype = 'match'; + $expectedq->qtype = $ddmatchisinstalled ? 'ddmatch' : 'match'; $expectedq->name = 'Classify the animals.'; $expectedq->questiontext = 'Classify the animals.'; $expectedq->questiontextformat = FORMAT_HTML; @@ -75,7 +79,16 @@ class qformat_blackboard_six_qti_test extends question_testcase { array('text' => 'cat', 'format' => FORMAT_HTML), array('text' => 'frog', 'format' => FORMAT_HTML), array('text' => 'newt', 'format' => FORMAT_HTML)); - $expectedq->subanswers = array('insect', 'mammal', 'amphibian', 'amphibian'); + if ($ddmatchisinstalled) { + $expectedq->subanswers = array( + array('text' => 'insect', 'format' => FORMAT_HTML), + array('text' => 'mammal', 'format' => FORMAT_HTML), + array('text' => 'amphibian', 'format' => FORMAT_HTML), + array('text' => 'amphibian', 'format' => FORMAT_HTML), + ); + } else { + $expectedq->subanswers = array('insect', 'mammal', 'amphibian', 'amphibian'); + } $this->assert(new question_check_specified_fields_expectation($expectedq), $q); }