We introduced a new type for "ParserTestMode" and then uniformly pass this around alongside the ParserTest object itself. (We started by using a string for the $mode but the "explicit changetree" mode requires more structured data. We *could* encode this in JSON just to keep the string type around, but it seems cleaner and more future proof to wrap this in a proper class type.) Removed the old TestFileReader wrapper class, which served only as a thunk to convert the new Test class into the same sort of array which the legacy parser test runner code expected. There's still some remaining ::testToArray() usage here for the TestRecorder framework, but that will be cleaned up in a future patch. Also updated the TestRecorder with stronger types: use the same <Test,TestMode> pair when invoking the TestRecorder, instead of the loosely typed array we'd used previously. Change-Id: Iec4c0c7972a655b4faccacc67bdc3ca66d4c163d
24 lines
590 B
PHP
24 lines
590 B
PHP
<?php
|
|
|
|
use MediaWiki\Tests\TestMode as ParserTestMode;
|
|
use PHPUnit\Framework\TestCase;
|
|
use Wikimedia\Parsoid\ParserTests\Test as ParserTest;
|
|
|
|
class PhpunitTestRecorder extends TestRecorder {
|
|
/** @var TestCase */
|
|
private $testCase;
|
|
|
|
public function setTestCase( TestCase $testCase ) {
|
|
$this->testCase = $testCase;
|
|
}
|
|
|
|
/**
|
|
* Mark a test skipped
|
|
* @param ParserTest $test
|
|
* @param ParserTestMode $mode
|
|
* @param string $reason
|
|
*/
|
|
public function skipped( ParserTest $test, ParserTestMode $mode, string $reason ) {
|
|
$this->testCase->markTestSkipped( "SKIPPED: $reason" );
|
|
}
|
|
}
|