Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
composer.lock
vendor
/.phpunit.result.cache
/phpunit.xml.dist.bak
/.phpunit.cache/
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,16 @@ Content analysis for the purpose of determining [Internet media types][1].
Requirements
------------

* PHP 5.3+
* PHP 8.1+


Installation
------------

Through [Composer][2] as [dflydev/canal][3].
```shell
composer require dflydev/canal
```


Usage
Expand Down Expand Up @@ -61,4 +64,4 @@ This work was heavily influenced by [Apache Tika][4] and [Ferret][5].
[2]: http://getcomposer.org
[3]: https://packagist.org/packages/dflydev/canal
[4]: http://tika.apache.org
[5]: https://github.com/versionable/Ferret
[5]: https://github.com/versionable/Ferret
66 changes: 37 additions & 29 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,33 +1,41 @@
{
"name": "dflydev/canal",
"description": "Content analysis for the purpose of determining Internet media types.",
"keywords": ["mime", "content", "type", "detection"],
"license": "MIT",
"authors": [
{
"name": "Dragonfly Development Inc.",
"email": "[email protected]",
"homepage": "http://dflydev.com"
},
{
"name": "Beau Simensen",
"email": "[email protected]",
"homepage": "http://beausimensen.com"
}
],
"require": {
"php": ">=5.3.3",
"dflydev/apache-mime-types": "1.0.*",
"webignition/internet-media-type": "0.*"
"name": "dflydev/canal",
"description": "Content analysis for the purpose of determining Internet media types.",
"keywords": [
"mime",
"content",
"type",
"detection"
],
"license": "MIT",
"authors": [
{
"name": "Dragonfly Development Inc.",
"email": "[email protected]",
"homepage": "https://dflydev.com"
},
"autoload": {
"psr-0": {
"Dflydev\\Canal": "src"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
{
"name": "Beau Simensen",
"email": "[email protected]",
"homepage": "https://beausimensen.com"
}
],
"require": {
"php": ">=8.1",
"dflydev/apache-mime-types": "1.0.*",
"webignition/internet-media-type": "0.*"
},
"require-dev": {
"phpunit/phpunit": "^9.4"
},
"autoload": {
"psr-0": {
"Dflydev\\Canal": "src"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
}
}
17 changes: 11 additions & 6 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit colors="true" bootstrap="vendor/autoload.php">
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
colors="true"
bootstrap="vendor/autoload.php"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.3/phpunit.xsd"
cacheDirectory=".phpunit.cache"
>
<coverage/>
<testsuites>
<testsuite name="Canal Test Suite">
<directory>./tests/Dflydev/Canal</directory>
</testsuite>
</testsuites>

<filter>
<whitelist>
<source>
<include>
<directory>./src/Dflydev/Canal/</directory>
</whitelist>
</filter>
</include>
</source>
</phpunit>
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@

namespace Dflydev\Canal\InternetMediaType\Adapter\Webignition;

use AllowDynamicProperties;
use Dflydev\Canal\InternetMediaType\InternetMediaTypeInterface;
use webignition\InternetMediaType\InternetMediaType as WebignitionInternetMediaType;

#[AllowDynamicProperties]
class InternetMediaType implements InternetMediaTypeInterface
{
public function __construct(WebignitionInternetMediaType $internetMediaType)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@

namespace Dflydev\Canal\InternetMediaType\Adapter\Webignition;

use AllowDynamicProperties;
use Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface;
use Dflydev\Canal\InternetMediaType\InternetMediaTypeFactory;
use webignition\InternetMediaType\Parser\Parser;

#[AllowDynamicProperties]
class InternetMediaTypeParser implements InternetMediaTypeParserInterface
{
private $parser;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

namespace Dflydev\Canal\InternetMediaType;

use AllowDynamicProperties;
use Dflydev\Canal\InternetMediaType\Adapter\Webignition\InternetMediaTypeParser;

#[AllowDynamicProperties]
class InternetMediaTypeFactory
{
const TEXT_PLAIN = 'text/plain';
Expand Down
3 changes: 2 additions & 1 deletion tests/Dflydev/Canal/Analyzer/AnalyzerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
namespace Dflydev\Canal\Analyzer;

use Dflydev\Canal\Metadata\Metadata;
use PHPUnit\Framework\TestCase;

class AnalyzerTest extends \PHPUnit_Framework_TestCase
class AnalyzerTest extends TestCase
{
public function testKnownType()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@

namespace Dflydev\Canal\Detector;

use Dflydev\Canal\InternetMediaType\InternetMediaTypeInterface;
use Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface;
use Dflydev\Canal\Metadata\Metadata;
use PHPUnit\Framework\TestCase;

class ApacheMimeTypesExtensionDetectorTest extends \PHPUnit_Framework_TestCase
class ApacheMimeTypesExtensionDetectorTest extends TestCase
{
public function testDefaultRepositoryWithNoMetadata()
{
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$metadata = $this->getMock('Dflydev\Canal\Metadata\Metadata');
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$metadata = $this->getMockBuilder(Metadata::class)->getMock();

$detector = new ApacheMimeTypesExtensionDetector;

Expand All @@ -19,8 +22,8 @@ public function testDefaultRepositoryWithNoMetadata()

public function testDefaultRepositoryWithNonsenseMetadata()
{
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$metadata = $this->getMock('Dflydev\Canal\Metadata\Metadata');
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$metadata = $this->getMockBuilder(Metadata::class)->getMock();

$metadata
->expects($this->once())
Expand All @@ -36,9 +39,9 @@ public function testDefaultRepositoryWithNonsenseMetadata()

public function testDefaultRepositoryWithMetadata()
{
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$metadata = $this->getMock('Dflydev\Canal\Metadata\Metadata');
$expectedInternetMediaType = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeInterface');
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$metadata = $this->getMockBuilder(Metadata::class)->getMock();
$expectedInternetMediaType = $this->getMockBuilder(InternetMediaTypeInterface::class)->getMock();

$metadata
->expects($this->once())
Expand Down Expand Up @@ -66,10 +69,10 @@ public function testDefaultRepositoryWithMetadata()

public function testCustomRepositoryWithMetadata()
{
$repository = $this->getMock('Dflydev\ApacheMimeTypes\RepositoryInterface');
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$metadata = $this->getMock('Dflydev\Canal\Metadata\Metadata');
$expectedInternetMediaType = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeInterface');
$repository = $this->getMockBuilder('Dflydev\ApacheMimeTypes\RepositoryInterface')->getMock();
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$metadata = $this->getMockBuilder(Metadata::class)->getMock();
$expectedInternetMediaType = $this->getMockBuilder(InternetMediaTypeInterface::class)->getMock();

$repository
->expects($this->once())
Expand Down
59 changes: 32 additions & 27 deletions tests/Dflydev/Canal/Detector/CompositeDetectorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@

namespace Dflydev\Canal\Detector;

class CompositeDetectorTest extends \PHPUnit_Framework_TestCase
use Dflydev\Canal\InternetMediaType\InternetMediaTypeInterface;
use Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface;
use Dflydev\Canal\Metadata\Metadata;
use PHPUnit\Framework\TestCase;

class CompositeDetectorTest extends TestCase
{
public function testEmpty()
{
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$metadata = $this->getMock('Dflydev\Canal\Metadata\Metadata');
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$metadata = $this->getMockBuilder(Metadata::class)->getMock();

$detector = new CompositeDetector;

Expand All @@ -17,9 +22,9 @@ public function testEmpty()

public function testAllFromConstructorWithNoMetadataFail()
{
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$internalDetector0 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$internalDetector1 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$internalDetector0 = $this->getMockBuilder(DetectorInterface::class)->getMock();
$internalDetector1 = $this->getMockBuilder(DetectorInterface::class)->getMock();

$internalDetector0
->expects($this->once())
Expand All @@ -40,10 +45,10 @@ public function testAllFromConstructorWithNoMetadataFail()

public function testAllFromConstructorWithMetadataFail()
{
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$metadata = $this->getMock('Dflydev\Canal\Metadata\Metadata');
$internalDetector0 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$internalDetector1 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$metadata = $this->getMockBuilder(Metadata::class)->getMock();
$internalDetector0 = $this->getMockBuilder(DetectorInterface::class)->getMock();
$internalDetector1 = $this->getMockBuilder(DetectorInterface::class)->getMock();

$internalDetector0
->expects($this->once())
Expand All @@ -64,9 +69,9 @@ public function testAllFromConstructorWithMetadataFail()

public function testAllFromConstructorAndAddWithNoMetadataFail()
{
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$internalDetector0 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$internalDetector1 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$internalDetector0 = $this->getMockBuilder(DetectorInterface::class)->getMock();
$internalDetector1 = $this->getMockBuilder(DetectorInterface::class)->getMock();

$internalDetector0
->expects($this->once())
Expand All @@ -89,10 +94,10 @@ public function testAllFromConstructorAndAddWithNoMetadataFail()

public function testAllFromConstructorAndAddWithMetadataFail()
{
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$metadata = $this->getMock('Dflydev\Canal\Metadata\Metadata');
$internalDetector0 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$internalDetector1 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$metadata = $this->getMockBuilder(Metadata::class)->getMock();
$internalDetector0 = $this->getMockBuilder(DetectorInterface::class)->getMock();
$internalDetector1 = $this->getMockBuilder(DetectorInterface::class)->getMock();

$internalDetector0
->expects($this->once())
Expand All @@ -115,11 +120,11 @@ public function testAllFromConstructorAndAddWithMetadataFail()

public function testFirstDetectorLocates()
{
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$metadata = $this->getMock('Dflydev\Canal\Metadata\Metadata');
$internalDetector0 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$internalDetector1 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$expectedInternetMediaType = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeInterface');
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$metadata = $this->getMockBuilder(Metadata::class)->getMock();
$internalDetector0 = $this->getMockBuilder(DetectorInterface::class)->getMock();
$internalDetector1 = $this->getMockBuilder(DetectorInterface::class)->getMock();
$expectedInternetMediaType = $this->getMockBuilder(InternetMediaTypeInterface::class)->getMock();

$internalDetector0
->expects($this->once())
Expand All @@ -145,11 +150,11 @@ public function testFirstDetectorLocates()

public function testLatterDetectorLocates()
{
$internetMediaTypeParser = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeParserInterface');
$metadata = $this->getMock('Dflydev\Canal\Metadata\Metadata');
$internalDetector0 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$internalDetector1 = $this->getMock('Dflydev\Canal\Detector\DetectorInterface');
$expectedInternetMediaType = $this->getMock('Dflydev\Canal\InternetMediaType\InternetMediaTypeInterface');
$internetMediaTypeParser = $this->getMockBuilder(InternetMediaTypeParserInterface::class)->getMock();
$metadata = $this->getMockBuilder(Metadata::class)->getMock();
$internalDetector0 = $this->getMockBuilder(DetectorInterface::class)->getMock();
$internalDetector1 = $this->getMockBuilder(DetectorInterface::class)->getMock();
$expectedInternetMediaType = $this->getMockBuilder(InternetMediaTypeInterface::class)->getMock();

$internalDetector0
->expects($this->once())
Expand Down
8 changes: 5 additions & 3 deletions tests/Dflydev/Canal/Detector/DefaultDetectorFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@

namespace Dflydev\Canal\Detector;

class DefaultDetectorFactoryTest extends \PHPUnit_Framework_TestCase
use PHPUnit\Framework\TestCase;

class DefaultDetectorFactoryTest extends TestCase
{
public function testCreate()
{
$detector = DefaultDetectorFactory::create();

$this->assertInstanceOf('Dflydev\Canal\Detector\DetectorInterface', $detector);
$this->assertInstanceOf('Dflydev\Canal\Detector\ApacheMimeTypesExtensionDetector', $detector);
$this->assertInstanceOf(DetectorInterface::class, $detector);
$this->assertInstanceOf(ApacheMimeTypesExtensionDetector::class, $detector);
}
}
Loading