public function test_question_reorder_qtypes() { $this->assertEquals(array(0 => 't2', 1 => 't1', 2 => 't3'), question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't1', +1)); $this->assertEquals(array(0 => 't1', 1 => 't2', 2 => 't3'), question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't1', -1)); $this->assertEquals(array(0 => 't2', 1 => 't1', 2 => 't3'), question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't2', -1)); $this->assertEquals(array(0 => 't1', 1 => 't2', 2 => 't3'), question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't3', +1)); $this->assertEquals(array(0 => 't1', 1 => 't2', 2 => 't3'), question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 'missing', +1)); }
public function test_question_reorder_qtypes() { global $CFG; require_once $CFG->libdir . '/questionlib.php'; $this->assertEquals(question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't1', +1), array(0 => 't2', 1 => 't1', 2 => 't3')); $this->assertEquals(question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't1', -1), array(0 => 't1', 1 => 't2', 2 => 't3')); $this->assertEquals(question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't2', -1), array(0 => 't2', 1 => 't1', 2 => 't3')); $this->assertEquals(question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't3', +1), array(0 => 't1', 1 => 't2', 2 => 't3')); $this->assertEquals(question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 'missing', +1), array(0 => 't1', 1 => 't2', 2 => 't3')); }
if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) { if (!isset($behaviours[$up])) { print_error('unknownbehaviour', 'question', $thispageurl, $up); } // This function works fine for behaviours, as well as qtypes. $neworder = question_reorder_qtypes($sortedbehaviours, $up, -1); set_config('behavioursortorder', implode(',', $neworder), 'question'); redirect($thispageurl); } // Move down in order. if (($down = optional_param('down', '', PARAM_PLUGIN)) && confirm_sesskey()) { if (!isset($behaviours[$down])) { print_error('unknownbehaviour', 'question', $thispageurl, $down); } // This function works fine for behaviours, as well as qtypes. $neworder = question_reorder_qtypes($sortedbehaviours, $down, +1); set_config('behavioursortorder', implode(',', $neworder), 'question'); redirect($thispageurl); } // Delete. if (($delete = optional_param('delete', '', PARAM_PLUGIN)) && confirm_sesskey()) { // Check it is OK to delete this question type. if ($delete == 'missing') { print_error('cannotdeletemissingbehaviour', 'question', $thispageurl); } if (!isset($behaviours[$delete])) { print_error('unknownbehaviour', 'question', $thispageurl, $delete); } $behaviourname = $sortedbehaviours[$delete]; if ($counts[$delete] > 0) { print_error('cannotdeletebehaviourinuse', 'question', $thispageurl, $behaviourname);
} // Move up in order. if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) { if (!isset($qtypes[$up])) { print_error('unknownquestiontype', 'question', $thispageurl, $up); } $neworder = question_reorder_qtypes($sortedqtypes, $up, -1); question_save_qtype_order($neworder, $config); redirect($thispageurl); } // Move down in order. if (($down = optional_param('down', '', PARAM_PLUGIN)) && confirm_sesskey()) { if (!isset($qtypes[$down])) { print_error('unknownquestiontype', 'question', $thispageurl, $down); } $neworder = question_reorder_qtypes($sortedqtypes, $down, +1); question_save_qtype_order($neworder, $config); redirect($thispageurl); } // Delete. if (($delete = optional_param('delete', '', PARAM_PLUGIN)) && confirm_sesskey()) { // Check it is OK to delete this question type. if ($delete == 'missingtype') { print_error('cannotdeletemissingqtype', 'question', $thispageurl); } if (!isset($qtypes[$delete])) { print_error('unknownquestiontype', 'question', $thispageurl, $delete); } $qtypename = $qtypes[$delete]->local_name(); if ($counts[$delete]->numquestions + $counts[$delete]->numhidden > 0) { print_error('cannotdeleteqtypeinuse', 'question', $thispageurl, $qtypename);