/** * Test deleting a quiz instance. */ public function test_quiz_delete_instance() { global $SITE, $DB; $this->resetAfterTest(true); $this->setAdminUser(); // Setup a quiz with 1 standard and 1 random question. $quizgenerator = $this->getDataGenerator()->get_plugin_generator('mod_quiz'); $quiz = $quizgenerator->create_instance(array('course' => $SITE->id, 'questionsperpage' => 3, 'grade' => 100.0)); $questiongenerator = $this->getDataGenerator()->get_plugin_generator('core_question'); $cat = $questiongenerator->create_question_category(); $standardq = $questiongenerator->create_question('shortanswer', null, array('category' => $cat->id)); quiz_add_quiz_question($standardq->id, $quiz); quiz_add_random_questions($quiz, 0, $cat->id, 1, false); // Get the random question. $randomq = $DB->get_record('question', array('qtype' => 'random')); quiz_delete_instance($quiz->id); // Check that the random question was deleted. $count = $DB->count_records('question', array('id' => $randomq->id)); $this->assertEquals(0, $count); // Check that the standard question was not deleted. $count = $DB->count_records('question', array('id' => $standardq->id)); $this->assertEquals(1, $count); // Check that all the slots were removed. $count = $DB->count_records('quiz_slots', array('quizid' => $quiz->id)); $this->assertEquals(0, $count); // Check that the quiz was removed. $count = $DB->count_records('quiz', array('id' => $quiz->id)); $this->assertEquals(0, $count); }
function RWSADQuiz() { global $CFG; global $RWSLB; RWSCMAuth(); RWSCRAuth(); RWSCMUSvc(); RWSCMMaint(); $r_pm = RWSGSOpt("quizid", PARAM_ALPHANUM); if ($r_pm === false || strlen($r_pm) == 0) { RWSSErr("2067"); } $r_qzmi = intval($r_pm); $r_rcd = RWSCMUQuiz($r_qzmi); $r_cid = $r_rcd->course; RWSCMUCourse($r_cid, true); if (respondusws_floatcompare($CFG->version, 2013051400, 2) >= 0) { course_delete_module($r_qzmi); } else { if (!quiz_delete_instance($r_rcd->instance)) { RWSSErr("2068"); } if (!delete_course_module($r_qzmi)) { RWSSErr("2069"); } if (!delete_mod_from_section($r_qzmi, $r_rcd->section)) { RWSSErr("2070"); } } if ($RWSLB->mok) { lockdown_delete_options($r_rcd->instance); } else { if ($RWSLB->bok) { lockdown_delete_options($r_rcd->instance); } } rebuild_course_cache($r_cid); RWSSStat("1003"); }