mirror of
https://github.com/silverstripe/silverstripe-textextraction
synced 2024-10-22 11:06:00 +02:00
70 lines
2.3 KiB
PHP
70 lines
2.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Tests the {@see TikaTextExtractor} class
|
|
*/
|
|
class TikaTextExtractorTest extends SapphireTest
|
|
{
|
|
public function testExtraction()
|
|
{
|
|
$extractor = new TikaTextExtractor();
|
|
if (!$extractor->isAvailable()) {
|
|
$this->markTestSkipped('tika cli not available');
|
|
}
|
|
|
|
// Check file
|
|
$file = Director::baseFolder() . '/textextraction/tests/fixtures/test1.pdf';
|
|
$content = $extractor->getContent($file);
|
|
$this->assertContains('This is a test file with a link', $content);
|
|
|
|
// Check mime validation
|
|
$this->assertTrue($extractor->supportsMime('application/pdf'));
|
|
$this->assertTrue($extractor->supportsMime('text/html'));
|
|
$this->assertFalse($extractor->supportsMime('application/not-supported'));
|
|
}
|
|
|
|
public function testServerExtraction()
|
|
{
|
|
$extractor = new TikaServerTextExtractor();
|
|
if (!$extractor->isAvailable()) {
|
|
$this->markTestSkipped('tika server not available');
|
|
}
|
|
|
|
// Check file
|
|
$file = Director::baseFolder() . '/textextraction/tests/fixtures/test1.pdf';
|
|
$content = $extractor->getContent($file);
|
|
$this->assertContains('This is a test file with a link', $content);
|
|
|
|
// Check mime validation
|
|
$this->assertTrue($extractor->supportsMime('application/pdf'));
|
|
$this->assertTrue($extractor->supportsMime('text/html'));
|
|
$this->assertFalse($extractor->supportsMime('application/not-supported'));
|
|
}
|
|
|
|
public function testNormaliseVersion()
|
|
{
|
|
$extractor = new TikaServerTextExtractor();
|
|
$reflection = new ReflectionClass($extractor);
|
|
$method = $reflection->getMethod('normaliseVersion');
|
|
$method->setAccessible(true);
|
|
|
|
foreach ($this->versionProvider() as $data) {
|
|
list($input, $expected) = $data;
|
|
$actual = $method->invoke($extractor, $input);
|
|
$this->assertEquals($expected, $actual);
|
|
}
|
|
}
|
|
|
|
protected function versionProvider()
|
|
{
|
|
return array(
|
|
array('1.7.1', '1.7.1'),
|
|
array('1.7', '1.7.0'),
|
|
array('1', '1.0.0'),
|
|
array(null, '0.0.0'),
|
|
array('v1.5', 'v1.5.0'),
|
|
array('carrot', 'carrot.0.0')
|
|
);
|
|
}
|
|
}
|