return preg_match($regexp, trim($string));
}
+ /*
+ * Override the parent class method, to remove escaping from asterisks.
+ */
+ function get_correct_responses(&$question, &$state) {
+ $response = parent::get_correct_responses($question, $state);
+ if (is_array($response)) {
+ $response[''] = addslashes(str_replace('\*', '*', stripslashes($response[''])));
+ }
+ return $response;
+ }
+
/// BACKUP FUNCTIONS ////////////////////////////
/*
$this->assertTrue($this->qtype->compare_string_with_wildcard('[a-z]', '[a-z]', false));
$this->assertTrue($this->qtype->compare_string_with_wildcard('\{}/', '\{}/', true));
}
+
+ function test_get_correct_responses() {
+ $answer1 = new stdClass;
+ $answer1->id = 17;
+ $answer1->answer = "frog";
+ $answer1->fraction = 1;
+ $answer2 = new stdClass;
+ $answer2->id = 23;
+ $answer2->answer = "f*g";
+ $answer2->fraction = 1;
+ $answer3 = new stdClass;
+ $answer3->id = 29;
+ $answer3->answer = "12\*13";
+ $answer3->fraction = 1;
+ $answer4 = new stdClass;
+ $answer4->id = 31;
+ $answer4->answer = "*";
+ $answer4->fraction = 0;
+ $question = new stdClass;
+ $question->options->answers = array(
+ 17 => $answer1,
+ 23 => $answer2,
+ 29 => $answer3,
+ 31 => $answer4
+ );
+ $state = new stdClass;
+ $this->assertEqual($this->qtype->get_correct_responses($question, $state), array('' => 'frog'));
+ $question->options->answers[17]->fraction = 0;
+ $this->assertEqual($this->qtype->get_correct_responses($question, $state), array('' => 'f*g'));
+ $question->options->answers[23]->fraction = 0;
+ $this->assertEqual($this->qtype->get_correct_responses($question, $state), array('' => '12*13'));
+ $question->options->answers[29]->fraction = 0;
+ $this->assertNull($this->qtype->get_correct_responses($question, $state));
+ }
}
?>