diff --git a/lib/phpunit/classes/base_testcase.php b/lib/phpunit/classes/base_testcase.php index 58b64df8a67..abb7776c45e 100644 --- a/lib/phpunit/classes/base_testcase.php +++ b/lib/phpunit/classes/base_testcase.php @@ -55,7 +55,7 @@ abstract class base_testcase extends PHPUnit\Framework\TestCase { public static function assertTag($matcher, $actual, $message = '', $ishtml = true) { $dom = (new PHPUnit\Util\Xml\Loader)->load($actual, $ishtml); $tags = self::findNodes($dom, $matcher, $ishtml); - $matched = count($tags) > 0 && $tags[0] instanceof DOMNode; + $matched = (is_array($tags) && count($tags) > 0) && $tags[0] instanceof DOMNode; self::assertTrue($matched, $message); } diff --git a/lib/phpunit/tests/basic_test.php b/lib/phpunit/tests/basic_test.php index 53f25936142..c009f7c23a6 100644 --- a/lib/phpunit/tests/basic_test.php +++ b/lib/phpunit/tests/basic_test.php @@ -145,6 +145,16 @@ STRING; $this->testassertexecuted = false; } + /** + * Test assert Tag + */ + public function test_assert_tag() { + // This should succeed. + self::assertTag(['id' => 'testid'], "