MDL-19840 Fixed a bug in regex delimiter quoting
authornicolasconnault <nicolasconnault>
Thu, 16 Jul 2009 03:21:19 +0000 (03:21 +0000)
committernicolasconnault <nicolasconnault>
Thu, 16 Jul 2009 03:21:19 +0000 (03:21 +0000)
lib/simpletest/testsimpletestlib.php
lib/simpletestlib.php

index be95ac6..1f775e2 100644 (file)
@@ -52,6 +52,11 @@ class ContainsTagWithAttribute_test extends UnitTestCase {
         $expectation = new ContainsTagWithAttribute('span', 'class', 'error');
         $this->assertFalse($expectation->test('<span class="mismatch">message</span>'));
     }
+
+    function test_link() {
+        $expectation = new ContainsTagWithAttribute('a', 'href', 'http://www.test.com');
+        $this->assertTrue($expectation->test('<a href="http://www.test.com">Click Here</a>'));
+    }
 }
 
 /**
index feb674c..af83fb9 100644 (file)
@@ -209,8 +209,8 @@ class ContainsTagWithAttribute extends SimpleExpectation {
     }
 
     function test($html) {
-        $regex = '/<' . preg_quote($this->tag) . self::ATTRSREGEX .
-                '(?:\s+' . preg_quote($this->attribute) . '\s*=\s*["\']' . preg_quote($this->value) . '["\'])' .
+        $regex = '/<' . preg_quote($this->tag, '/') . self::ATTRSREGEX .
+                '(?:\s+' . preg_quote($this->attribute, '/') . '\s*=\s*["\']' . preg_quote($this->value, '/') . '["\'])' .
                 self::ATTRSREGEX . '\s*>/';
         return preg_match($regex, $html);
     }
@@ -241,8 +241,8 @@ class ContainsTagWithContents extends SimpleExpectation {
     }
 
     function test($html) {
-        $regex = '/<' . preg_quote($this->tag) . self::ATTRSREGEX . '\s*>' . preg_quote($this->content) .
-                '<\/' . preg_quote($this->tag) . '>/';
+        $regex = '/<' . preg_quote($this->tag, '/') . self::ATTRSREGEX . '\s*>' . preg_quote($this->content, '/') .
+                '<\/' . preg_quote($this->tag, '/') . '>/';
         return preg_match($regex, $html);
     }