Permalink
Browse files

Merge branch 'MDL-43000_24' of git://github.com/timhunt/moodle into M…

…OODLE_24_STABLE
  • Loading branch information...
2 parents e5ca507 + 70127f1 commit 7d784e4ade06ae40f651fb142164f6f4f3c2e2e2 @danpoltawski danpoltawski committed Nov 26, 2013
Showing with 10 additions and 2 deletions.
  1. +4 −2 question/type/shortanswer/question.php
  2. +6 −0 question/type/shortanswer/tests/question_test.php
@@ -92,8 +92,10 @@ public static function compare_string_with_wildcard($string, $pattern, $ignoreca
$pattern = self::safe_normalize($pattern);
$string = self::safe_normalize($string);
- // Break the string on non-escaped asterisks.
- $bits = preg_split('/(?<!\\\\)\*/', $pattern);
+ // Break the string on non-escaped runs of asterisks.
+ // ** is equivalent to *, but people were doing that, and with many *s it breaks preg.
+ $bits = preg_split('/(?<!\\\\)\*+/', $pattern);
+
// Escape regexp special characters in the bits.
$excapedbits = array();
foreach ($bits as $bit) {
@@ -132,6 +132,12 @@ public function test_compare_0_with_wildcard() {
'0', '*0*', false));
}
+ public function test_compare_string_with_wildcard_many_stars() {
+ // Test the classic PHP problem case with '0'.
+ $this->assertTrue((bool)qtype_shortanswer_question::compare_string_with_wildcard(
+ '<em></em>', '***********************************<em>***********************************</em>', false));
+ }
+
public function test_is_complete_response() {
$question = test_question_maker::make_question('shortanswer');

0 comments on commit 7d784e4

Please sign in to comment.