forked from doctrine-extensions/DoctrineExtensions
-
Notifications
You must be signed in to change notification settings - Fork 52
/
UploadableMappingTest.php
80 lines (67 loc) · 2.74 KB
/
UploadableMappingTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
namespace Gedmo\Mapping;
use Doctrine\Common\Annotations\AnnotationReader;
use Doctrine\ORM\Mapping\Driver\AnnotationDriver;
use Doctrine\Common\EventManager;
use Doctrine\ORM\Mapping\Driver\DriverChain;
use Doctrine\ORM\Mapping\Driver\YamlDriver;
use Gedmo\Uploadable\UploadableListener;
use Gedmo\Uploadable\Mapping\Validator;
use Tool\BaseTestCaseOM;
/**
* These are mapping tests for Uploadable extension
*
* @author Gustavo Falco <comfortablynumb84@gmail.com>
* @author Gediminas Morkevicius <gediminas.morkevicius@gmail.com>
* @package Gedmo.Mapping
* @link http://www.gediminasm.org
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
class UploadableMappingTest extends BaseTestCaseOM
{
/**
* @var Doctrine\ORM\EntityManager
*/
private $em;
/**
* @var Gedmo\SoftDeleteable\UploadableListener
*/
private $listener;
public function setUp()
{
parent::setUp();
Validator::$enableMimeTypesConfigException = false;
$reader = new AnnotationReader();
$annotationDriver = new AnnotationDriver($reader);
$yamlDriver = new YamlDriver(__DIR__.'/Driver/Yaml');
$chain = new DriverChain;
$chain->addDriver($yamlDriver, 'Mapping\Fixture\Yaml');
$chain->addDriver($annotationDriver, 'Mapping\Fixture');
$this->listener = new UploadableListener();
$this->evm = new EventManager;
$this->evm->addEventSubscriber($this->listener);
$this->em = $this->getMockSqliteEntityManager(array(
'Mapping\Fixture\Yaml\Uploadable'
), $chain);
}
public function testYamlMapping()
{
$meta = $this->em->getClassMetadata('Mapping\Fixture\Yaml\Uploadable');
$config = $this->listener->getConfiguration($this->em, $meta->name);
$this->assertTrue($config['uploadable']);
$this->assertTrue($config['allowOverwrite']);
$this->assertTrue($config['appendNumber']);
$this->assertEquals('/my/path', $config['path']);
$this->assertEquals('getPath', $config['pathMethod']);
$this->assertEquals('mimeType', $config['fileMimeTypeField']);
$this->assertEquals('path', $config['filePathField']);
$this->assertEquals('size', $config['fileSizeField']);
$this->assertEquals('callbackMethod', $config['callback']);
$this->assertEquals('SHA1', $config['filenameGenerator']);
$this->assertEquals(1500, $config['maxSize']);
$this->assertContains('text/plain', $config['allowedTypes']);
$this->assertContains('text/css', $config['allowedTypes']);
$this->assertContains('video/jpeg', $config['disallowedTypes']);
$this->assertContains('text/html', $config['disallowedTypes']);
}
}