. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Module; use Fisharebest\Webtrees\Report\ReportHtml; use Fisharebest\Webtrees\Report\ReportParserGenerate; use Fisharebest\Webtrees\Report\ReportPdf; use Fisharebest\Webtrees\Tree; /** * Test harness for the class MissingFactsReportModule * * @covers \Fisharebest\Webtrees\Report\ReportHtml * @covers \Fisharebest\Webtrees\Report\ReportParserGenerate * @covers \Fisharebest\Webtrees\Report\ReportPdf */ class MissingFactsReportModuleTest extends \Fisharebest\Webtrees\TestCase { protected static $uses_database = true; /** * @return void */ public function testReportRunsWithoutError(): void { $tree = $this->importTree('demo.ged'); app()->instance(Tree::class, $tree); $xml = WT_ROOT . 'resources/xml/reports/missing_facts_report.xml'; $vars = [ 'pid' => ['id' => 'i1'], 'relatives' => ['id' => 'direct-ancestors'], 'maxgen' => ['id' => '*'], 'pageSize' => ['id' => 'A4'], 'sortby' => ['id' => 'NAME'], 'fbirt' => ['id' => 'on'], 'fdeat' => ['id' => 'on'], 'fsour' => ['id' => 'on'], 'fbapm' => ['id' => 'on'], 'fbarm' => ['id' => 'on'], 'fbasm' => ['id' => 'on'], 'fconf' => ['id' => 'on'], 'fenga' => ['id' => 'on'], 'ffcom' => ['id' => 'on'], 'fmarb' => ['id' => 'on'], 'fmarr' => ['id' => 'on'], 'freli' => ['id' => 'on'], ]; ob_start(); new ReportParserGenerate($xml, new ReportHtml(), $vars, $tree); $html = ob_get_clean(); $this->assertStringStartsWith('<', $html); $this->assertStringEndsWith('>', $html); ob_start(); new ReportParserGenerate($xml, new ReportPdf(), $vars, $tree); $pdf = ob_get_clean(); $this->assertStringStartsWith('%PDF', $pdf); $this->assertStringEndsWith("%%EOF\n", $pdf); } }