Browse Source

Patch tests to suppress root commnts

ns
J. King 3 years ago
parent
commit
eebc45cb82
  1. 23
      tests/cases/TestTreeConstructor.php

23
tests/cases/TestTreeConstructor.php

@ -28,12 +28,12 @@ class TestTreeConstructor extends \PHPUnit\Framework\TestCase {
protected $depth;
/** @dataProvider provideStandardTreeTests */
public function testStandardTreeTests(string $data, array $exp, array $errors, $fragment, ?bool $scripted): void {
if ($scripted) {
$this->markTestIncomplete("Scripting is not supported");
} elseif ($fragment) {
$this->markTestSkipped("Fragment tests still to be implemented");
public function testStandardTreeTests(string $data, array $exp, array $errors, $fragment): void {
if ($fragment) {
$this->markTestIncomplete("Fragment tests still to be implemented");
}
// certain tests need to be patched to ignore unavoidable limitations of PHP's DOM
$exp = $this->patchTest($data, $fragment, $exp);
// convert parse error constants into standard symbols in specification
$errorMap = array_map(function($str) {
return strtolower(str_replace("_", "-", $str));
@ -71,6 +71,14 @@ class TestTreeConstructor extends \PHPUnit\Framework\TestCase {
// TODO: evaluate errors
}
protected function patchTest(string $data, $fragment, array $exp): array {
if (strpos($exp[0], "| <!--") === 0) {
// comments before the DOCTYPE are silently dropped by the PHP DOM
array_shift($exp);
}
return $exp;
}
protected function push(string $data): void {
$this->out[] = "| ".str_repeat(" ", $this->depth).$data;
}
@ -196,7 +204,10 @@ class TestTreeConstructor extends \PHPUnit\Framework\TestCase {
assert(preg_match('/^[^#]/', $lines[$l]) === 1, new \Exception("Test $file #$index contains unrecognized data after document at line ".($l + 1)));
$exp[] = $lines[$l];
}
yield "$file #$index (line $pos)" => [$data, $exp, $errors, $fragment, $script];
if (!$script) {
// scripting-dependent tests are skipped entirely since we will not support scripting
yield "$file #$index (line $pos)" => [$data, $exp, $errors, $fragment];
}
$l++;
$index++;
}

Loading…
Cancel
Save