From 9e8ed243d0a78b4130cfa202d8fe0400f2599850 Mon Sep 17 00:00:00 2001 From: Robbie Averill Date: Tue, 3 Jul 2018 17:15:16 +1200 Subject: [PATCH] Seperate Tika tests, group them for phpunit, further reduce log level, make Extractors injectable --- src/Extractor/FileTextExtractor.php | 2 ++ src/Rest/TikaRestClient.php | 4 ++-- tests/TikaServerTextExtractor.php | 36 +++++++++++++++++++++++++++++ tests/TikaTextExtractorTest.php | 26 +++------------------ 4 files changed, 43 insertions(+), 25 deletions(-) create mode 100644 tests/TikaServerTextExtractor.php diff --git a/src/Extractor/FileTextExtractor.php b/src/Extractor/FileTextExtractor.php index fa205ba..d098aad 100644 --- a/src/Extractor/FileTextExtractor.php +++ b/src/Extractor/FileTextExtractor.php @@ -6,6 +6,7 @@ use SilverStripe\Assets\File; use SilverStripe\Core\ClassInfo; use SilverStripe\Core\Config\Config; use SilverStripe\Core\Config\Configurable; +use SilverStripe\Core\Injector\Injectable; use SilverStripe\Core\Injector\Injector; use SilverStripe\TextExtraction\Extractor\FileTextExtractor\Exception; @@ -16,6 +17,7 @@ use SilverStripe\TextExtraction\Extractor\FileTextExtractor\Exception; abstract class FileTextExtractor { use Configurable; + use Injectable; /** * Set priority from 0-100. diff --git a/src/Rest/TikaRestClient.php b/src/Rest/TikaRestClient.php index 0bf3a96..34ffbde 100644 --- a/src/Rest/TikaRestClient.php +++ b/src/Rest/TikaRestClient.php @@ -58,7 +58,7 @@ class TikaRestClient extends Client } } catch (RequestException $ex) { $msg = sprintf("Tika unavailable - %s", $ex->getMessage()); - Injector::inst()->get(LoggerInterface::class)->notice($msg); + Injector::inst()->get(LoggerInterface::class)->info($msg); return false; } @@ -139,7 +139,7 @@ class TikaRestClient extends Client $msg .= ' Body: ' . $body; } - Injector::inst()->get(LoggerInterface::class)->notice($msg); + Injector::inst()->get(LoggerInterface::class)->info($msg); } return $text; diff --git a/tests/TikaServerTextExtractor.php b/tests/TikaServerTextExtractor.php new file mode 100644 index 0000000..0d9a7ed --- /dev/null +++ b/tests/TikaServerTextExtractor.php @@ -0,0 +1,36 @@ +isAvailable()) { + $this->markTestSkipped('tika server not available'); + } + + // Check file + $file = new File(); + $file->setFromLocalFile(dirname(__FILE__) . '/fixtures/test1.pdf'); + $file->write(); + + $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')); + } +} diff --git a/tests/TikaTextExtractorTest.php b/tests/TikaTextExtractorTest.php index 7d88780..e2674d2 100644 --- a/tests/TikaTextExtractorTest.php +++ b/tests/TikaTextExtractorTest.php @@ -4,11 +4,12 @@ namespace SilverStripe\TextExtraction\Tests; use SilverStripe\Assets\File; use SilverStripe\Dev\SapphireTest; -use SilverStripe\TextExtraction\Extractor\TikaServerTextExtractor; use SilverStripe\TextExtraction\Extractor\TikaTextExtractor; /** * Tests the {@see TikaTextExtractor} class + * + * @group tika-tests */ class TikaTextExtractorTest extends SapphireTest { @@ -16,7 +17,7 @@ class TikaTextExtractorTest extends SapphireTest public function testExtraction() { - $extractor = new TikaTextExtractor(); + $extractor = TikaTextExtractor::create(); if (!$extractor->isAvailable()) { $this->markTestSkipped('tika cli not available'); } @@ -34,25 +35,4 @@ class TikaTextExtractorTest extends SapphireTest $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 = new File(); - $file->setFromLocalFile(dirname(__FILE__) . '/fixtures/test1.pdf'); - $file->write(); - - $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')); - } }