[ FileTextExtractable::class, ], ]; protected function setUp(): void { parent::setUp(); // Ensure that html is a valid extension Config::modify()->merge(File::class, 'allowed_extensions', ['html']); // Create a copy of the file, as it may be clobbered by the test // ($file->extractFileAsText() calls $file->write) copy( dirname(__FILE__) . '/fixtures/test1.html', dirname(__FILE__) . '/fixtures/test1-copy.html' ); } protected function tearDown(): void { if (file_exists(dirname(__FILE__) . '/fixtures/test1-copy.html')) { unlink(dirname(__FILE__) . '/fixtures/test1-copy.html'); } parent::tearDown(); } public function testExtractFileAsText() { // Use HTML, since the extractor is always available /** @var File&FileTextExtractable $file */ $file = new File(['Name' => 'test1-copy.html']); $file->setTextCache(new FileTextCache\Database()); $file->setFromLocalFile(dirname(__FILE__) . '/fixtures/test1-copy.html'); $file->write(); $content = $file->extractFileAsText(); $this->assertNotNull($content); $this->assertStringContainsString('Test Headline', $content); $this->assertStringContainsString('Test Text', $content); $this->assertEquals($content, $file->FileContentCache); } }